Develop Adapter to Use MinBFT as Ordering Service of Hyperledger Fabric

There is an adapter for BFT-SMaRt:
https://github.com/bft-smart/fabric-orderingservice
It would be nice if we have a similar adaptor for our project.

That would be good. It must not necessarily follow the architecture of BFT-SMaRt adapter because we use language compatible with Fabric code base. We should compare it with how Raft is integrated in Fabric.
Additionally, we might be interested in integration with HL Sawtooth.

I wrote some adapter code and a gist document to address this issue. So let me share.
I did the followings:

wrote minimum code for "MinBFT on Fabric"
adjusted byfn sample code for MinBFT
added Caliper testcases to measure throughput of "MinBFT on Fabric"

Unfortunately, I didn't have any appealing number yet (see the figure in the gist), so my next step is to investigate more about bottleneck and look for ideas about performance optimization.
I'm glad if I can have any feedback or advise.

@Naoya-Horiguchi Great work! I think your performance test was done in the simulation mode. I will try it with a SGX-equipped machine.

The SGX-equipped machine is behind a corporate proxy

It might be easier to develop building the enclave in simulation mode. Then there's no need in hardware SGX machines. Conceptually, integration should depend on whether you use simulation of hardware SGX.

Sorry, I haven't found time to look at the code yet, but it's on my to-do list :wink:

@ynamiki, @sergefdrv thank you for comments. I admit that the code I'm developing is immature and need to be improved before reviewed in detail. Namiki-san's work on #115 for delivery improvement would help me very much.

The SGX-equipped machine is behind a corporate proxy with SSL inspection and I have to update all Dockerfiles to install a special certificate for SSL Inspectionanguished.

Yes, proxy often prevents us from easy testing, so if available you can use SGX-equipped VMs on Azure. But anyway, I think it's nice if I can provide the procedure properly working on any environment/SGX-mode.
BTW, I'm facing a fundamental issue when applying minbft to blockchain platform, so let me share about it. In short words, how do we guarantee Byzantine tolerance from the whole system's perspective?  Even if the consensus component our project provides is proven to be Byzantine tolerant, that seems not directly mean the whole system is Byzantine tolerant.
For example in Hyperledger Fabric, a orderer creates a block candidate with submitted transactions and tries to make an agreement on it between other orderers.  The orderer distributes the block candidate to all other orderers (as discussed in #119), then consensus process starts. However, what our consensus code actually does is just to check and agree on what the primary orderer suggests.  So what if the primary orderer is Byzantine faulty and controls the contents of the block candidate on purpose?  For example, the Byzantine faulty primary orderer could intentionally exclude some transactions from a specific user from inclusion to any block candidates, then the user can't properly use the system.
I have some ideas to handle this issue:

Sharing all submitted transactions among orderers and checking each other that the contents of submitted block candidates are fair enough (i.e. no transaction is infinitely delayed).  This sounds straightforward to me and Bitcoin should do similar.  And it's SGX-free approach, so we could expect that someone in Fabric community might working on it.  OTOH, it introduces large overhead on consensus (maybe needs additional communication rounds). And we simply need many lines of code.
Using SGX enclave to create block candidates.  I think that this might be a good usecase of SGX, but some hardware limitation could be a problem so we need research more on its feasibility.
Introducing Byzantine Fault Detection mechanism in minbft cluster.  Previously I mentioned some about it and if we can confirm orderer's correctness in some way, it would be helpful to mitigate the issue. I'm still not sure of feasibility/effectiveness of this approach, but just let me share.

I currently feel that 2. is promising, but if you have any comment and/or any idea of alternative approach, that would be nice.

@Naoya-Horiguchi I still couldn't find time to look at the code, but let me just give some feedback to your concern.

BTW, I'm facing a fundamental issue when applying minbft to blockchain platform, so let me share about it. In short words, how do we guarantee Byzantine tolerance from the whole system's perspective? Even if the consensus component our project provides is proven to be Byzantine tolerant, that seems not directly mean the whole system is Byzantine tolerant.

In case of Hyperledger Fabric, the consensus mechanism of the ordering service is in general complemented with the chaincode endorsement policy to achieve a desired level of resilience.

For example in Hyperledger Fabric, a orderer creates a block candidate with submitted transactions and tries to make an agreement on it between other orderers. The orderer distributes the block candidate to all other orderers (as discussed in #119), then consensus process starts. However, what our consensus code actually does is just to check and agree on what the primary orderer suggests. So what if the primary orderer is Byzantine faulty and controls the contents of the block candidate on purpose? For example, the Byzantine faulty primary orderer could intentionally exclude some transactions from a specific user from inclusion to any block candidates, then the user can't properly use the system.

I think the consensus layer should be aware of individual transactions so that it can detect potential unfair treatment (censorship) from the primary. The consensus layer in the primary replica can take advantage of Fabric's functionality to form transaction batches (BlockCutter interface). We will need to extend our MinBFT implementation and its interfaces to support this.
Furthermore, I think we will need to extend MinBFT so that it can provide a kind of consensus proof to RequestConsumer interface. We can attach this proof as metadata to the delivered blocks. This consensus proof then should be checked by Fabric peers.
From the Fabric SDK side, the client, after broadcasting a request through an orderer node, should make sure it actually appears in the ledger. After some timeout, it can suspect the orderer node is faulty and re-broadcast the transaction via another node.

Thanks for the feedback, @sergefdrv.

In case of Hyperledger Fabric, the consensus mechanism of the ordering service is in general complemented with the chaincode endorsement policy to achieve a desired level of resilience.

Yes, endorsement part focuses on generating approvals that a suggested transaction is considered valid by checking the result of the execution from a right set of endorsing peers. This part handles each transaction independently.  Then ordering service focuses on ordering the endorsed transactions.
The point is that each orderer receives different set of transactions, so if we want consensus layer to handle individual transactions (or to check that other orderers handle transactions in fair manner), we need share the information of all submitted transactions among all orderers. This slows down consensus, but could be a solution if no other approach.

From the Fabric SDK side, the client, after broadcasting a request through an orderer node, should make sure it actually appears in the ledger. After some timeout, it can suspect the orderer node is faulty and re-broadcast the transaction via another node.

Retrying with different orderer is fine to me.  Maybe we should care about potential race between retry and commit to avoid committing a transaction twice in different blocks.

The point is that each orderer receives different set of transactions, so if we want consensus layer to handle individual transactions (or to check that other orderers handle transactions in fair manner), we need share the information of all submitted transactions among all orderers. This slows down consensus, but could be a solution if no other approach.

I was thinking of each orderer node (OSN) acting as a proxy between the Fabric client (SDK) and the consensus layer. This means the OSN would combine both replica and client functionality of MinBFT. The Fabric client would pick one OSN and try to broadcast a transaction through it. Acting as a MinBFT client, the OSN would execute the client part of MinBFT protocol normally, which includes preparing and broadcasting a MinBFT request.

Maybe we should care about potential race between retry and commit to avoid committing a transaction twice in different blocks.

In case of Fabric, it should not be a big issue to deliver the same transaction twice. Each Fabric transaction has a unique ID and Fabric peers would simply ignore duplicate transactions. Even if the peer would not check the transaction ID, a duplicate transaction's read-write set would simply not apply to the current ledger state anymore, thus be ignored.

The number of "query" of MinBFT is about as half as that of other consensuses, which looks odd to me and I might miss something important. I'll dig this more...

This is surprising since queries should not involve ordering at all.  Maybe MinBFT ordering service consume more resources in background?

@Naoya-Horiguchi Sorry for the huge delay, but I finally managed to look into this. Let me summarize my feedback:

We need to create dedicated implementation for api.Configer, api.Authenticator, and api.RequestConsumer.
We should keep common consensus parameters (provided by api.Configer) on ledger, in the configuration block. Per-node configuration, such as enclave path etc. should be passed via orderer node's configuration (i.e. orderer.yaml).
We should use Fabric orderer node's key to make a normal client/replica signature.
Maybe we can determine replica/client ID by comparing node's public key against a list of all OSN's public keys.
Maybe batches should be cut by the primary, and MinBFT client part should submit individual transactions.
To produce blocks consistently among OSNs, support.WriteBlock should be invoked by api.RequestConsumer and not by MinBFT client.
We will need to think about improving our build process.

@Naoya-Horiguchi Sorry for the huge delay, but I finally managed to look into this. Let me summarize my feedback:

@sergefdrv, thank you for valuable comments.

We need to create dedicated implementation for api.Configer, api.Authenticator, and api.RequestConsumer.
We should keep common consensus parameters (provided by api.Configer) on ledger, in the configuration block. Per-node configuration, such as enclave path etc. should be passed via orderer node's configuration (i.e. orderer.yaml).
We should use Fabric orderer node's key to make a normal client/replica signature.
Maybe we can determine replica/client ID by comparing node's public key against a list of all OSN's public keys.
Maybe batches should be cut by the primary,

I'm not sure about this a bit, in my understanding reply messages from MinBFT cluster are not sent back to the primary, but to the submitting orderers, so in order to get every block cut by the primary, we need collect all replies to the primary, which sounds inefficient to me. Is there any good reason to do that (for example requirement for committing phase?)

and MinBFT client part should submit individual transactions.

This also sounds notable to me, I thought that a MinBFT cluster in Hyperledger Fabric only does ordering, so it doesn't handle individual transactions. Could you elaborate this a little more please?

To produce blocks consistently among OSNs, support.WriteBlock should be invoked by api.RequestConsumer and not by MinBFT client.
We will need to think about improving our build process.

Yes, actually setting up build part was painful when I tried previously. We had a progress on this area by #115, so I hope that the situation gets better now. I'll research what we could improve next.

Let me elaborate a bit on my understanding of integration with Fabric. In principle, there is nothing specific to MinBFT, but should be applicable to any BFT state machine replication protocol in general.
I distinguish several roles related to Fabric ordering service:

Fabric client (SDK/application)
Fabric committing peer
Fabric ordering service node (OSN)
SMR client (MinBFT client)
SMR replica (MinBFT replica)

There are two flavors of implementing Fabric ordering service. One is to isolate SMR part into a separate cluster of nodes, e.g. Kafka, BFT-SMaRt. Another approach is to collocate OSN, SMR client, and SMR replica together in a single node, e.g. Raft. Since Raft-based ordering service is the most recent implementation and it is easier to set up and manage, it seems to be a good example to follow.
In any case, as described here, the main role of an OSN is to provide Fabric clients with broadcast interface, and Fabric committing peers with deliver interface. Mapped to state machine replication, broadcast interface is related to SMR client functionality of submitting requests for ordering, whereas deliver interface is related to the state machine replicated by SMR replicas.
So transaction flow would roughly look as follows:

Fabric client assembles a transaction and submits it to the ordering service through one of the OSNs using its broadcast interface.
The OSN act as a SMR client and submits the transaction to SMR replicas as a request to order and "execute".
SMR leader (MinBFT primary) proposes the request to other SMR replicas for "execution".
SMR replicas run consensus protocol on that proposal and eventually accept the request for "execution".
SMR replicas invoke the replicated state machine to "execute" the request by appending it as a new block to the blockchain (using support.WriteBlock). The result of such "execution" could be empty.
Once the new block is appended to the blockchain, OSNs will deliver it to all subscribed Fabric nodes such as committing peers and clients.
In case of BFT ordering, the Fabric nodes should do consensus-specific verification of blocks received through deliver interface to ensure the consensus has been reached for those blocks.
In case of BFT ordering, the Fabric client needs to wait until the transaction appears in a new block, and retry through another OSN if it takes too long.

It is crucial that different OSNs deterministically append block to the blockchain with support.WriteBlock. Otherwise Fabric peers will get confused and panic.
It is not clear to me who should combine individual transactions into batches. On one hand, it seems natural if SMR leader (MinBFT primary) would do that. On the other hand, each OSN can batch transactions itself and submit the whole batch as a single SMR request. Initially, I was in favor of the former way of request batching, but now I am really considering the latter one.

I was going to look into #121. I also wanted to try making enclave shim library path configurable so that we don't have to tweak LD_LIBRARY_PATH.


Does im2rec.py  greatly compress the original imagefiles？

https://github.com/dmlc/mxnet/blob/master/docs/zh/system/note_data_loading.md

noop, since jpg is already compressed. but packing multiple jpgs into a single binary file can improve read performance.


Implement Fast-HotStuff Timeout Block Construction Signal

Current dependencies on/for this PR:

feature/proof-of-stake

PR #649

PR #685

PR #663

PR #696   👈

This comment was auto-generated by Graphite.


Calculate number of spares #417

Description
See #417. Leaves modified time unchanged.
This branch is dependent on others in the following way:
develop
          \
            handle-property-migration-conflict-#412 - calculate-number-of-spares-#417

Concurrency notes
There are multiple cases where concurrency can potentially cause a problem in this PR, I have attempted to mitigate these. Here are some particular cases to mention.

Setting the spares definition first updates the spares definition to ensure it cannot end up with two sets of spares updates running simultaneously (the first update will write block future ones)
Multiple items can be created at once on the front end in quick succession - This should be handled by the write locking of the parent catalogue item for each request (with one backend instance it seems to be fine but could change later). Should two actually conflict and the first takes longer than the default transaction timeout (5ms) one could fail. This should show in the front end, but will lead to missing items when creating multiple. We could auto retry in such cases to increase the timeout if required.
When setting the spares definition - it is possible to delete the usage statuses involved in it prior to the transaction completion as we update it along with updating the spares of all catalogue items in the same transaction. This could be resolved by write locking the usage statuses, but as both editing usage statuses and the spares definition are admin functionality it should be rare. Currently the aggregate query will fail during the final get of the definition if it doesn't exist as it will return [], causing a schema error which is raised as a 500.
When recalculating the number of spares while setting the spares definition all catalogue items are initially write locked by setting the spares definition to None as an item could be updated in between it starting and completing. This also prevents any item create/delete requests or updates that modify the usage status. (These may need issues on the front end to handle)
The spares definition is write locked (even if currently non-existent by upserting a document) when doing a spares calculation and when creating a catalogue item to prevent a case where a brand new catalogue item and items are added during a long spares calculation which would subsequently not be updated.

Performance tests
Setting the spares definition (using postman)

With 104 catalogue items, 159 items: 216ms
With 6427 catalogue items, 9684 items: 41.4 seconds (with many log statements for each spares update - 35.5 when commenting out)
With 104 catalogue items, 2928 items: 355ms
With 104 catalogue items, 4710 items: 377ms

This is much worse for high numbers of catalogue items as it iterates through them. I did look at aggregate queries but couldn't find examples close to what would be needed here. Still potentially worth investigating further. The main limitation would be the stage memory limit for a large number of items as the count would likely have to come from the size of a lookup stage. (This would also have been the case for using aggregate queries in all catalogue item requests)
Testing instructions
Add a set up instructions describing how the reviewer should test the code

[ ] Review code
[ ] Check Actions build
[ ] Review changes to test coverage

Agile board tracking
Closes #417

@VKTB @joshuadkitenge @asuresh-code Tagging you all just to say feel free to test this PR and see if you can think of any other cases I missed in the description.

I have just tried the tested an alternative method of using an aggregate query on the list endpoint using
catalogue_items = list(
self._catalogue_items_collection.aggregate(
[
{
"$lookup": {
"from": "items",
"localField": "_id",
"foreignField": "catalogue_item_id",
"as": "related_items",
}
},
{
"$addFields": {
"number_of_spares": {
"$size": {
"$filter": {
"input": "$related_items",
"as": "item",
"cond": {
"$eq": [
"$$item.usage_status_id",
CustomObjectId("6756fc3b220c8ca1a0b8c7cb"),
]
},
}
}
}
}
},
{"$project": {"related_items": 0}},
]
)
)
In the in the catalogue item repo list method instead of the find. (This is not using the spares definition usage status array though). This took too long for swagger to complete, and was well over 5 minutes for the case described in the description of setting the spares definition with 6427 catalogue items, 9684 items. While limited by pagination and querying by catalogue item id the 100MB stage limit would be a bigger problem with lookup stage as I believe it would be a combined limit for the catalogue items and item documents that would have to be in memory at the same time.


Not properly working with new React18 root-api

I want to report a bug
On the new root-api (https://github.com/reactwg/react-18/discussions/5) react-helmet does not always properly set the meta-tags.
Using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>I'm not sure if it's related to react-helmet or the current react alpha. But the issue is only noticeable on the new root-api, not when using the old render method on the current alpha.

i can confirm this is an issue with stable react 18 root api. is this project actively maintained? i'd be happy to open a PR if desired.

I had used the root api 18 with<EMAIL_ADDRESS>import { createRoot } from 'react-dom/client'
const root = createRoot(document.getElementById("root"))
root.render()
found that some of the  tags previously added by helmet will be removed by others nested helmet.
but when revert back to old syntax with react 18
render(, document.getElementById("root"))
the problem disappeared.
I can't replicate this problem in simple project in codesandbox, because react router involved.

Seems like this is a fork that has more traction and is more actively maintained: https://github.com/staylor/react-helmet-async

Something like that could be used instead, if you don't want to replace packages:
import * as React from 'react';
import {Helmet as ReactHelmet, HelmetProps as ReactHelmetProps} from 'react-helmet';

interface HelmetProps extends ReactHelmetProps, React.PropsWithChildren {}

const Helmet = (props: HelmetProps) => <ReactHelmet {...props} />;

I "solved" this problem by adding a key to the Helmet wrapper.
Something like:
<Helmet key={id}>
...
</Helmet>

Not a real solution but only a temporary workaround.


pulseaudio: clean up

This brings the package to be more inline with the bionic package, mainly disabling the daemon component as it isn't useful and instead relying on the bionic server.
Note: When XDG_RUNTIME_DIR isn't specified, pulseaudio calls a seeded rand to decide on a runtime directory. This means the glibc client won't find the server by default as the two libcs' rand are different.

This brings the package to be more inline with the bionic package

What do you mean by this? Do you want to make the glibc-based package more compliant with the bionic-based package? Or do you want to make the glibc-based package work using the bionic-based package? In both cases, this destroys the independence of the glibc environment, which in turn reduces the capabilities of the glibc environment.

mainly disabling the daemon component as it isn't useful and instead relying on the bionic server

I plan to make pulseaudio-glibc work with android audio without the help of pulseaudio on bionic, but maybe I should disable deamon until it is implemented.

This brings the package to be more inline with the bionic package

What do you mean by this? Do you want to make the glibc-based package more compliant with the bionic-based package? Or do you want to make the glibc-based package work using the bionic-based package?

I mean the actual package descriptor (i.e. the contents of build.sh) is brought closer to the bionic package descriptor. This makes it easier to port over improvements made to the bionic package to the glibc package.
Also independence of glibc is not the same as reduction in capabilities. As it stands right now, the only way to functionally use the glibc pulseaudio client is by using the bionic daemon, and the changes made here make it easier for a user to use that configuration. Sure, it isn't independent, but I'd argue that is an increase in capabilities of the glibc client, as having a non-functional daemon is more confusing to user and not providing any value to the user.

I mean the actual package descriptor (i.e. the contents of build.sh) is brought closer to the bionic package descriptor. This makes it easier to port over improvements made to the bionic package to the glibc package.

What improvements from the bionic package would you like to add to the glibc package? According to your PR, the main change is disabling deamon (that I approve of this), setting bionic-based pulseaudio to be used by default (which is a pretty bad idea to do) and disabling a lot of dependencies on pulseaudio (which is also highly questionable).

Also independence of glibc is not the same as reduction in capabilities.

Just for understanding, by the word glibc independence I mean that the glibc environment could work independently using only its components (binaries or libraries) from its environment. Without following this rule, in a certain case something can break due to a conflict between the glibc environment and the bionic environment (this is one example).

As it stands right now, the only way to functionally use the glibc pulseaudio client is by using the bionic daemon, and the changes made here make it easier for a user to use that configuration. Sure, it isn't independent, but I'd argue that is an increase in capabilities of the glibc client, as having a non-functional daemon is more confusing to user and not providing any value to the user.

You are right. But making pulseaudio-glibc work directly with bionic-based pulseaudio is also wrong. In certain cases (mostly when LD_PRELOAD is configured for the glibc environment) bionic-based pulseaudio simply won't start.
In conclusion, I want to say the following: your main ideas are clear to me (and I approve of them), but I don't like your change in PR because of "brought closer to the bionic package descriptor" because I don't understand the reasons for this. Therefore, perhaps I will make PR instead of your PR, with the following changes:

Disable daemon
Add a warning message during package installation that pulseaudio-glibc only works with bionic-based pulseaudio
And maybe I'll add a special script to easily run pulseaudio based on bionic for pulseaudio-glibc

What improvements from the bionic package would you like to add to the glibc package? According to your PR, the main change is disabling deamon (that I approve of this), setting bionic-based pulseaudio to be used by default (which is a pretty bad idea to do) and disabling a lot of dependencies on pulseaudio (which is also highly questionable).

Nothing in particular at the moment, it is more future looking. All the dependencies I removed are daemon-only dependencies, so if you disable the daemon, then they become false dependencies.

Just for understanding, by the word glibc independence I mean that the glibc environment could work independently using only its components (binaries or libraries) from its environment. Without following this rule, in a certain case something can break due to a conflict between the glibc environment and the bionic environment (this is one example).

I understand this perfectly well (I have dealt with plenty of symbol conflicts in my day job), but at the same time I view that mindset as an instance of "perfect is the enemy of good". Pulseaudio works over a server/client protocol, so using a glibc client is perfectly compatible with a bionic daemon as they are independent processes (and in fact can be run on entirely different machines, something I did back in college ~15 years ago). The good, which is far as I know, this being he only way to be able to actually hear audio played through the glibc pulseaudio client at the moment, outweighs the perfect on a non-existent working glibc daemon in my mind.

You are right. But making pulseaudio-glibc work directly with bionic-based pulseaudio is also wrong. In certain cases (mostly when LD_PRELOAD is configured for the glibc environment) bionic-based pulseaudio simply won't start.

Admittedly I haven't had LD_PRELOAD set when running things (as a grun shell doesn't seem to set it by default), and indeed that does break the autostart.

Thanks for the PR


compatible with typescript and babel

Codecov Report

Merging #1631 into development will not change coverage.

@@             Coverage Diff              @@
##           development    #1631   +/-   ##
============================================
  Coverage        84.84%   84.84%
============================================
  Files               85       85
  Lines             2323     2323
  Branches           299      299
============================================
  Hits              1971     1971
  Misses             252      252
  Partials           100      100

Continue to review full report at Codecov.

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

closing in favour of https://github.com/valor-software/ng2-bootstrap/pull/1556


NetEbpfExt should use a NDIS Light Weight Filter to run XDP hook

NetEbpfExt should use a NDIS Light Weight Filter to run XDP hook

xdp_md structure is defined for handling a single packet at a time and the WFPl2 hook already meets this requirement. Therefore, if we want multiple packets then by definition it would be a Windows specific hook divergent from what customers see in Linux.
Outside of the single packet, we will want to understand if by itself the WFP l2 layer has more overhead CPU wise than a XDP hook implemented at LWF and address that.

@Alan-Jowett now that the xdp-for-windows project exists, and #2974 tracks removing the existing XDP point from this project, should this issue now be closed in favor of just tracking those?


projects page needs thumbnails

graphics and images would make this page much more exciting

Agreed. Will you email people and ask for thumbnails on their projects, or should I include it in my "hey you guys said these are your projects at group meeting, send me links" email?

website todo e-mail sent!

Added potential thumbnail image for D8 in branch ymlFormat, commit dacb17b.
It is public/images/d8_windTunnel.jpg.

All projects that are currently up have thumbnails. I am closing this, will open as more projects pop up.


vim.org is down

Steps to reproduce
go to https://vim.org/
Expected behaviour
site should be up
Version of Vim

Environment

Logs and stack traces
No response

Stefan fixed it.  Might take a little while for caches to fill.


Java Project: GUI calculator

using some java libraries I will try to create GUI calculator.
@abhijeet007rocks8 so assign me this issue.

Closed with #33


Back to Top button

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
If this button is not present it causes problem for users to smoothly scroll to the top
Describe the solution you'd like
A clear and concise description of what you want to happen.
A "Back to Top" button that is fixed to the bottom right corner of the page. When clicked, it smoothly scrolls the user back to the top of the page.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

ok do it


Use light icons for toolbar icons

Icons should match the title color

A bit too fancy?

Light icons mean not the real light, it means white colors

Btw this should be dynamically change by the preset primaryColor, but it's too complicated for now

closed for now


Update version: Celestia.Celestia version 1.6.4

Pull request has been created with WinGet Automation 🪟📦🤖
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978334972

(Automated response - build 570.)

@wingetbot waivers Add Validation-Installation-Error


Replace buffer constructor with buffer-alloc and buffer-from

1.12.1

@jasnell just wondering, why not Buffer.from ? do you still need node 0.12 and less support (which are EOL anyway)

Buffer.from means major bump. Too many dependents would be affected by that

Time to switch to using Buffer.from now? it's 2020 now


Strip trailing spaces in server messages

Add workaround to fix freenode SASL auth.
At least one freende server (weber.freenode.net) adds a space to the reply:
2019/02/28 17:42:40 <-- ":weber.freenode.net CAP * ACK :account-notify \r\n"
2019/02/28 17:42:40 <-- ":weber.freenode.net CAP * ACK :sasl \r\n"

It looks like a server bug, but other IRC clients ignore trailing spaces, and I think it is a good idea to ignore them in go-ircevent too.

Fwiw this is a valid enough server response. Capabilities are usually requested and asked more than one at a time, and the spec says to split the final arg on spaces before processing.

Then may be other fix is needed. More info about my issue is here: https://github.com/irccloud/irccat/pull/11

One more option - to strip spaces in callback added in setupSASLCallbacks, but I'm not sure that it will be better.

And one more option - strip spaces only around parameter list:
--- a/irc.go
+++ b/irc.go
@@ -147,7 +147,7 @@ func parseToEvent(msg string) (*Event, error) {
 	event.Code = strings.ToUpper(args[0])
 	event.Arguments = args[1:]
 	if len(split) > 1 {
-		event.Arguments = append(event.Arguments, split[1])
+		event.Arguments = append(event.Arguments, strings.Trim(split[1], " "))
 	}
 	return event, nil

@@ -534,7 +534,7 @@ func (irc *Connection) negotiateCaps() error {
 				cap_chan <- true
 			}
 		} else if command == "ACK" || command == "NAK" {
-			for _, cap_name := range strings.Split(strings.TrimSpace(e.Arguments[2]), " ") {
+			for _, cap_name := range strings.Split(e.Arguments[2], " ") {
 				if cap_name == "" {
 					continue
 				}

I've fixed this in a nicer way in thoj/go-ircevent#115.


add global flourishing schemas and samples

Purpose

Changes

QA Notes
Please make verification statements inspired by your code and what your code touches.

Verify
Verify

What are the areas of risk?
Any concerns/considerations/questions that development raised?
Documentation

Side Effects

Ticket

Example text and help text are still flipped

It's looks to me like the headers are actually wrong. help_text EXAMPLE TEXT (Appears if "See example" link is clicked) should be moved to a separate example text category. There's also no real help_text header and the actual wording is This is additional helpful text you can provide on each question that sounds like it should go in help_text, not example text.

It's looks to me like the headers are actually wrong. help_text EXAMPLE TEXT (Appears if "See example" link is clicked) should be moved to a separate example text category. There's also no real help_text header and the actual wording is This is additional helpful text you can provide on each question that sounds like it should go in help_text, not example text.

Correct, the headers are confusing in that they don't map directly to the correct schemablock element names ("instruction_text"  maps to help_text for question_labels while "help_text . . . " maps to example_text). You also have the power of reading comprehension :)

Can you link the spreadsheet and/or ticket in the PR description?

required field should be set on the input block, not the question-label block. Looks like this was an error in the sheet, but needs to be fixed (note that this seems to be wrong on all of the questions in the Global Flourishing schemas)


Fix printing ipv6 with brackets

It was fixed in #42, but is broken now. This PR prints ipv6 in the format, which can be opened in a browser:
>±> ./gotty zsh
2019/12/30 13:54:18 GoTTY is starting with command: zsh
2019/12/30 13:54:18 HTTP server is listening at: http://[::]:8080/
2019/12/30 13:54:18 Alternative URL: http://<IP_ADDRESS>:8080/
2019/12/30 13:54:18 Alternative URL: http://[::1]:8080/
2019/12/30 13:54:18 Alternative URL: http://[fe80::2ba1:dd5e:2dd9:9d75]:8080/
2019/12/30 13:54:18 Alternative URL: http://<IP_ADDRESS>:8080/
2019/12/30 13:54:18 Alternative URL: http://[fe80::f81d:ef8:fea5:f9f5]:8080/

Cool!
Merged at https://github.com/sorenisanerd/gotty


Task: Create workflow to publish release artefacts

❕ Problem Statement
When a release is made in GitHub we should be publishing a release binary as an artefact associated with that release.
💬 Task Description

Create a release workflow that is triggered by the creating of a GitHub release.
Build the asc binary, package it (with the documentation) into a asc-x86_64-apple-macosx-${RELEASE_TAG}.zip and upload it to the release as an asset using upload-release-asset.

Wanted to chime in to say that this would be super helpful for CI/CD scenarios. Currently I'm using this cli to download provisioning profiles for my iOS app in order to sign and upload the app. Needing to build the CLI from source adds ~5 minutes to each run


Make domain name configurable

Right now, the traefik.toml file has a ton of hard-coded references to the domain name. And at least one of our python scripts also has the domain hard-coded. That's no good. It should be an environment variable.
The python scripts are easy because it's just a matter of getting the value of an environment variable (and making sure that docker-compose.yml loads the relevant file from .envs in the text_to_md and voyant_gen services so that the environment variable is actually available). Getting environment variables in python is easy: https://stackoverflow.com/questions/4906977/how-to-access-environment-variable-values
Figuring out how to fix this in traefik.toml is way more annoying. From what I can tell, Traefik doesn't yet do environment variable interpolation in its config files. There is an issue about this here from 2015. It's their seventh issue out of like five thousand. It was just closed 15 days ago, and so there is presumably now support for this in the bleeding edge version. But we probably don't have the bleeding edge version.
I am not entirely sure how we should handle this part! We might be able to upgrade to the bleeding edge version and hope nothing breaks; we might just wait until this feature makes it into a more stable version; or we might come up with some stupid ad-hocery that works OK.

This isn't easy but it's important so I'm marking it as high priority.

Also, to get #7 working for real, this will have to be solved too. So I'm assigning it to you as well @Vicenteguallpa.


Add email to users

This pull request only adds email collection when users sign up. It doesn't collect or update emails when users are signing in again.
It also doesn't submit the emails to Segment when sending analytics, which it should totally do. I'll submit PRs to incorporate both of these missing features.


GPU BAR1 memory not released when main process gets killed

🐛 Bug
When the main process gets killed or terminated during a DDP run with num_workers > 0 the allocated BAR1 memory of the GPU is not released. This leads to an OOM error as soon as BAR1 memory is full even though no FB memory is used.
To Reproduce
import torch
import os
from torch.utils.data import DataLoader, Dataset

import pytorch_lightning as pl
from pytorch_lightning import LightningModule

class RandomDataset(Dataset):
    def __init__(self, size, length):
        self.len = length
        self.data = torch.randn(length, size)

    def __getitem__(self, index):
        return self.data[index]

    def __len__(self):
        return self.len

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = torch.nn.Linear(32, 2)
        # store PID of main process
        self.pid = os.getpid()

    def forward(self, x):
        return self.layer(x)

    def training_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log('train_loss', torch.tensor(1), on_epoch=True, rank_zero_only=True)

        # killing the main process after some epochs.
        # This is just to reproduce the behaviour.
        if self.current_epoch == 40:
            os.system(f"kill -s 9 {self.pid}")
        return loss

    def configure_optimizers(self):
        return torch.optim.SGD(self.layer.parameters(), lr=0.1)

    def train_dataloader(self):
        return DataLoader(RandomDataset(32, 64), batch_size=2, num_workers=1)

if __name__ == '__main__':
    print("######", os.getpid())
    model = BoringModel()
    trainer = pl.Trainer(
        gpus=1,
        accelerator='ddp',
        limit_train_batches=1,
        max_epochs=100,
        checkpoint_callback=False,
        logger=False,
    )
    trainer.fit(model)

Memory before run (output from nvidia-smi -q -d MEMORY)
Driver Version                            : 460.73.01
CUDA Version                              : 11.2

Attached GPUs                             : 14
GPU 00000000:1B:00.0
    FB Memory Usage
        Total                             : 15109 MiB
        Used                              : 0 MiB
        Free                              : 15109 MiB
    BAR1 Memory Usage
        Total                             : 256 MiB
        Used                              : 230 MiB
        Free                              : 26 MiB

Memory after process is killed
Driver Version                            : 460.73.01
CUDA Version                              : 11.2

Attached GPUs                             : 14
GPU 00000000:1B:00.0
    FB Memory Usage
        Total                             : 15109 MiB
        Used                              : 0 MiB
        Free                              : 15109 MiB
    BAR1 Memory Usage
        Total                             : 256 MiB
        Used                              : 234 MiB
        Free                              : 22 MiB

Expected behavior
BAR1 memory is released when main process is terminated.
Environment
Installed via conda

CUDA:

GPU:

14 x Tesla T4

available:         True
version:           11.1

Packages:

numpy:             1.20.2
pyTorch_debug:     False
pyTorch_version:   1.9.0
pytorch-lightning: 1.4.2
tqdm:              4.61.2

System:

OS:                Linux
architecture:

64bit
ELF

processor:
python:            3.8.10
version:           SMP Debian 4.19.194-1 (2021-06-10)

Additional context

@MarkusSpanring hi Markus, did you solve the problem. I met the same problem, unable to release BAR1 memory. Could you share your solution here. Thank you.

Hi @WeitaoVan! Unfortunately no.
For me nvidia-smi --gpu-reset released the occupied memory. However, this is not very practical when you have to release the memory during training.
I have also opened an issue in the PyTorch Repo since it seems related to the DataLoader itself. But so far no solution.


apply menu in second or third viewcontroller

Hi. I have a problem when I apply the swrevealviewcontroller in a different view to the first sight of the menu is not displayed on the same screen . someone has happened the same ?? how you could fix it ?? I would like to apply it in various views . Thanks for your answers.

I don't understand the question!

hello again!. thanks for the quick response!.
Look I have three views . the first does not have the swrevealviewcontroller apply . but the second if available. when I step from the first view to the second view which has the swrevealviewcontroller not show me the menu . Please observe the images of what is happening to me.
thanks.


Slow changing tier icon

Affected module
UI
Describe the bug
When changing a table tier, if we then select another tier, instead of select we see the icon as below:

After a few seconds, the icon gets updated with the final select button.
To Reproduce
Screenshots or steps to reproduce
Expected behavior
Icons should be automatically updated after selecting a tier
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8] main
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

cc @vivekratnavel @darth-coder00


ENH: Use large_image to read whole slide image.

Replace use of openslide.

@Leengit we are going to resize the output from a stored level ourselves, and not rely on large_image resizing?

@Leengit we are going to resize the output from a stored level ourselves, and not rely on large_image resizing?

The current implementation with openslide does not resize at all; it picks the best resolution stored in the SVS/TIF image pyramid and uses that directly.  This PR does the same, but uses large_image instead of openslide.
I am deferring asking large_image to resize to the exact specified magnification to a later issue, because the best implementations appear to be (1) using a private interface within large_image, or (2) mimicking in our code some internal calculations that large_image does. We may end up choosing one of those two approaches, or we may end up modifying large_image to make the needed interface public.

Handling the resizing ourselves outside of large_image has some advantages.
Current PR looks good to me.

I squashed some commits together with the latest force push.


How to write prometheus configurations to set an alertmanager out of k8s?

What did you do?
Did you expect to see some different?
I want to add configurations below into prometheus config in k8s,because I have 4 k8s clusters and I want to send all alerts to one alertmanager, for me it's more convenient.
alerting:
  alertmanagers:
  - static_configs:
      - targets: ["<IP_ADDRESS>:9093"]

But as I know I can only set alertmanager service and port inside this cluster to post alerts in "prometheus-prometheus.yaml",config as below:
   alerting:
     alertmanagers:
     - name: alertcenter
       namespace: monitoring
       port: 9093

I want to know how to set a static alertmanager address in prometheus. Are there any advices?
@rphillips
Environment

Prometheus Operator version:
Insert image tag or Git SHA here

Kubernetes version information:
kubectl version

Kubernetes cluster kind:
insert how you created your cluster: kops, bootkube, tectonic-installer, etc.

Manifests:

insert manifests relevant to the issue

Prometheus Operator Logs:

Insert Prometheus Operator logs relevant to the issue here

Prometheus Logs:

Insert Prometheus logs relevant to the issue here

Anything else we need to know?:

You can use arbitrary discovery means with the additionalAlertManagerConfigs feature in the PrometheusSpec: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec

Closing as this appears to be answered. Please reopen if you think this is still relevant.


epic: investigate txs of block 21421739

See the graph of step usage. Investigate the spikes > 5M

The input data for running test_eth_block. To replay one single tx:

[ ] use etherscan / cast to replay the tx and see what's in
[ ] replay the tx only by slicing the transactions object (not exactly the same conditions but let's see if it gives as many steps)
[ ] if required, run up to the previous state, dump the post state, and run only the selected tx with the given state.

21421739_long.json


Problem with RealScoreboard

Welcome!
I have a problem with RealScoreboard because it sends the following errors: https://pastebin.pl/view/18bf2f08

Hi there! Can you send me your config file? Thanks

https://pastebin.pl/view/1001f5ea

Your config is missing the Disabled Worlds section, as can be seen here:
https://github.com/JoseGamerPT/RealScoreboard/blob/master/src/main/resources/config.yml

Your config is missing the Disabled Worlds section, as can be seen here:
https://github.com/JoseGamerPT/RealScoreboard/blob/master/src/main/resources/config.yml

@JoseGamerPT does that means that the Disabled Worlds section MUST be set and can't be left empty?

yes, because if its not set, the plugin will try to find it and it will throw an error if it doesnt.

oh well... that explains a lot... 😅


AIEnrichmentPipeline: SAS URL Expiry Date is Set in the Past

Within the AIEnrichmentPipeline sample there is a SAS URL set up to allow the function apps to access their zipped code deployments from storage.
Within the Terraform there is a SAS token expiry date set to limit the scope of SAS URL, however the expiry date for this token has since passed. The result is that the functions fail to start up, and report that they are unable to connect to the Azure Functions runtime.
This is the line of code that causes the issue. The simple fix is to push this Expiry Date out into the future:
https://github.com/Azure-Samples/media-services-video-indexer/blob/master/AIEnrichmentPipeline/infra/core/storage.tf#L61

cc @martinkearn


[Bug] [FE] cannot insert space in environment config

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
when i create a environment config, i cannot insert space inside the form.
What you expected to happen
i can  insert space in environment  config
How to reproduce
type space in the environment  config
Anything else
please check other places whether have this issue
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

check the video that i'm typing space to the form
https://user-images.githubusercontent.com/36755957/192083795-892de97a-2e97-42c8-aa7e-475e41b476b7.mp4

This may be the same as #11884

Hi, guy, Do you want to fix this problem now? If not, I'll fix it, because it's in a hurry, and it's going to be published soon. @LiuBodong

Hi, guy, Do you want to fix this problem now? If not, I'll fix it, because it's in a hurry, and it's going to be published soon. @LiuBodong

I have fixed this issue and created the pr, but they don't think it's a bug...


Giving two types to a model

Hi.
Is there a way to give two types at the model creation, or even after, without making a query?
Thanks

I'm working on a branch right now that does just that, you pass a string or an array in as type. If you pass a string it stores it as an array. I changed type to types. Methods other than create use types[0] to, for example, generate names (aliases) when doing queries. Still a work in progress; looks doable.

Wonderful.
Keep the good work!

any update on this?

I'm not working on this in the main repo, so any update would have to come from @StefanoDeVuono.


response object return null although it work in postman

i make request on server and i test it with post man and it returned valid json, now i use this code but return null object although it was working before well here is the code
 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer.acceptableStatusCodes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 400)];
    NSDictionary *newDict = [NSDictionary dictionaryWithObjectsAndKeys:_Mobile.text,@"mobile",_Password.text,@"pwd",nil];

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.mode = MBProgressHUDModeIndeterminate;
    hud.labelText = @"Loading";
    [manager POST:serverName parameters:newDict progress:nil success:^(NSURLSessionTask *task, id responseObject)

   {
        [hud hide:YES];

        NSLog(@"JSON: %@", responseObject );

    } failure:^(NSURLSessionTask *operation, NSError *error) {
        [hud hide:YES];

        NSLog(@"Error: %@", error);

    }];`

should i add the link  ?? to be enable for testing??

http://ojrat-alkhair.com/rest/login
Post
mobile as param
pwd as param

This is probably best suited for stackoverflow. We use Github to track bugs and feature requests.
:beers:

From our Contribution Guidelines
Asking Questions
We don’t use GitHub as a support forum. For any usage questions that are not specific to the project itself, please ask on Stack Overflow instead. By doing so, you’ll be more likely to quickly solve your problem, and you’ll allow anyone else with the same question to find the answer. This also allows maintainers to focus on improving the project for others.


Add Microsoft.DotNet.InternalAbstractions dependency to the tools package

/cc @pranavkm @NTaylorMullen @Eilon

Hi @mlorbetske, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;


Lecturers school specific

Accept generalinfo PR before this one.
This PR makes the lecturers school specific

Schools are now associated with a school id
Since the lecturers are now responsibility of coordinators the access to lecturers page was removed for administrators

Can you make this PR to the general information branch such that there are fewer changes?


Primary auth mode

Is your feature request related to a problem? Please describe.
In the Harbor UI, we can configure OIDC as a primary auth. It's currently missing in this terraform provider.

Describe the solution you'd like
Enable this option to be configurable through this terraform provider, surely in harbor_configuration resource.
Describe alternatives you've considered
None.
Additional context

Hi @guyguy333,
thanks for the issue, it will be available in the next release


_prepare_path crashes if passed pathlib.Path

According to README and docstring, playsound() accepts "Path or URL to the sound file. Can be a string or pathlib.Path."
However, if a pathlib.Path is provided, when it is sent to _prepare_path, it errors out with:
  File "[Path removed]\validators.py", line 253, in _validate
    playsound(Path("../sound/default.mp3"))
  File "[Path removed]\venv\Lib\site-packages\playsound3\playsound3.py", line 44, in playsound
    path = _prepare_path(sound)
           ^^^^^^^^^^^^^^^^^^^^
  File "[Path removed]\venv\Lib\site-packages\playsound3\playsound3.py", line 61, in _prepare_path
    if sound.startswith(("http://", "https://")):
       ^^^^^^^^^^^^^^^^
AttributeError: 'WindowsPath' object has no attribute 'startswith'
python-BaseException

Python 3.12, windows 11, but I think it's a global issue.

Thanks for the report and sorry for the late response. Fixed in 2.2.3.

Tested, works as documented.  Thanks!


Make it easier to add tests

Instead of having to deal with a massive mess of rules every time you
want to add a new test, you can now just add a new .spec.ts file (as
long as it is in generic_ui/scripts or generic_core).
This change looks a lot scarier than it is, so a quick description of
what it really done:
This moves the gruntConfig object to a variable named gruntConfig
This adds a new function to the Gruntfile to look for all the spec files
in a directory and make rules to browserify those files and run them
(return the tasks to run to do that).
This uses that function for generic_ui/scripts and generic_core
That's all!  Sorry about how ugly the diff is going to look...

Review status: 0 of 1 files reviewed at latest revision, 2 unresolved discussions, all commit checks successful.

Gruntfile.coffee, line 140 [r1] (raw file):
might be easier to read all this if you create a function like:
function readJsonFile(filename) {
  return JSON.parse(fs.readFileSync(filename, 'utf8'))
}

Gruntfile.coffee, line 833 [r1] (raw file):
can you remove these commented lines?

Comments from the review on Reviewable.io

Few small comments, then :+1:

Comments from the review on Reviewable.io

Great to see somebody tackle this! This has been a pain for a long time. Would you be interested in pushing testDirectory down to uproxy-lib so that it can take advantage of this, too?

Changes made, merging.

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved, some commit checks pending.

Gruntfile.coffee, line 140 [r1] (raw file):
Done.

Comments from the review on Reviewable.io

Somewhat related to this https://github.com/uProxy/uproxy/issues/1737, just fyi, something that has bitten all of us at some point, although I don't necessarily think it should be part of this pull request.

Yup, this is now merged in, but Daniel mentioned the same thing.
On Mon, 28 Sep 2015 22:21 Salome V<EMAIL_ADDRESS>wrote:

Somewhat related to this #1737
https://github.com/uProxy/uproxy/issues/1737, just fyi, something that
has bitten all of us at some point, although I don't necessarily think it
should be part of this pull request.
—
Reply to this email directly or view it on GitHub
https://github.com/uProxy/uproxy/pull/1924#issuecomment-143925326.


assert img is not None

File "/content/YOLOX/yolox/data/datasets/voc.py", line 243, in pull_item
img = self.load_resized_img(index)
File "/content/YOLOX/yolox/data/datasets/voc.py", line 210, in load_resized_img
img = self.load_image(index)
File "/content/YOLOX/yolox/data/datasets/voc.py", line 223, in load_image
assert img is not None
AssertionError
What is the problem here? It took my hours! No problem with yolov5 but yolox doesn't support something? Could you please help?

I had a similar problem. The script is not finding the images in the path calculated from the exp.
I suggest you to debug what is the result of self._imgpath
https://github.com/Megvii-BaseDetection/YOLOX/blob/c4298f800d99ddc930267d8503d49b4dc06cff48/yolox/data/datasets/voc.py#L120
Or directly where OpenCV is trying to read the image:
https://github.com/Megvii-BaseDetection/YOLOX/blob/f0d1ce892e9fbe0bd982abf00de979db63e4887f/yolox/data/datasets/voc.py#L221

@zehranrgi I'm glad it helped.
I actually haven't tried using PNG images, but I think it should work just the same.
I would actually modify the same line
self._imgpath = os.path.join("%s", "JPEGImages", "%s.jpg")
To
self._imgpath = os.path.join("%s", "JPEGImages", "%s.png")
As far as I understand, the only thing necessary is that the __getitem__ for the dataset is able to return the image as an array, the target, etc... https://github.com/Megvii-BaseDetection/YOLOX/blob/c4298f800d99ddc930267d8503d49b4dc06cff48/yolox/data/datasets/voc.py#L248
In this particular implementation (datasets/voc.py), the actual reading of the file is done here:
https://github.com/Megvii-BaseDetection/YOLOX/blob/c4298f800d99ddc930267d8503d49b4dc06cff48/yolox/data/datasets/voc.py#L219


Could you provide an MSBuild option to skip the browser install

Would it be possible to provide an MSBuild property to avoid installing browsers? Something around here like PlaywrightDisableBrowserInstall or similar.
Building test projects on our CI agents causes the install to trigger and increases our build failure rate.
Thanks in advance!

Sounds like a good idea

Would like to see this for all playwright configuration options such as
PLAYWRIGHT_BROWSERS_PATH PLAYWRIGHT_DOWNLOAD_HOST
...ect

This is now fixed, browser installation is now a manual step, by default Playwright comes w/o browsers: https://playwright.dev/dotnet/docs/intro


Answer Not Completed, but system says OK

Challenge http://freecodecamp.com/challenges/waypoint-remove-classes-from-an-element-with-jquery has an issue.
The instructions were:
"Let's remove the btn-default class from all of our button elements.
Here's how you would do this for a specific button, add $("#target2").removeClass("btn-default");"
But even before I typed in "btn-default", it said my answer was already correct:
http://postimg.org/image/4sts8kj5f/

https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2302
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2301
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2197
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2160
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/1923
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/1898
Fixed.


Make badge card to be consistent with subject card

should look similar to this:

See if some of the components can be generalized and re-used

PR: https://github.com/NationalSecurityAgency/skills-service/pull/671

:+1:


Broker contract, abstract Application contract, Verifier contract changes

Application contract: an abstract contract containing methods which all Applications must implement.
Broker contract: application registration + message routing (including signature verification via Verifier).
Verifier contract: can now verify signatures against the message's original raw bytes. In the client, the operator signs a hashed, prefixed message (to mimic the behavior of web3.eth.sign); the changes allow the Verifier to recreate the signed hash for verification.

This PR was developed for the relayer architecture in https://github.com/Snowfork/polkadot-ethereum/pull/69, not the current relayer in master.
TODO:

[ ] Smart contract tests
[ ] Integration with refactored relayer

Marking R4R as this may impact the design considerations of other components.

yeh something like this sounds right
On Wed, Sep 9, 2020 at 3:52 PM Vincent Geddes<EMAIL_ADDRESS>wrote:

@vgeddes commented on this pull request.
In ethereum/contracts/Broker.sol
https://github.com/Snowfork/polkadot-ethereum/pull/75#discussion_r485880027
:

   bytes32 codehash;

   assembly { codehash := extcodehash(_appID) }

   require(codehash != 0x0 && codehash != accountHash, "Application must be a contract deployed to this network");

   // TODO: Consider checking that the application implements the abstract Application method 'submit' according

   //       to EIP-165 (incomplete implementation: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md)

   applications[_appID] = true;

}

/**

* @dev routes the message to the specified application ID after verifying the operator's signature

* @param _data address _data expected type: Message { AppID [32]byte, Payload []byte }

* @param _signature address _signature expected type: Signature []byte

*/

function submit(bytes memory _data, bytes memory _signature)

On the Substrate side, things are still bit messy and ad-hoc. While I've
implemented the primitives to verify signed messages, the verifier module
isn't actually using those primitives yet. Currently, after no-op dummy
verification, the broker submits an opaque Message to an application. The
application then decodes that opaque message to a SignedMessage. Fixing all
that on my TODO list for M5.
I suppose the ideal approach on both chains would be the following
sequence:

Bridge receives OpaqueMessage
Bridge forwards OpaqueMessage to Broker
Broker forwards OpaqueMessage to Verifier
Verifier decodes OpaqueMessage into a SignedMessage { data,
signature }.
Verifier verifies message, strips off the signature, and submits VerifiedMessage
{ data } back to the broker
Broker dispatches VerifiedMessage { data } to target application

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Snowfork/polkadot-ethereum/pull/75#discussion_r485880027,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVTOKD32G2ZCJTGBJFFXLSE7MHFANCNFSM4RCZYT2Q
.

same should apply for the ethereum side too ideally
On Wed, Sep 9, 2020 at 4:18 PM Aidan Musnitzky<EMAIL_ADDRESS>wrote:

yeh something like this sounds right
On Wed, Sep 9, 2020 at 3:52 PM Vincent Geddes<EMAIL_ADDRESS>wrote:

@vgeddes commented on this pull request.
In ethereum/contracts/Broker.sol
https://github.com/Snowfork/polkadot-ethereum/pull/75#discussion_r485880027
:

   bytes32 codehash;

   assembly { codehash := extcodehash(_appID) }

   require(codehash != 0x0 && codehash != accountHash, "Application must be a contract deployed to this network");

   // TODO: Consider checking that the application implements the abstract Application method 'submit' according

   //       to EIP-165 (incomplete implementation: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md)

   applications[_appID] = true;

}

/**

* @dev routes the message to the specified application ID after verifying the operator's signature

* @param _data address _data expected type: Message { AppID [32]byte, Payload []byte }

* @param _signature address _signature expected type: Signature []byte

*/

function submit(bytes memory _data, bytes memory _signature)

On the Substrate side, things are still bit messy and ad-hoc. While I've
implemented the primitives to verify signed messages, the verifier module
isn't actually using those primitives yet. Currently, after no-op dummy
verification, the broker submits an opaque Message to an application. The
application then decodes that opaque message to a SignedMessage. Fixing all
that on my TODO list for M5.
I suppose the ideal approach on both chains would be the following
sequence:

Bridge receives OpaqueMessage
Bridge forwards OpaqueMessage to Broker
Broker forwards OpaqueMessage to Verifier
Verifier decodes OpaqueMessage into a SignedMessage { data,
signature }.
Verifier verifies message, strips off the signature, and submits VerifiedMessage
{ data } back to the broker
Broker dispatches VerifiedMessage { data } to target application

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Snowfork/polkadot-ethereum/pull/75#discussion_r485880027,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVTOKD32G2ZCJTGBJFFXLSE7MHFANCNFSM4RCZYT2Q
.


Fix default scroll in new chrome and android.

Details here: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Improving_scrolling_performance_with_passive_listeners

Thanks will review soon.

@kitsunde thanks mate, this solutions works like a charm.

this patch made scrolling glitchy for me


Generating the release APK failed

I get the following exception after running ./gradlew bundleRelease:
> Task :openCVLibrary310:compileReleaseAidl FAILED
aidl.exe E 04-26 02:08:01  6812 17520 io_delegate.cpp:50] Failed to GetFullPathName(C:\myapp\node_modules\react-native-rectangle-scanner\android\openCVLibrary310\build\generated\aidl_source_output_dir\release\compileReleaseAidl\out\org\opencv\engine\OpenCVEngineInterface.java)

Strangely my debug build works well and I can run the app on android without any issues. Only when I try to generate a release APK, it fails.
Any ideas?
Thanks

Somehow the OpenCVEngineInterface.java file is missing only for the release folder located at C:\myapp\node_modules\react-native-rectangle-scanner\android\openCVLibrary310\build\generated\aidl_source_output_dir\release\compileReleaseAidl\out\org\opencv\engine.

Hmm I haven't ran across this one yet. Here's some things you can try.

When in doubt, Invalidate Cache & Restart often helps.
Check you grade settings, any errors?
Check the issues of This Project or This Project to see if anyone else had this issue. These were the original packages that the android portion of this package was built from.

What Versions (Gradle, React, etc) are you using?

Thanks for your help, I've tried a lot of different things but none of them worked, so I just initialized a fresh project and everything worked fine.
Btw, great scanner !!


wait until socket is available

From @theopolis in slack:

I’m seriousness, yes, there is lag between socket creation and socket availability. Your thrift wrapper should take care of this, C++ and python do it by waiting up to —timeout seconds, and retrying every 200ms

For now, I handle this with a small loop:
for count < tries {

	if _, err := os.Stat(*socketPath); os.IsNotExist(err) {

		time.Sleep(time.Millisecond * 200)
		count++

		continue
	}
}

This should really be fixed upstream by thrift since it asks for a timeout...
https://github.com/kolide/osquery-go/blob/dc07ffdf186374c0a1328bb181e5f11d854508a2/transport/transport.go#L21

Digging further it appears that timeout is propagated all the way to stdlib net.DialTimeout but it still fails:
https://github.com/apache/thrift/blob/d907cc92db5b93e699a4282e979d097ea863215a/lib/go/thrift/socket.go#L97

Thanks for this!
That timeout (Open) is a time waiting for socket response. Our libraries should be implementing a timeout/retry check for the initial open as we race against the OS to make the socket available.


Update 'prepare_managed_clusters_data' to pass with args set to None value

When gcp_service_account_file is None, get_service_account_dict_from_file fails when unneeded (for example a ROSA cluster)
Prow testing failure example:
TypeError: expected str, bytes or os.PathLike object, not NoneType
https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_release/43065/rehearse-43065-pull-ci-rhpit-interop-tests-main-rosa-sts-test-rhods-operator-4.13-lp-rosa-rosa-sts-rhods-test-operator/1704533939206492160#1:build-log.txt%3A114

Resolved in #190


AutoIncrement of Primary ID not working

somehow the AutoIncrement for any primary ID is not working for me. I tried two different tables and different times to INSERT a new row with different values. also when inserting two rows subsequently with the same values. the ret.changes.lastId is always 1. I also tried to include the word AUTOINCREMENT in my create table sql like id INTEGER PRIMARY KEY _AUTOINCREMENT_ NOT NULL with no effect
I know you that you exactly test that in your examples (e. g. NoEncryptionTest.vue). however with my examples like here it is not working:
let values: Array<any> = [sampleId.value, animalNr, lat, long, currentDateTime ];
ret = await db.run(createNewOccurence,values);
let lastOccurenceId = ret.changes.lastId; //new id 1
console.log("new oc id1: " + lastOccurenceId);

values = [sampleId.value, animalNr, lat, long, currentDateTime ];
ret = await db.run(createNewOccurence,values);
lastOccurenceId = ret.changes.lastId; //new id 2
console.log("new oc id2: " + lastOccurenceId);

the Insert works. the runSQL Changes is 1. the result however in lastOccurenceId  is always 1. I don't know how to give you more details

Windows10. "@capacitor-community/sqlite": "^2.9.12". "vue-sqlite-hook": "^1.0.1". "@ionic/vue": "^5.5.4"
Samsung Galax S7. Android

@Snogo this is strange , can you share the table schema and the createNewOccurrence string so i can try to reproduce it?

CREATE TABLE IF NOT EXISTS occurence (
                id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                sample_nr INTEGER,
                animal_nr INTEGER,
                count INTEGER,
                latitude FLOAT,
                longitude FLOAT,
                datetime DATETIME
                );

export const createNewOccurence = `
    INSERT INTO occurence (sample_nr, animal_nr, count, latitude, longitude, datetime) VALUES (?,?,1,?,?,?);
`;

@Snogo look at https://www.sqlite.org/datatype3.html you will see that the DATETIME is not a SQLite types.
2.2. Date and Time Datatype
SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values:

TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.
Applications can chose to store dates and times in any of these formats and freely convert between formats using the built-in date and time functions.

it should be the reason. me i used an Integer where i stored the unix epochs date

thank you for pointing that out. you are right. I changed it to TEXT and use the format "DD.MM.YYYY HH:MM:SS" and I am more conscious about using dates in general but still the lastId  is still 1 unfortunately. also in another table:
CREATE TABLE IF NOT EXISTS sample (
            id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            user_nr INTEGER,
            date_begin TEXT,
            date_end TEXT,
            notes TEXT
            );

do you have another idea?

@Snogo this has been fixed in 2.9.13 see https://github.com/jepiqueau/vue-sqlite-app-starter/tree/refactorfor validation test

@jepiqueau it works! thank you very much for the support and fix. I will close this issue


Map of string 2 enum jsonpb

https://github.com/golang/protobuf/blob/05f48f4eaf0e05663b562bab533cdd472238ce29/jsonpb/jsonpb_test.go#L389
Is there away to do map<string , repeated MyEnum> mp Or some how fake this behavior using ListValue?

Your question is not the same as the commented out test entry.  Your question is particular to defining a map in proto.


Possible pull request?

Hey @matanelgabsi would you be interested in submitting a pull request for your changes? Would be keen to look at them. Seems you've got a bit better grasp than I do on how to structure a node!

Will do!
Got to admit I haven't continued my work on this for a while (too busy) but I'll find the time!


Stream the Video Downloaded from MongoDB's GridFS on react-native-video

Feature Request

Why it is needed
I've created a video-saving functionality using MongoDB's GridFS Storage, Now I want to retrieve that video file and stream it using react-native-video library, I've coded the Endpoint for retrieving the video file & its also working on Browser & HTML's Video Tag as source but it is not working on react-native-video & Throwing this error,
{"extra": -2147483648, "what": 1}}

Actually, I'm developing an Interactive live streaming mobile application for that I've to store & stream the video using react-native-video,  for storage purpose, I've used gridFS bucket.
Possible implementation

I think it should play the video without downloading it to storage & then giving it a storage link
Here is my API Endpoint for retrieving the file Stored in GridFS
Code sample
const conn = await mongoose.connection;
    const gfs = new mongodb.GridFSBucket(conn.db, {
      bucketName: 'video',
    });

    const file = await gfs.find({filename}).toArray();

    const videoSize = file[0].length;
    const start = 0;
    const end = videoSize - 1;
    const contentLength = end - start + 1;

    res.writeHead(206, {
      'Content-Range': `bytes ${start}-${end}/${videoSize}`,
      'Accept-Ranges': 'bytes',
      'Content-Length': contentLength,
      'Content-Type': file[0].contentType,
      'Content-Disposition': `inline; filename="${filename}"`,
    });

    const downloadStream = gfs.openDownloadStreamByName(filename, {
      start,
    });
    downloadStream.pipe(res);

  } catch (error) {
    console.log(error);
    return res.status(500).json({
      message: 'Error While Fetching the File',
    });
  }
};

Here I'm Passing that URL as a Source on react-native-video component on React Native Front End
<Video
        ref={ref}
        source={{
          uri: "http://localhost:5000/api/reel/file/2ded8f3e3050bf5f2d58297d79a35611",
        }}
        type="mp4"
        resizeMode="cover"
        onError={err => console.log(err)}
        style={styles.container}
      />

I don't think this will possible, but let me look


Setting WindowStartupLocation doesn't work for different Width/Height values

Setting WindowStartupLocation="CenterScreen" works perfectly if Width/Height of window are set to default (or not set at all). But if you change the width and height to any value other than the default then the window does not start at the specified location. I have attached a repro below:
Repro - tested with latest pre-release  build 5547
WindowStartupLocationRepro.zip

ping @jp2masa as you wrote the WindowStartupLocation feature!


Component no longer available?

Hi,
Can you please tell me if your component will be available in the Xamarin component store again soon?
Thanks,
Steve

@dackjaniels2001  Hello, Steve.
Unfortunately  Xamarin component store closed.
If you need to get/update my component - please write me to email<EMAIL_ADDRESS>

Hi @AlexandrNikulin
I wanted to check if their was an update and saw on xamarin store it was 1.5.7. Is this the right latest release ? If not, I'll email you to get this. Thanks for your answer.

@Umar3x  Latest ver is 1.5.7.
If you want some additional features or private support - email me. Thanks

I saw your git hub page and the plugin but i cant purchase it because its disabled the purchase option. i am curious ,  i am so interested and i really need this feature in my xamarin applications, can you please guide me, it will be a grate help.

@wpanduka  Component now open source. No need to buy

If the project is open source is there a chance we could see this lib made available on nuget for download if it is not there already there?

@LeoJHarris  Sure, I will do it. Or you can help me with it

I could help out with that. Thanks


collapse large difference output

Implemented collapsing large difference output.
Please have a look at the code. I expect a lot of changes. :P
We can expand the output with K9_EXPAND.
TODO for me:

Add a lot of test cases.
Documentation.
Choose an appropriate color for the collapsed string.

closing for now, but would be nice to get this shipped in the future!


[RFE] Provider reload buttons

Many pages have the reload button that reloads the view like F5 does. The detail view of providers does not have it and I think it would be nice to have it too since you can also wait for something to happen there, like refresh to finish etc.

This has already been resolved, bot sure in which PR but providers now have Reload buttons.


Fix conflict with auth tests

New SCC tests which are namespaced are fighting with sig-auth ownership:

time="2024-04-08T11:47:16Z" level=warning msg="encountered error in component identification" error="test "[sig-auth] all workloads in ns/openshift-user-workload-monitoring must set the 'openshift.io/required-scc' annotation" is claimed by oauth-apiserver, Monitoring - unable to resolve conflict -- please use priority field"

Namespace priority is 10 (if a test is namespaced, we want it to show up for the namespace owner, unless explictly override with a high priority)
Name sig-auth priority -1

/lgtm


Untouchable is already Send+Sync, no need to impl for DiplomaticBag

It can of course be the reverse, but I think the safety comment and the reasoning for Untouchable are better.

Huh, good point. Unless you think otherwise, I'm not going to bother releasing this as an update as it doesn't have an observable impact.


Synology NAS w/ Tailscale does not consistently accept Tailscale device connections

(@bradfitz FYI)
Description
Synology NAS w/ Tailscale v1.1.335 (the "server") does not consistently accept new Tailscale device connections (the "clients"). I've found two temporary fixes:
a) Restart server Tailscale app then retry with clients
b) Connect to server via https://{$TAILSCALEIP}:{$PORT} using another client that has a working Tailscale connection with the server. Once that connection is established, the connection on the original blocked client goes through instantly
Once fixed, connections then work as intended until the original client is forced to disconnect/reconnect from Tailscale, at which point the cycle repeats.
I can successfully connect the same clients to other non-Synology devices via Tailscale at all times. The same servers and devices worked fine with Tailscale for Synology v0.98.
Does this have something to do with v1.1.335 being marked as unstable? Are any additional configurations needed (e.g., iptables), and if so, what/how? Is v0.98 a better version to use since it was working well?
Steps to reproduce

Install Tailscale v1.1.335 on Synology NAS and setup per official documentation
Install Tailscale on Linux and Android devices
Connect client to Synology NAS web portal via https://{$TAILSCALEIP}:{$PORT}

Expected behavior
With v0.98, clients successfully connected to Synology NAS without issue
Observed behavior
With v1.1.335, see original description above. All client devices correctly show up in the Tailscale admin portal with current "Last Seen" timestamps.
Note that pinging Synology NAS servers w/ Tailscale v1.1.335 always fails (regardless of ability for devices to connect), whereas pings to all other Tailscale devices are successful.
Synology NAS model (servers)
Problem occurs on both DS920+ and DS214
Other devices (clients)
2x Chromebooks using Tailscale Android
1x Linux machine using Tailscale Linux

Interesting.
I just tried to replicate this from my MacOS to Synology in same LAN.
Initially ping from Mac -> Synology failed.
Then from Synology I got this:
$ tailscale ping <mac_tailscale_ip>
internal error: failed to create endpoint for discokey

$ tailscale ping <mac_tailscale_ip>
pong from ... via ... in 2ms

I anticipate this is related to some bugs we've fixed during the stabilization cycle of tailscale v1.1. If you want to try building a new package based on tailscale 1.1.0-569 or later, it would be great to know if this persists for you.
(This issue is linked from the tailscale forums: https://forum.tailscale.com/t/using-tailscale-to-backup-between-2-synology-nas/142/6)

@djpfine I created the packages for the latest unstable published (1.1.540). I haven't tried it yet with my Synology, but if you want to give it a try: https://github.com/nirev/synology-tailscale/pull/32#issuecomment-718225381
@apenwarr I was leaning on waiting until version 1.2 hits stable to publish a new package, do you think it's worth upgrading to the latest unstable instead?

v1.2 will be hitting soon, but I believe it's just Windows fixes left, so
it would be a good test to try it out now in 1.1 :)
ᐧ
On Wed, Oct 28, 2020 at 5:47 PM nirev<EMAIL_ADDRESS>wrote:

@djpfine https://github.com/djpfine I created the packages for the
latest unstable published (1.1.540). I haven't tried it yet with my
Synology, but if you want to give it a try: #32 (comment)
https://github.com/nirev/synology-tailscale/pull/32#issuecomment-718225381
@apenwarr https://github.com/apenwarr I was leaning on waiting until
version 1.2 hits stable to publish a new package, do you think it's worth
upgrading to the latest unstable instead?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nirev/synology-tailscale/issues/27#issuecomment-718227813,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAFA4HRP7BELZ3NZSJWP3TSNCGO5ANCNFSM4RPWCB5Q
.

--
Avery Pennarun // CEO @ Tailscale

I've updated both Synology units to 1.1.540, and will test for a few days before reverting back

Confirming that v1.1.540 has resolved the original connection issues with both Synology NAS units. Tested with Linux, Android, and iOS devices. Experienced one hiccup connecting with Android, but was not able to reproduce.

Awesome. I've also been running this for the past 3days without issues!


Change to multi-select instead of Add mutliple

Issue:  Any Add Namespaces areas in Create should be the multi-select instead of the Add row & select namespace.
Component style to use:

Areas to change:

[x] Create Workload - Pod Scheduling:  Pods in these namespaces

[x] OPA Gatekeeper - Create Constraints: Namespaces (Can we verify with Vincent that this is what we want to do?)

Verified fixed


Delete old backups (or move them)

I've activated the nightly backups again this morning. Since the files are much bigger now (280 MB as of this morning), we need to keep an eye on disk space on prod.
We should

[ ] copy the files to online storage
[ ] remove files older than 30 days

I've installed Hazel on prod and set it to move backups older than 4 weeks to the Trash (where they'll remain for another 30 days). Don't think we'll have need for anything older than that but if we do we can add an archive step.


Feature Request: Scheduled Tasks

Last one.
I'm actually trying to create a scheduled task that runs my container from a cron expression. Do you have any hints or ideas how I can provision something like this?
I'm pretty new to terraform so any hint our example you can point me to would be highly appreciated.

using
Terraform v0.12.3

provider.aws v2.18.0

I guess as I understand it this is out of the scope of this module.

Yes, seems out of scope for this module but let me do some research and probably I can create another module for your requirement

Thank you. Very kind of you. I already managed to build scheduled task on fargate, but I would love to get some input on it. I'm sure there are some unnecessary things in there. I'll be out of office for two weeks. I'll get back to you once I'm back.

Great, when you come back take a look at this module and let me know you comments.
https://registry.terraform.io/modules/jnonino/ecs-fargate-scheduled-task/aws

Hey @jnonino thanks for wipping together that module. I'm currently pretty happy with my solution. I'd like to learn a little more about terraform. So writing it by myself helps with that. 😄 Would you mind to take a look at this setup and tell me if there are some mistakes in there? https://github.com/fabianmoronzirfas/tf-scheduled-task


Allow adding after run

This would allow supporting cases where one task spawns sub-tasks. For example, if you need to get some URL and then once you have it you'll know that you need N other resources, and you want them all to be part of a single run.Group.

This would unacceptably complicate the design. You can use a second Group.


Apply Skins Song By Song

Is it possible?

Hello, song-specific skins would be too ressource-heavy to be a thing.
If you are implying "Apply Backgrounds Song by Song", it is currently a roadmap feature and adding multiple scripted backgrounds to a single skin is already possible.


Fix : Share on LinkedIn button not visible on hover in light mode.

PR Fixes:

1
2

Resolves #[Issue Number if there]
Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I assure there is no similar/duplicate pull request regarding same issue

closing fixed in https://github.com/code100x/cms/pull/730


chore: refactor findImages to remove print statements

Description
Refactor of findImages remove print states from inside the function. It now passes the image map to the devFindImagesCmd which prints a similar table as before.
A regression is that we lost the easy ability add the comment blocks for the maybe images and cosign artifacts.
Related Issue
Relates to #2865
Checklist before merging

[ ] Test, docs, adr added or updated as needed
[ ] Contributor Guide Steps followed

We are currently in the process of refactoring the pacakger function so find images will be completely re-written. During this refactoring printing will be deferred to the CLI.

Ah ok, thank you @phillebaba for the clarification. I'm wanting to put some effort into addressing #2865 for automatically updating the zarf.yaml file. Should I assume that findImages will still return an array with the images that zarf discovered still?

I can also close this PR if that is preferred for you

I am not looking into changing the existing behavior for find images. So the refactor will still in the end print the found images. I would suggest bringing up the issue to change the behavior of find images at the next community meeting.


Git pre-commit hook integration

It would be very useful to integration the validation functionality with the git pre-commit hook. I am currently working on a Go micro-service project spanning several teams. One such micro-service provides a central API (to the outside world) for all other services. As such, a large API contract is necessary. Given the support of multi-file API definitions, this is the only validation tool I could find that met my requirements.

With #27 and #36, I think this is taken care of?

Yup.  Good point.  Thanks for catching this old issue


amended with plus minus and lambda

Two minor changes:

added rule that replaces instances of "+ -" to "-". Not a major deal this was happening but easier for linter to understand where to break the lines like that, and,
changed "lambda" replacement target to "lamb" as "lambda" has special meaning in python. Potentially \[Pi] is also dangerous (i.e. maybe best keep it out of the replacement list) butI didn't want to make a design choice

Thanks for the contribution! I just saw your pull request by chance, presumably because you did not yet request a review. Unfortunately, I have a hard time reading your changes because you re-formatted the entire code. I generally like the re-formatting (how did you do this?), but it would be great if you could first re-format the code in a first commit and then apply your chances in a second commit. Alternatively, you could simply post the changes here in a comment, so I understand them better.

I merged PR #2, which looked good. However, we now have conflicts in this branch. Could you rebase or merge the changes from the main branch into this? Manually solving the conflicts should also be fine.

@david-zwicker should be OK now but please review because rebasing forks from upstream branches is near the limit of my git fu!!


SQS Cleanup, and fix #1105

Various cleanups in the SQS part. If this PR is merged, can then cut down test time from 15s to 9s and could probably get test_messages_polling down from 3s.
Passed more options to Queue class.
Cleaned some parts of the web request attribute management.
Fixes #1105

Coverage increased (+0.02%) to 93.591% when pulling 81e615f5c1bd3cc4ae1baae11bcefa6a88575c84 on terrycain:sqs_improvement into e19be52851bf369e80936b5e2239fdfc3d19e1d2 on spulec:master.

At last :smile:

This is great!

This is now released as Moto 1.1.14


Trek to touristic content association distance depending on trek practice

This feature has been included in version 2.0.0, right ?
I saw that field distance has been added to table rando.o_b_pratique but how to use it ?
The value is the buffer in meter ?

Never mind


feat(friendshipper): git reset --hard

this allows users to reset repo to a previous commit, also refreshes repoStatus so the localDLL commit gets updated

I was thinking the ResetToCommitOp would embed the ops necessary to make it all "correct", but one nice benefit of putting the ops in the frontend is we can give better status updates to users.

Perhaps I'm outnumbered on this one, but that does get rid of the timing guarantees of using a TaskSequence.


Latency Graphs

Latency graphs are in the new release which will be out soon!

Added in latest release


Add codeowners in this repo

Should be Emad, Rabie, Hanafy and Reem

closed via https://github.com/threefoldtech/www-mastodon/commit/637fe1d7440d9d237d768871c74af70025c87d17


%Z is not supported in parsing but that's unclear in the docs

This works:
DateTime::parse_from_str("2014-09-17 00:00:00 +10:00", "%F %T %z")

But this gives a ParseError(BadFormat):
DateTime::parse_from_str("2014-09-17 00:00:00 AEDT", "%F %T %Z")

This is not a bug, timezone name parsing is documented as unsupported. [1] But I guess the strftime docs should have the duplicate information as well. Thank you for feedback.
[1]  AFAIK glibc recognizes %Z but discards its result; if this is desirable, please file a new issue (I was always reluctant about such legacy behavior, but if there are demands, why not).

Oh right, that makes sense - I forgot that %Z might be useful for formatting (but not parsing). In that case, yeah - a footnote against the "%Z" in https://lifthrasiir.github.io/rust-chrono/chrono/format/strftime/index.html#specifiers would help.
I'm happy to strip off the timezone myself and then parse it in the Local time. As a sanity check, I then compare Local::now().format("%Z") to the timezone I was given. Unfortunately, "%Z" seems to produce a timezone offset (+10:00) just like "%z" does, rather than a timezone name. I guess it only actually returns a name if you use a named timezone (i.e. UTC) rather than Local.

Yes, FixedOffset has a placeholder time zone name. Tzdata support (#23) should give more useful %Z output for Local and others.

I think parsing time zone abbreviations is something we should support at some point. That some are ambiguous does not mean we can't parse any.
Chrono would need a deeper integration with time zones than it currently has (delegating that to chrono_tz or tz_file). So this won't happen anytime soon...


Add an architecture with libc::c_char == u8 build to CI

Attempting to add #4665, but I don't know if this is right.
Needed to install gcc-aarch64-linux-gnu to get this to check locally.

To check if it is correct, changing one of lib::c_char to i8 and watching it success on x86 but fails on the new platform will work.
isn't gcc target not stable yet? cargo check --target=aarch64-unknown-linux-gnu will be fine to check them


MINOR: Remove Unnecessary statement from WorkerConnector #doRun

Continue is unnecessary as the last statement in a loop.
So I remove it from WorkerConnector.

@chia7712  Could you review it please


Workflows Refurbishments

This PR introduces the new workflow definitions from iota.rs, trying to automatically test more and fix various current workflow problems.
Fix #855.

There are failing workflows, but we'll address them later.

We will redo them ourselves soon, too much conflicts on these.


Error when trying to see data content in amplify -> content (Data Manager)

Amplify CLI Version
12.2.3
Question
I tried creating a new table in schema.graphQl :
type Stage @model @auth(rules: [{allow: public}]) {
  id: ID!
  name: String!
}

type CommunityType @model @auth(rules: [{allow: public}]) {
  id: ID!
  name: String!
}

type UserType @model @auth(rules: [{allow: public}]) {
  id: ID!
  name: String!
}

For all these above data model I am getting below error, when I try to  view it in amplify :

I am not able to insert data, Am doing something wrong in schema, amplify push command after creating schema was successful.

Hey @kNikKumar, Thank you for raising this. Are you able to create the data from AppSync console?

Hi @AnilMaktala, not for this table. For others yes.

Hey @kNikKumar, Thanks for checking on that. To test something, would you mind updating the UserType model name to something slightly different, like UserType1 or UserTypeV2? Once changed, can you verify and let me know?

Also don't know whether it would be helpful or not but, since the something went wrong while table creation, when my app is running I keep getting this warning in terminal :
WARN  [WARN] 03:08.356 DataStore {"cause": {"data": null, "errors": [[Object], [Object]]}, "errorType": "Unknown", "localModel": null, "message": undefined, "model": "UserType", "operation": null, "process": "sync", "recoverySuggestion": "Ensure app code is up to date, auth directives exist and are correct on each model, and that server-side data has not been invalidated by a schema change. If the problem persists, search for or create an issue: https://github.com/aws-amplify/amplify-js/issues", "remoteModel": null}

HI @kNikKumar, I don't see anything special with the UserType that could cause this issue. Can you check that your UserTypeTable is created in your DynamoDB?

I am facing this issue as well, any solution or a reason for this to happen?

Yes still facing this issue, I suspect something is wrong with App Sync, DynamoDB is not correctly syncing up with DataStore . But how to debug this and check, I don't see any error log.
The only workaround I can think of is create a duplicate Amplify project and start work there.
Is there a way to duplicate my amplify project ?


Feature/scene table

This PR sets the stage to implement the scene table storage in two commits:
The first one moves element from the group data provider and the group data implementation into a common location to minimise code duplication when implementing the scene table storage.
The second holds the partially filed scene table source files. The aim of this PR is to validate the structure suggested (based on the group data implementation) before moving forward with the complete logic implementation.

 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.


BFT scenarios

This PR:

[x] Implements the BFT scenario in #145
[x] Implements the BFT scenario in #146
[x] Fixes build warnings
[x] Refactors Redis analysis configuration files by moving them to a subfolder

add your changes to 1.7.3 and revert the build.gradle file, we'll put all of this stuff in the same release.

I also changed your base branch to merge into the 1.7.3 release branch


perf: ⚡ add no-clone benchmark

:tada: This PR is included in version 1.6.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Number of Digits in Julia | Math | GSSoC'21

💥 Proposal
Number of Digits in Julia
Have you read the Contributing Guidelines on Pull Requests?
YES

/assign


Allow setting a message max size #264 not fixed

Bug Report

When sending large messages, does not work even though this issue was said to be fixed https://github.com/hyperium/tonic/issues/264.

Version

tonic 0.5
tonic_build 0.5.1
prost 0.8
Platform

Windows 10
Description
Send large a message from GRPC serve. Set the max_frame_size as mention here - https://github.com/hyperium/tonic/issues/264.

Consume endpoint using BloomRPC client. I expect a successful response instead of an error.
Not complaining but I am tired of finding bugs or issues in open source code. I get slowed down so much. This is a lesson to stick with std.lib/1.0.0+ libs or accept situations like this.

Alternative solutions
I could stream my response instead.

Are you sure this error is coming from tonic? I don't see anywhere where we might have created this error message?

Are you sure this error is coming from tonic? I don't see anywhere where we might have created this error message?

So .max_frame_size doesn't` work, it's not clear why?
https://github.com/hyperium/h2/issues/804

That error is not coming from h2, and likely not coming from tonic either. Tonic knows how to decode a message split over multiple DATA frames, and can also send over split DATA frames. The error message sounds like it is coming from the other side (your client?).

The error message sounds like it is coming from the other side (your client?).

But my client is tonic too...

Oh I see, it's a tonic specific protection: https://docs.rs/tonic/latest/tonic/server/struct.Grpc.html#method.max_decoding_message_size

I`m set on my tonic service as in the example:
let limit = 16 * 1024 * 1024;
let service = ExampleServer::new(Svc).max_encoding_message_size(limit);

But the error still exists:
code: OutOfRange, message: "Error, decoded message length too large: found 6242911 bytes, the limit is: 4194304 bytes"

@seanmonstar I have also hit this issue with the max_encoding_message_size set, is this a known bug?

I don't think there is a bug here and we have coverage https://github.com/hyperium/tonic/blob/master/tests/integration_tests/tests/max_message_size.rs please take a look if there is a case missing that you are seeing and if so creating a new case that we can look at and fix its really a bug.

I am also hitting this:
let mut check_client = CheckServiceClient::new(channel)
            .max_decoding_message_size(1024 * 1024 * 256)
            .max_encoding_message_size(1024 * 1024 * 256);

and
Error, decoded message length too large: found 4767689 bytes, the limit is: 4194304 bytes

I am using client and server streaming if that makes a difference.