If testcase uses template and template has its [teardown] - that keyword is not considered as test teardown.

Example that should highlight the actual issue:
*** Test Cases ***
Test Failure
  Fail   This always fails
  [Teardown]   Tear Down That Works

Another Test Failure
  [Template]   This Is Test Template
  print this message

*** Keywords ***
This Is Test Template
  [Documentation]    keyword thats used as test template
  ...
  ...   Args:
  ...      ${message}: something that gets printed
  [Arguments]   ${message}
  Log To Console   Something: ${message}
  Fail   This Also Fails But Teardown Fails Too
  [Teardown]   Failing Tear Down Keyword

Tear Down That Works
  [Documentation]    Working teardown
  Log To Console   XXXX: ${TEST STATUS}

Failing Tear Down Keyword
  [Documentation]   both, variable and keyword fails because this is not
  ... considered a test teardown.

  Run Keyword If Test Failed
  ...   Log To Console
  ...   YYY: ${TEST STATUS}

Feel free to close if deemed not a bug..

The idea is that if a test has a teardown, it is executed at the end of the test. It works the same way regardless are templates used ir not. Then if a keyword has a teardown, it is executed at the end if the keyword. This is done regardless is the keyword used as a template or not.
This approach is especially useful if a test has a template and multiple iterations like
*** Test Cases ***
Example
    [Template]    Template keyword
    A    B    C
    X    Y    Z
    1    2     3
    [Teardown]    Test teardown

In the above example Template keyword can have it's own teardown that is responsible on cleaning up the state between iterations. Then the test teardown can do final clean up if needed.
If this is what you asked, it's not a bug. If I misunderstood you, please clarify.

Question could be rephrased: If  a Test Template has a Tear Down, why it is not  considered Test Tear Down as it is in this case. I do understand the existing logic and already to use  [Teardown] in actual test case definition but was hit with another issue that could possibly be something in Browser library..

If template's teardown would be considered tests teardown, it would mean that it wouldn't be possible to easily clean up the state between iterations when a templated test has more than one of them. It would also make it possible to have both a template teardown and a test teardown.


refactor: enforce a few minor optimization in code

name: Pull request
about: Propose changes to the code
title: 'make the code cleaner in worker_loop_queue.go and worker_stack.go'
labels: ''
assignees: ''

1. Are you opening this pull request for bug-fixs, optimizations or new feature?
refactor
2. Please describe how these code changes achieve your intention.

I noticed that the original code uses the if statement to determine if the queue is overflowing in worker_loop_queue.go. I think it can use the modulo operator to make it cleaner.
before
wq.head++
if wq.head == wq.size {
    wq.head = 0
}

after
wq.head = (wq.head + 1) % wq.size

And there are two different calculation methods for binary search of the mid variable in worker_loop_queue.go & worker_stack.go.
I think l + ((r - l) >> 1) is a better way.
worker_loop_queue.go
mid = l + ((r - l) >> 1)

worker_stack.go
mid := int(uint(l+r) >> 1) // avoid overflow when computing mid

Last, I think it can reuse the isEmpty() method to evaluate the condition below.
before
if wq.size == 0 {
	return 0
}

if wq.head == wq.tail {
	if wq.isFull {
		return wq.size
	}
	return 0
}

after
if wq.size == 0 || wq.isEmpty() {
	return 0
}

if wq.head == wq.tail && wq.isFull {
	return wq.size
}

3. Please link to the relevant issues (if any).

No
4. Which documentation changes (if any) need to be made/updated because of this PR?

No
4. Checklist

[x] I have squashed all insignificant commits.
[x] I have commented my code for explaining package types, values, functions, and non-obvious lines.
[x] I have written unit tests and verified that all tests passes (if needed).
[x] I have documented feature info on the README (only when this PR is adding a new feature).
[x] (optional) I am willing to help maintain this change if there are issues with it later.

Thanks!


Add Fashion

Project URL
https://github.com/vadymmarkov/Fashion
Description
Fashion is a helper to share and reuse UI styles in a Swifty way. The main goal is not to style your native apps in CSS, but use a set of convenience helper functions to decouple your styles from a layout code, improving customization and reusability.
Checklist

[x] Only one project is in the request
[ ] Travis CI pass
[x] Supports iOS 8 and later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

CI can be disregarded, different issue

Alright... merging

@vadymmarkov really interesting library and I'll definitely use in one of my projects.
Thanks! 😄


Proposal: Add support for multiple docker machines

Currently Kitematic only supports virtual box as a machine to run containers on. During the DockerCon Hackathon my team worked on extending Kitematic to support multiple machines. This allowed us to create new machines (e.g. virtalbox, digitalocean,...) and to choose on which machine a new container should be created. Based on the work during the Hackathon and conversations during the conference the idea for this proposal emerged.
I am looking forward to your feedback and ideas to extend and improve this proposal, so that we can make Kitematic even better :-)
General Design Ideas

To support all docher-machine drivers, Kitematic should automatically retrieve the available drivers as well as the supported flags for each driver. This should also help to reduce work, when docker-machine adds new drivers in the future
This proposal adds support for non-local docker instances. To make sure that Kitematic shows the current state about the machines and the containers running on them, a mechanism to automatically refresh the information needs to be in place.

TODOs
The lists below gives an overview of the different tasks that are needed to support multiple machines within Kitematic.
Views
This section holds a collection of the needed UI work

create new machine

specify name
specify supported driver flags

modify / delete machine

how to handle running containers in the machine?

create new container

select machine on which the container should run on

container overview

show the machine the container is running on
group containers by machine

preferences

specify a default machine, which will be used for a new container, as long as no other machine gets selected

Actions/Utils

adapt DockerMachineUtil code to pass the specified flags and values to docker-machine
retrieve info about supported drivers and driver flags from docker-machine (docker-machine contains also default values for some driver flags)

Stores

store the machine on which a container is running

outside systems

docker-machine: add api call to retrieve driver flags in JSON or another easy to parse format

:+1:
As a first step, I'd like to see a feature to retrieve all available active Docker Engines with a docker-machine ls API call. Then show this list to the user when starting Kitematic and he can choose a single Docker Engine which he'd like to control.
This should be an easy extension with an instant value for the users.

Agreed @DieterReuter - :+1:  on supporting the docker engine selection

For those interested in some 'pre-alpha' QA, I've put together a simple Docker Engine selector:
https://github.com/TeckniX/kitematic/tree/docker-engine-selection

I've done a little bit of error detection, but still getting a bunch of warnings when updating the engine. Do use at your own risk, although the worst that can happen (I think/hope) is it will try to create a local Virtualbox with the name of your remote Docker engine.
Background:

Dev - Local Virtualbox with a couple of containers
Kitematic - Local Virtualbox manually created and used Kitematic to create new ghost container
Staging - Digital Ocean droplet manually created via docker-machine and used Kitematic to create and run new ghost container.

Works:

Docker Engine selection
Container create/start/stop/restart/delete
Container logs

Known issues:

Clicking the 'preview' link won't work (didn't look too much into it, maybe something with the host setup)
Mounting of volume

I didn't try to change the Env variables but I don't see a reason for it not to work.
Feedback is welcome :)

@elft3r Hi Jochen, I've been continuing work since the Hackathon on adding providers. Should we combine efforts here?

@timfallmk Absolutely - Do you have a repo location to share?

@TeckniX @elft3r I'm talking to @jeffdm this afternoon about what he would like to see out this. I think he might want to have a big planning session where we can get plans set. Stay tuned!

@timfallmk Hi Tim, great to hear that you also want to continue the work we started. Looking forward to the results of your meeting with @jeffdm
@TeckniX I had a look at your version and it looks pretty good. I didn't run into any problems with the basic functions. Let me know when you have further changes.

@elft3r Thanks for taking a look - The changes were made with a different mindset then what you and @timfallmk came up with.
I like the separation of the drivers and ability to also create the appropriate machine from Kitematic. We'll probably need to review the proper approach, but the code created was a good example of managing existing docker machines

As this is a bigger change to Kitematic we decided to collect all information and tasks in a Wiki.

Just wanted to additional requirements that you may want to consider, some are related to each other and/or might already be considered.
1.) Installation - Ability to not install VirtualBox and/or not have a local instance.
2.) Allow local engine that is not VirtualBox (at Install? or after the fact)
3.) This may be out of scope of the kitematic subproject but having VMWare Workstation support as an engine provider.
4.) Support for Storing TLS Certs for Authentication (In App)
5.) Support for using Window Certificate Store (Which IE and Chrome Both Use) to get TLS Certs
6.) Integration with Pageant (of Putty)
Additional Remarks:
4 and 5.)
In the case of 4 and 5 only one would be really needed I am favoring 5 for simplicity reasons, no GUI needs to be made and adding certificates to store is documented already.
6.) This may not be possible as I don't believe Docker supports OpenSSL Private Public Key Authentication.

@elft3r  .. Any progress with this topic?
@timfallmk

I'm talking to @jeffdm this afternoon about what he would like to see out this. I think he might want to have a big planning session where we can get plans set. Stay tuned!

Any results here?

Any updates on this feature?

Looking at the images shared, was there a reason why you put the driver selector attached to the docker image in the right view, instead of making it global in the left, and saying "these are your docker machines" then selecting the machine shows you what docker containers are running on it?  Which to me makes more sense than having to click through all the containers to figure out where a container is running.

@thenetimp although it may look like it's part of the image, the screenshot were showing the preference page, from which you would select the machine to use, which would then refresh the entire list of containers running


proposal: go/doc: inline type alias documentation

I would like type aliases to be inlined for better readability. Consider a package with an extensive experimental API.  Users would have to navigate back and forth between two (or more) packages: one containing the symbols they are allowed to access, and another one (or more) containing the usage documentation, struct fields, interface methods, etc.  And where one experimental function accepts an experimental struct as a parameter:
package internal

type MyInterface interface {
  MyFunc(MyStruct) error
}

type MyStruct struct {
  ...
}

package experimental

type MyInterface = internal.MyInterface
type MyStruct = internal.MyStruct

When reading the documentation for internal.MyInterface.MyFunc, you see MyStruct.  There is no back-reference to experimental.MyStruct. So you just have to hope the API designers are sane and didn't instead do:
package experimental
type FooBar = internal.MyStruct

Originally posted by @dfawley in https://github.com/golang/go/issues/34409#issuecomment-765731560

This would be useful for using ent. It uses a lot of code generation and includes aliases for several things in one of their own packages inside of the main generated package to make the usage easier, but the documentation winds up with things like
type Value = ent.Value
    ent aliases to avoid import conflicts in user's code.

It's not particularly helpful, and getting the documentation for the aliased type can be a bit awkward because the generated package is also usually called ent, and thus the go doc command needs a more of the path to disambiguate:

go doc ent.value gets the above.
go doc entgo.io/ent.value gets the original type's documentation.

It's not clear this is a win always. Especially for aliases to non-internal packages.
But even in aliases to internal packages, inlining has to be careful to qualify names.

Until now it has basically been the rule that if you need to do an alias to an internal type then you document everything in the package with the alias, because that's what users are looking at.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

It's not clear this is a win always. Especially for aliases to non-internal packages.

Maybe there should be a way to signal to godoc that you want it inlined?

But even in aliases to internal packages, inlining has to be careful to qualify names.

This is not really a webui problem since pkgsite/godoc can link against internal.U.
For the cli, we already have the problem that import pkg "path/to/package"  makes symbols show up as pkg.U, and frequently I cannot find things when that happens; so this does not seem like a regression.
We can also add a comment to clarify what is going on, similar to // Deprecated: reason:
// T is exported.
//
// Alias: of internal.T.
type T struct { X U }

Originally:
// T is exported.
type T = internal.T
Alternatives include partially qualifying the references:
// T is exported.
type T struct { X internal.U }

However this is confusing, imo, and propagates pkg issue above.

Until now it has basically been the rule that if you need to do an alias to an internal type then you document everything in the package with the alias, because that's what users are looking at.

This makes it really hard to see struct fields and implemented methods.

@griesemer also points out that we do not even have dependency type information in 'go doc' today.
We probably shouldn't make 'go doc' depend on doing that either, which would make it slower and potentially break sometimes.

Based on the discussion above, this proposal seems like a likely decline.
— rsc for the proposal review group

No change in consensus, so declined.
— rsc for the proposal review group


Single replica failure, some I/O error show from the app which used longhron

hello, I facing some Caused by: java.nio.file.FileSystemException: /bitnami/elasticsearch/data/nodes/0/indices: Input/output error and Caused by: java.nio.file.FileSystemException: /bitnami/elasticsearch/data/nodes/0/_state: Read-only file system from some application which used longhorn. Nothing error found form the longhorn UI.
error from longhorn manger pods

I didn't found the pvc block in the target host by command lsblk

Please attach a support bundle, from the screenshot it looks like your single replica failed.

Support bundle here: https://slack-files.com/T3AU9F5MG-F01D437MV9U-61880a356b

@keanlee Does scale down and back up the workload help?

@keanlee which volume is having the problem? I saw different volumes name in the issue and I can not find pvc-315dc813-xxx anymore.
Regarding the block device, you should able to see the block device exposed by Longhorn in the UI.

@yasker   Thanks for your reply.  We disable the PVC and create it again. so it's disappeared. our rancher monitor and elk both has some I/O error when use longhorn.  after destroy and create it again. we didn't reproduce it again. so I guess we need to keep watching for the issue.

update some system logs

time="2020-11-10T09:34:34Z" level=debug msg="Requeue longhorn-system/rancher-box-ops-02 due to conflict: Operation cannot be fulfilled on nodes.longhorn.io \"rancher-box-ops-02\": the object has been modified; please apply your changes to the latest version and try again

https://rancher-users.slack.com/files/U017H5GKQQ0/F01EL2JGVT6/longhorn-support-bundle_15bccd1d-1e5b-40cc-a387-51aaa85bd28d_2020-11-10t11-09-02z.zip @joshimoo

@keanlee In the log, I saw the volume pvc-8c7c2ef7-7c0f-4be4-aea9-b9e8ab70f57b-e-1999d77b failed due to unable to connect to the replica on <IP_ADDRESS>:10000. However, I cannot find the instance manager running on that address, at least at the time of support bundle generation. For now, you can scale down and scale back the workload to workaround it. The disconnection can be caused by Longhorn from being CPU starved or lost connection to the replica. You might want to monitor your CPU and network.

`stance-manager] time="2020-11-12T02:08:08Z" level=info msg="wait for process pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41-e-0695d377 to shutdown"
[pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41-e-0695d377] time="2020-11-12T02:08:08Z" level=info msg="Shutdown SCSI target iqn.2019-10.io.longhorn:pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41"
[longhorn-instance-manager] time="2020-11-12T02:08:08Z" level=debug msg="Process Manager: wait for process pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41-e-0695d377 to shutdown before unregistering process"
lh_client_close_conn: Closing connection
lh_client_close_conn: Connection close complete
[pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41-e-0695d377] time="2020-11-12T02:08:08Z" level=warning msg="Socket server connection closed"
time="2020-11-12T02:08:08Z" level=info msg="device pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41: SCSI device /dev/longhorn/pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41 shutdown"
time="2020-11-12T02:08:08Z" level=info msg="Closing: <IP_ADDRESS>:10060"
[longhorn-instance-manager] time="2020-11-12T02:08:08Z" level=info msg="Process Manager: process pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41-e-0695d377 stopped"
[longhorn-instance-manager] time="2020-11-12T02:08:08Z" level=info msg="Process Manager: successfully unregistered process pvc-4d69656f-ce6b-423e-aab3-59ba1a8a0c41-e-0695d377"`


Upgrade various libraries.

F.Y.I @iZettle/horizons...

Ping @iZettle/horizons, thanks...

@adamvoncorswant, could you please merge this PR if it's OK? :-)

@alorlea, since you are still in the office I assume?

Let me start the laptop
On 6 Dec 2016 17:46, "xiaodong xie"<EMAIL_ADDRESS>wrote:

@alorlea https://github.com/alorlea, since you are still in the office
I assume?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iZettle/izettle-toolbox/pull/195#issuecomment-265202262,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADHXba0C_8WBkJYUUd7ia0ALZHxINx38ks5rFZFLgaJpZM4K9qoE
.

Ah, sorry for the hassle... :-)

Merging

Thanks, @alorlea. :)

Ah, thanks guys. Sorry for bad latency :)


Retrieve the DDLogLevel of each logger associated to DDLog

New Pull Request Checklist

[x] I have read and understood the CONTRIBUTING guide

[x] I have read the Documentation

[x] I have searched for a similar pull request in the project and found none

[x] I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)

[x] I have added the required tests to prove the fix/feature I am adding

[x] I have updated the documentation (if necesarry)

[x] I have run the tests and they pass

[x] I have run the lint and it passes (pod lib lint)

Pull Request Description
In some case, it can be useful to know which are the DDLogger associated to DDLog. It is currently possible to get these information thank to [DDLog allLoggers] method.
However, it is not possible to know the DDLogLevel associated to these loggers. This piece of information is stored in the DDLoggerNode which is private.
This pull request allows to retrieve these information. It completes the #136.
Added:

A new class DDLoggerInformation which contains a logger and its associated level.
A new public method [DDLog allLoggersWithLevel] which returns an array of DDLoggerInformation.
A new private method lt_allLoggersWithLevel.
A unit test which verify [DDLog allLoggersWithLevel] method.

Updated:

Documentation (PerLoggerLogLevels.md)

To check:
An English native speaker should check what's the best method name between allLoggersWithLevel  and allLoggersWithLevels.

Looks good to me.


ERROR: LoadError: SCIP is currently not supported on "NT"

I want to install SCIP，but when I build SCIP,It haves error.
(@v1.4) pkg> build SCIP
Building SCIP → C:\Users\litingjun\.julia\packages\SCIP\lczBF\deps\build.log
┌ Error: Error building SCIP:
│ ERROR: LoadError: SCIP is currently not supported on "NT"
│ Stacktrace:
│  [1] error(::String) at .\error.jl:33
│  [2] top-level scope at C:\Users\litingjun.julia\packages\SCIP\lczBF\deps\build.jl:19
│  [3] include(::String) at .\client.jl:439
│  [4] top-level scope at none:5
│ in expression starting at C:\Users\litingjun.julia\packages\SCIP\lczBF\deps\build.jl:14
└ @ Pkg.Operations D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\Pkg\src\Operations.jl:899

You likely have an old version of SCIP.jl installed (e.g. 0.7.4), which did not support Windows yet, see #154.
This is probably due to a version conflict with the dependency CEnum, see #77.


Error encrypting password since Update

we have perfect Hygieia setup since last 4 months and since last update I am getting error encrypting password error while entering bitbucket credentials. previously I have created encryption key and was using it without any issues, this time as well I have created the encryption key and entered it in the Api and Bitbucket properties file still I am getting the error.
Recently I have noticed that you guys have removed the documentation for creating a encryption key for private repos, do I have to use another technique to get access to my SCM data? I look forward to hear back from you guys.
My Properties file is as below -
dbname=dashboard
dbusername=dashboarduser
dbpassword=dbpassword
dbhost=localhost
dbport=27017
dbreplicaset=false
dbhostport=localhost:27017,<IP_ADDRESS>:27017,ip-
logging.file=./logs/bitbucket.log
git.cron=0 0/5 * * * *
git.host=repo link
git.api=/rest/api/1.0/
github.UserId=username
github.key=key
git.key=key
bitbucket.key=key
git.commitThresholdDays=15
git.pageSize=25
git.product=server
Thanks,
Rushikesh
@nireeshT

@hrushie - I'm currently looking into this issue. We have not removed the documentation for creating an encryption key. You can find that here

@hrushie - can you please provide additional details on the error you are receiving? A screenshot of your logs with your personal info redacted would be best.

@hrushie - also check here for more info on github encryption for private repos

[

Hi @matthewbeasley this is the error I am getting

@hrushie - Can you please provide the logs of the API when the error occurs. That is where the valuable information is.

Hi @matthewbeasley there are no errors only this msg pops up.
2017-12-26 13:45:00,100 INFO  c.c.d.collector.CollectorTask - Running Collector: Bitbucket
2017-12-26T13:45:00.102-0800 I NETWORK  [listener] connection accepted from <IP_ADDRESS>:55408 #146 (13 connections now open)
2017-12-26T13:45:00.130-0800 I ACCESS   [conn146] Successfully authenticated as principal dashboarduser on dashboard
2017-12-26 13:45:00,131 INFO  org.mongodb.driver.connection - Opened connection [connectionId{localValue:115, serverValue:146}] to localhost:27017
2017-12-26 13:45:00,134 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2017-12-26 13:45:00,134 INFO  c.c.d.collector.CollectorTask - Starting...
2017-12-26 13:45:00,134 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2017-12-26 13:45:00,137 INFO  c.c.d.collector.CollectorTask - Repo Count              0        0s
2017-12-26 13:45:00,141 INFO  c.c.d.collector.CollectorTask - New Commits             0        0s
2017-12-26 13:45:00,141 INFO  c.c.d.collector.CollectorTask - Finished                         0s
2017-12-26 13:46:55,459 INFO  org.mongodb.driver.connection - Closed connection [connectionId{localValue:115, serverValue:146}] to localhost:27017 because it is past its maximum allowed idle time.
2017-12-26T13:46:55.466-0800 I NETWORK  [conn146] end connection <IP_ADDRESS>:55408 (12 connections now open)

@hrushie - hmm. what about the console logs in your browser?

Hi @matthewbeasley ,
here are the log from my web console
dashboard.js:38 Dashboard Object
:3000/api/encrypt/ Failed to load resource: the server responded with a status of 401 (Unauthorized)
api-status.js:16 appinfo:2.0.5-SNAPSHOT
:3000/#/login:1 [DOM] Found 2 elements with non-unique id #lg: (More info: https://goo.gl/9p2vKq) <form class="col-xs-10 col-xs-push-1 col-sm-8 col-sm-push-2 ng-dirty ng-valid ng-submitted ng-valid-invalid-username-password-remove ng-valid-parse-remove ng-valid-required-remove" id="lg" name="lg" ng-submit="login(username, password)" role="form" novalidate style>… <form class="col-xs-10 col-xs-push-1 col-sm-8 col-sm-push-2 ng-pristine ng-valid-add ng-invalid-remove ng-invalid-required-remove ng-valid" id="lg" name="lg" ng-submit="login(username, password)" role="form" novalidate>…
:3000/api/encrypt/ Failed to load resource: the server responded with a status of 401 (Unauthorized)
dashboard.js:38 Dashboard Object

@hrushie - in your api.properties file what do you have set for auth.expirationTime?

1000000

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:493) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at com.capitalone.dashboard.collector.DefaultBitbucketServerClient.makeRestCall(DefaultBitbucketServerClient.java:235) ~[bitbucket-scm-collector-2.0.5-SNAPSHOT.jar!/:2.0.5-SNAPSHOT]
at com.capitalone.dashboard.collector.DefaultBitbucketServerClient.getCommits(DefaultBitbucketServerClient.java:90) ~[bitbucket-scm-collector-2.0.5-SNAPSHOT.jar!/:2.0.5-SNAPSHOT]
at com.capitalone.dashboard.collector.GitCollectorTask.collect(GitCollectorTask.java:148) [bitbucket-scm-collector-2.0.5-SNAPSHOT.jar!/:2.0.5-SNAPSHOT]
at com.capitalone.dashboard.collector.CollectorTask.run(CollectorTask.java:63) [core-2.0.5-SNAPSHOT.jar!/:2.0.5-SNAPSHOT]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81) [spring-context-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_152]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152]

@matthewbeasley

My api.properties file
Database Name
dbname=dashboard
Database Username - default is blank
dbusername=dashboarduser
Database Password - default is blank
dbpassword=dbpassword
Database HostName - default is localhost
dbhost=localhost
Database Port - default is 27017
dbport=27017
MongoDB replicaset
dbreplicaset=false
dbhostport=localhost:27017,<IP_ADDRESS>:27017,ip-172-31-26-184:27017
server.contextPath=/api
server.port=8084
corsEnabled=false
#corsWhitelist=http://domain1.com:port,http://domain2.com:port
<EMAIL_ADDRESS>auth.expirationTime=1000000
key=HF6RYpGwfM4qbtVMNONYbXDWqEUERXXx
@matthewbeasley


openwebrtc-examples/ios/SimpleDemo/SimpleDemo cannot see remote video between iphone5 and iphone6s.

I have done some  tests  for version of cerbero@c64ec4f440f.
I got the following results:

1,  iphone 6s  ---->>>> iphone 5;
** for iphone 5, about 15~30s, we only see the first remote I frame.
2, iphone 5  ---->>>> iphone 6s;
** for iphone 6s, we never see the remote video, or only see the first remote I frame.

test steps:

1,  build framework for
2, build ipa for iphone by using openwebrtc-examples/ios/SimpleDemo
3, load page of http://demo.openwebrtc.org:38080/ in iphone or android phone;
4, join one session and then call;

test environment:

1, iphone 5 with ios9.2 and iphone 6s with ios 9.1;
2, cerbero@c64ec4f440f.
3, the test page is: http://demo.openwebrtc.org:38080/
4, ipone code is webview for openwebrtc-examples/ios/SimpleDemo

This issue is related with 504, but the video is worse between iphones.

@superdump
"We're in the process of making a complete solution for zero copy video from camera to renderer/encoder and from decoder to renderer. It may be that we take a step backward on the way to making a giant leap forward."
Then when we can comlete the feature of 'zero copy video' ? and when can see the real video between ios and android(or between ios and ios)?

@alessandrod is working on this and can provide an update.

Then up to now, are there anybody who have seen remote real time video between ios for our openwebrtc framework?  and how can they implement it?

I have for sure done that in the past, but haven't tried in recent weeks due to holidays etc. I can make a test run later today and get back to you. My closest setup is iPhone 5s to iPhone 6s, but perhaps that is close enough for now.

@alessandrod  When can we deliver the fix for real video between ios?

@stefanalund
I have tried many times again based on my test steps and environment.
I still cannot real video bewteen iphone 5 and iphone 6s.
And I have  tested  between iphone 6 and iphone 6s, I also have gotten  the same result that we cannot get real video.


Containers (LXC) support

I'm running some CentOS 7 containers and I was trying to elevate these containers but leapp fails complaining that it doesn´t find grub or grubby or the kernel package but in fact these things doesn´t exist in containers once the aren´t needed and containers don´t requires then to run.
In order to work in containers leapp needs to detect and ignore all hardware and boot part when running in a container.

Leapp requires grub2 and initramfs to work.
That's why it's impossible to use it inside containers.

Wouldn't it be possible to implement a condition for it to detect the container and ignore grub2 and the initram?
Especially since GRUB2 won't last forever, and the initram has multiple implementations too (just like init was replaced by systemd between CentOS 6 and 7). I know that today for the Almalinux scenario it is quite stable in this regard, but in the future it may change, so adding some checks and exceptions may help with that too.
Anyway, I understand if you don't want to worry about this for now, but it's a shame and a severe limitation for this type of system design to facilitate the change of OS versions if it is restricted to very specific scenarios and forces those who don't follow this scenario to have to not use it. It goes against the idea of the project itself IMO.


Error: Prisma schema validation - (get-config wasm)

im getting this errro when deplyin in Vercel
i have my neon link and the replica api setup
please help
Error: Prisma schema validation - (get-config wasm)
03:14:20.651 | Error code: P1012
03:14:20.651 | error: Environment variable not found: DIRECT_DATABASE_URL.
03:14:20.651 | -->  schema.prisma:4
03:14:20.651 | |
03:14:20.652 | 3 |   url               = env("DATABASE_URL")
03:14:20.652 | 4 |   directUrl         = env("DIRECT_DATABASE_URL")
03:14:20.652 | |
03:14:20.652 |
03:14:20.652 | Validation Error Count: 1
03:14:20.652 | [Context: getConfig]
03:14:20.653 |
03:14:20.653 | Prisma CLI Version : 4.11.0
03:14:20.701 | Error: Command "npm run build" exited with 1
03:14:21.424 | Deployment completed
03:14:21.027 | BUILD_UTILS_SPAWN_1: Command "npm run build" exited with 1

Check other issues, this question has already been answered.

Same story

Hey all. I've just simplified the repo to remove auth and payments so you can clone and deploy very easily, only with a Replicate environment variable. Try it out and if you still have any problems, please open a new issue and I will take a look!


Add row dialog for TN in Psalms shows empty fields

Add row dialog for TN in Psalms shows empty fields and does not show all of the columns fields as shown in the snapshot:

v2.3.0 build 06539c8 QA. https://develop--gateway-edit.netlify.app/ org- unfoldingWord, en, Book- PSA.

Delete shows as below:

Agree that all input fields are shown in tN card when adding a row for the book of Psalms. Tested with v2.3.0 build 8f589a0 QA.


In mobile view scrolling carousel down is triggering click event.

Bug Report
Current Behaviour
In mobile view scrolling a carousel down is triggering a click event.
Input Code and steps to reproduce

Add more than 1 carousel images.
Try to scroll down over the carousel image.
Instead of scrolling down. It is triggering the click event.

Expected behavior/code

Need to scroll down without triggering click event.

Environment

Node/npm version: [e.g. Node12.18.3/npm 6.14.5]
OS: [IOS, Android]
-Browser [Chrome, Safari]

@mrashikahmed , were you able to solve this issue? I'm facing something similar and i do not know how to fix it...

@mrashikahmed , were you able to solve this issue? I'm facing something similar and i do not know how to fix it...

I have done a work around for this @agnieszkabugla. I added my custom touch event listener to trigger the click event. I share you the code below.
I have changed variable name and removed some property to reduce complexity. Please change it to your convenient.

Need to create ID's for slides in mobile device

<slide
        v-for="(obj, index) in objList"
        :key="index">
        <img  // Desktop Images. Will be rendered only for desktop width.
          :src="obj.src"
          :click="handleSlideClick(obj.url)"
          />
        <img // Tablet Images. Will be rendered only for Tablet width.
         :src="obj.src"
          :click="handleSlideClick(obj.url)"
          />
        <img
          :id="generateId(index)"   // Add id for mobile Images
           :src="obj.src"
          :click="handleSlideClick(obj.url)"
          />
</slide>

mounted () {
    this.objList.forEach((obj, index) => {
      this.setTouchEvent(obj, index)
    })
  }

Add touch listener to the slides.

The following should be included in methods.
    /**
     * It prevents the click event triggering while user swipe in mobile device.
     * @param {String} url
     * @param {Number} index
     */
    handleGesture (url, index) {
      if (this.touchendY === this.touchstartY) {
        this.handleNavigation(url)
      }
    },
    /**
     * Generate the Id for each slide Images for mobile.
     * @param {Number} index
     */
    generateId (index) {
      return 'slideId' + index
    },
    /**
     * Set touch event for the generated Id.
     * @param {Object} Obj
     * @param {Number} index
     */
    setTouchEvent (obj, index) {
      let el = document.getElementById(this.generateId(index))
      if (el) {
        el.addEventListener('touchstart', (event) => {
          this.touchstartX = event.changedTouches[0].screenX
          this.touchstartY = event.changedTouches[0].screenY
        }, false)
        el.addEventListener('touchend', (event) => {
          this.touchendX = event.changedTouches[0].screenX
          this.touchendY = event.changedTouches[0].screenY
          this.handleGesture(obj.url, index)
        }, false)
      }
    }

Hope this will save some of your time.

In my case, I simply add this and it worked on mobile ( @click.native on slide element ):
<carousel
    :mouse-drag="false"
    :touch-drag="true"
    :per-page="1"
    :loop="true"
    :paginationEnabled="false"
    :navigationEnabled="true">
    <slide
        @click.native="goToAdPage($event, ad)"
        class="adv-photo"
        :data-background-image="ad.branch_cover_photo_full_path">
    </slide>
</carousel>


Add basic auth?

On my server hosting platform, you can only access files via FTP, which is fairly slow. I'd like to use some kind of mod to access the server files in order to run backups. This mod looked interesting, but I'm worried that all of the server files will be accessible to anyone to download: some of them contain secrets such as database connection passwords. Normally I'd put a reverse proxy in front of the server, but in this case that's not possible.
Would you consider adding support for requiring login credentials in order to access the files? I know it's not entirely secure unless HTTPS is used, but it'll work as a defense against casual port scanning attacks.

Interesting point. I'll consider it. Using the server directory as the Webserver root is bad practice though, I hope you're using the backup directory. I'll get back to you within the next week.

So this is what I did:

On Top is the line in the config file that sets the password. It's stored in plaintext, thus not very secure but you need the password to access the file (if you ever chose to use the server directory as the server root) so it should be fine. The bottom shows how to access it. I didn't use fancy cookies to check your session or anything but this does the trick. If you don't provide a correct password, a 403 (Forbidden) error is returned. This kind of breaks websites in a way that if an html file requires css or pictures from the same server, you'll need to add the suffix to the file link in the html file or else they won't work.
Let me know what you think.

Recently you've added tokens as a separate feature. Instead of adding passwords on top of that, maybe you could extend the tokens by adding a setting that says "files can only be accessed with a valid token" and also making it possible to create tokens that never expire? That way the two features are unified, and it also avoids putting the password in GET parameters (which is a bad place for them because that gets stored in the browser history).
That's what would work for my use case anyway, with machine-to-machine communication.
For humans, you would probably use true HTTP Basic Auth. Here, you return a 401 if you want a user-password pair but don't receive it, with a WWW-Authenticate: Basic header indicating that you'd like the password, and then the browser asks the user for the password and sends that with every following request (even if you navigate in the browser). It's not a cookie, but it persists during a single browsing session, while a GET password doesn't if your HTMLs don't also include it.
This may be a bit too complicated to do with your current setup, where you manipulate the raw TCP stream of HTTP/1.1 messages. Are there any libraries you can use to do this for you instead?

Yeah this is the proper way, I was thinking that my concept still makes it possible to use the webserver for other web content but that kind of defeats the purpose. True, I could just use the authentication token. Keep in mind, that managing tokens is only possible in-game. This shouldn't be complicated to implement on the webserver side. There are probably libraries but I have already implemented the token authentication for v2 of the API, therefore I can just copy paste that. One day, I might replace all this code with proper libraries.

Here is what I did:

You are now required to provide a Token generated from the /mcweb command (ingame). I plan on implementing a whitelist and blacklist feature for this command to further control access to generating new tokens since at the moment all server operators with permission level 4 have access to it. The Token requirement for the webserver is of course again toggleable with web.require_token
Commit: 54188d7
Tell me what you think!

That's not really how Basic Auth works: the string included there should be a base64-encoding of the provided username and password. A browser won't just put your token there, even if that's what you type, because it's base64-encoded. Also, this breaks existing clients because they were sending an Authorization: Bearer before and now that doesn't work anymore.

I think that with your current architecture, it's gonna be rather difficult to set it up so it both fulfills my need and also works for your original goal: you'd have to have a lot of different hacks around to manage all the use-cases.
If I have enough free time, I'll fork your repo and replace all the features I don't need with the ones I do.

fair enough, I'll leave the change of optional token Auth for the Webserver in and publish it with the next Minecraft release.
I initially chose against using user and password Auth for less complexity. having a single token to authenticate is more than enough for the average user and if you really need something more secure, a Minecraft server isn't the best hosting platform for such data.
Hope you'll find a way to get what you need. Cheers!


Mixxx 2.4 Released and OnBoard virtual keyboard

Final version Mixxx 2.4 was released. Could you update it?
Another interesting aspect, adding a virtual keyboard (Onboard) so that when you click on the search tab in the library you can write, since it is missed.
Thanks

Hey @Sheyk90  you can always help me test it by getting the latest image from the actions and seeing if it works ok - it should contain Mixxx 2.4.
https://github.com/fayaaz/mixxx-pi-gen/actions/runs/7998081913
About the keyboard - here's a discussion thread about it.
https://github.com/fayaaz/mixxx-pi-gen/discussions/75
I'm thinking of adding the script to the image - the keyboard is already installed.


Please provide socket to moderator if an order under active dispute is refunded.

With the socket, if the order is refunded while the mod is looking at the case in the UI, the UI can be updated so the Resolve dispute button is hidden and the UI could reflect that the case was closed.
The assumption is that the case should be closed if the order is refunded. That doesn't look like it's happening which is related to:
https://github.com/OpenBazaar/openbazaar-go/issues/550

The issue is the vendor can't just tell the moderator "I refunded the order, you can close it now" because he could just lie. Then the moderator cannot legitimately resolve the dispute in favor of the buyer.


Added tests to CompletionProvider tests. Cleaned up formatting for CompletionProvider tests.

This adds three new tests to CompletionProviderTests.fs. These tests currently fail, so they are ignored with a respective GitHub bug issue link.
One test has been removed from the old completion tests as it doesn't fail when it should; that particular test is one of the three new tests in CompletionProviderTests.fs.
Also, the formatting and message has been changed when a test fails in CompletionProviderTests.fs so it's more readable.

@dotnet-bot test Ubuntu14.04 Release_fcs Build please


SCP-3118: Add real node, WBE, and chain-index to deployment and shell

Note that the last 3 commits create launch-node, launch-chain-index, and launch-wbe scripts to launch instances locally that point to our private testnet.


[PE-D] mail-x - what if want to send email to multiple people by their names?

This the result of executing mail-x n/Alex Yeoh n/Bernice Yu
I know that only last prefix is accepted as seen from the UG,
but with that restriction in mind, this feature is not working well under it.
As a TA, I would want to send email sometimes by names, sometimes by emails, not one by name, and one by email.
One fix I can suggest is that make this feature more restrictive - that is, just take in the module, it would still serve the purpose of this command I believe

Labels: type.FeatureFlaw severity.High
original: jbkim1999/ped#17

The current implementation of the mail-x command supports for only last prefixes, as mentioned in the UG. For the restriction that you have mentioned, since mail-x takes all the arguments in an optional manner, user might as well just pass a module or a group as an argument, depending on the student set which is being targeted.


Fix Kupmios provider errors on protocol params

Fix Kupmios errors when getting protocol parameters by updating it to work with the current major version of Ogmios.
Tested against the following versions:
Cardano Node 8.9.0
Ogmios 6.1.0
Fixes #61

if you run pnpm changeset , I can take this PR
make sure it is a patch and write a small comment of the change
the changeset file should look like this
---
"@lucid-evolution/provider": patch
---

Fix Kupmios provider errors on protocol params

more info
https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md

basically we just need packages/provider/src/kupmios.ts and the changeset file, I think it is better to sync from main and start again


Error while saving internal resource

Tested versions

Not Reproductible in 4.4 dev 1
Reproductible in 4.4 dev Godot v4.4.dev (db24ed4ea)

System information
Windows 10.0.22631 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 (NVIDIA; <IP_ADDRESS>94) - 11th Gen Intel(R) Core(TM) i5-11600KF @ 3.90GHz (12 Threads)
Issue description
Impossible to save a scene with an internal resource as a property value on script attached to a node.
Error: "Resource was not pre cached for the resource section, bug?"
Steps to reproduce

Set an internal resource to a property if type 'Resource' from an attach script
Notice that the (*) is not on the scene tab
Try to save the scene

You will get the error: "Resource was not pre cached for the resource section, bug?"
https://github.com/user-attachments/assets/b0ef2c2f-325f-4d81-8e3f-73f87e4f6536
Minimal reproduction project (MRP)
test-godot-no-save-warning-external-resource.zip

My bad, my Git repo was not sync with master. This issue seems fixed now on master.


Research reducing memory footprint

Tracking issue for various research efforts into reducing Lodestar beacon node memory footprint.

A small analysis of state sizes. I'm using the performance states which are maxed out states with 250_000 validators
start                rss  0 B             heapTotal  0 B             heapUsed +4.8 KB          external +40 B            arrayBuffers  0 B
getPubkeys()         rss +73.39 MB        heapTotal +38.91 MB        heapUsed +41.32 MB        external +11.87 MB        arrayBuffers +11.87 MB
.defaultValue()      rss +11.83 MB        heapTotal +11.5 MB         heapUsed +12.61 MB        external -520.44 KB       arrayBuffers -520.44 KB
build raw state      rss +100.47 MB       heapTotal +100.82 MB       heapUsed +100.43 MB       external  0 B             arrayBuffers  0 B
addPendingAtt        rss +123.2 MB        heapTotal +128.25 MB       heapUsed +128.3 MB        external  0 B             arrayBuffers  0 B
toTreeBacked         rss +684.8 MB        heapTotal +675.74 MB       heapUsed +675.85 MB       external -13.3 KB         arrayBuffers -12.69 KB
CachedBeaconState    rss +624.05 MB       heapTotal +537.52 MB       heapUsed +529.14 MB       external +7.65 MB         arrayBuffers +7.65 MB

Source code:
async function analyzeStateMemory(): Promise<void> {
  await init("blst-native");

  const tracker = new MemoryTracker();
  tracker.logDiff("start");

  const pubkeys = getPubkeys().pubkeys;
  tracker.logDiff("getPubkeys()");

  const defaultState = ssz.phase0.BeaconState.defaultValue();
  tracker.logDiff(".defaultValue()");

  const state = buildPerformanceStateAllForks(defaultState, pubkeys);
  tracker.logDiff("build raw state");

  addPendingAttestations(state as phase0.BeaconState);
  tracker.logDiff("addPendingAtt");

  const stateTB = ssz.phase0.BeaconState.createTreeBackedFromStruct(state as phase0.BeaconState);
  tracker.logDiff("toTreeBacked");

  const cached = allForks.createCachedBeaconState(config, stateTB);
  tracker.logDiff("CachedBeaconState");
}

class MemoryTracker {
  prev = process.memoryUsage();

  logDiff(id: string): void {
    const curr = process.memoryUsage();
    const parts: string[] = [];
    for (const key of Object.keys(this.prev) as (keyof NodeJS.MemoryUsage)[]) {
      const prevVal = this.prev[key];
      const currVal = curr[key];
      const bytesDiff = currVal - prevVal;
      const sign = bytesDiff < 0 ? "-" : bytesDiff > 0 ? "+" : " ";
      parts.push(`${key} ${sign}${formatBytes(Math.abs(bytesDiff)).padEnd(15)}`);
    }
    this.prev = curr;
    console.log(id.padEnd(20), parts.join(" "));
  }
}

Originally posted in https://github.com/ChainSafe/lodestar/issues/2846#issuecomment-881551138

@protolambda very kindly tested memory usage of tree backed structures in Go and Python implementations:
ALL                        4448778  207.526 MB
tree.PairNode              2351329  143.514 MB
tree.Root                  2097425   64.008 MB
view.ContainerTypeDef            9    3.460 KB
view.ComplexListTypeDef          5       281 B
view.ComplexVectorTypeDef        3       171 B
view.BasicVectorTypeDef          2       128 B
view.BitListTypeDef              2        80 B
view.BasicListTypeDef            1        64 B
view.ContainerView               1        56 B
view.BitVectorTypeDef            1        40 B

Memory usage of deserialized state, after running hash-tree-root (i.e. filled cached hashes), in Go

Currently, to store the hash information in a persistent-merkle-tree Node, it takes 208 bytes

this is confirmed by v8 developer here https://stackoverflow.com/questions/45803829/memory-overhead-of-typed-arrays-vs-strings . He confirmed that however having a large number of small TypedArrays is not memory efficient, in our case it's Uint8Array
I wonder if it's possible to store ArrayBuffer as our hash instead of Uint8Array? This would reduce from 208 bytes to 72 bytes.

This script captures the approach memory footprint of different Javascript objects experimentally https://gist.github.com/dapplion/94dff8bbf92d45a75c10181e1a95100f all numbers below refer to the resident set size increase.

Uint8Array with 32 bytes: 223 bytes / instance
FixedObject (from proto): 105 bytes / instance
native bigint with 32 bytes: 72 bytes / instance

Other options that result as bad as Uint8Array: DataView, ArrayBuffer, native bindings, strings.
I investigated using a big Uint8Array and manually managing memory, but seems like it's a worse option than using BigInts.

Adding items to a FinalizationRegistry has significant overhead, ~130 bytes
Would need to create a new object for each 32 bytes area of use, so it can be garbage collected and notify the FinalizationRegistry. An object with one property takes ~50 bytes

So seems that bigint could be useful to store hashes

About overhead of bigint <-> buffer conversions (in my laptop)
With native binding from https://github.com/no2chem/bigint-buffer

bigint -> buffer: 0.6us/op
buffer -> bigint: 0.6us/op
hash 2 x 32 bytes with our WASM impl (includes concat): 2.2us/op

But there exist a library from the same pp https://github.com/no2chem/bigint-hash that returns a bigint and is faster

hash 2 x 32 bytes with bigint-hash (pre-concated): 1.3us/op

That would be 2*0.6us (bigint conversions) + 0.4us (concat) + 1.3us, vs 2.2us currently. +30% slower
Having a custom wrapper at the bindings level that took two bigints, and does the conversions and concating efficiently while hashing it could be a big win

I did some analysis on the Prater state at slot 936600 to understand the impact of size of each field / type. The sizes are approximate and may not account for offsets

field
length
ser size per item
serialized size
tree size per item
tree leaf size

blockRoots
8192
32
262144
32
262144

stateRoots
8192
32
262144
32
262144

historicalRoots
114
23
2622
32
3648

eth1DataVotes
611
72
43992
96
58656

validators
215612
121
26089052
320
68995840

balances
215612
8
1724896
32
6899584

randaoMixes
65536
32
2097152
32
2097152

slashings
8192
8
65536
32
262144

previousEpochAttestations
3431
165
566115
400
1372400

currentEpochAttestations
2494
165
411510
400
997600

Total MB

31.525163

81.211312

After https://github.com/ChainSafe/lodestar/pull/3046
getPubkeys()         rss +96.79 MB        heapTotal +33.91 MB        heapUsed +40.16 MB        external +11.44 MB        arrayBuffers +11.44 MB
.defaultValue()      rss +17.75 MB        heapTotal +17.25 MB        heapUsed +17.07 MB        external  0 B             arrayBuffers  0 B
build raw state      rss +91.24 MB        heapTotal +93.82 MB        heapUsed +94.21 MB        external  0 B             arrayBuffers  0 B
addPendingAtt        rss +127.2 MB        heapTotal +134.5 MB        heapUsed +127.45 MB       external  0 B             arrayBuffers  0 B
toTreeBacked         rss +111.71 MB       heapTotal +98.75 MB        heapUsed +106.14 MB       external  0 B             arrayBuffers  0 B
CachedBeaconState    rss +493.89 MB       heapTotal +433.62 MB       heapUsed +430.64 MB       external  0 B             arrayBuffers  0 B

Adding some granularity to CachedBeaconState
pubkey2index              rss +75 MB
index2pubkey              rss +385 MB
effectiveBalances cache   rss +15 MB
shufflings                rss +11.3 MB
rest of epochCtx          rss +0 MB
participation cache       rss +7.11 MB

After redoing the tests in my local env more times and in @tuyennhv 's the results are different:
pubkey2index + index2pubkey    rss +90.32 MB        heapTotal +61.23 MB        heapUsed +59.41 MB        external  0 B             arrayBuffers  0 B


describe and implement the external protocol

Describes an initial external protocol.

So this PR is getting a bit hard to re-re-review after all the comments and follow-up commits.  Would it be difficult to have the commit history cleaned up a bit?  For example, 062ed9015eff3a984bb4ac70d8a8c190c33eadf9 could be squashed into 8e172c9e4a084c3714f1cc49f8098fb8b3227ad8 (the commit that drops the usage of the OSBuildContext).  Smaller commits like the 4 that follow the first can be squashed into the first one that's the bulk of the doc writing.  Stuff like that.


question about druid architecture

While trying to figure out the structure to use druid, several questions arose.
The questions are below.

When stored in deep storage periodically in real-time node, what is the standard for storing in deep storage? (For example, once a minute in deep storage, etc.)

When saving the result obtained from the history node in the broker node, is it saved in segment units? When saving, I am wondering whether the entire segment is saved or only the result value of the query is saved correctly.

2-1) If what I understand correctly, there is a cache in the historical node.
When a query requests cache data,
If the query is different but the result is the same, how do you handle it?

Can the result value of a real-time node be stored directly in a historical node without going through deep storage?

When indexing in a real-time node, is the bitmap encoding random or is there a criterion (if so, what is the criterion)

What is the reference point at which the real-time node index is flushed in in-memory or off-heap memory?

thank you

Hi, thanks for your interest in Druid. I see many questions are about the realtime node, which was completely removed in 0.16.0. I would suggest looking at the Kafka/Kinesis indexing service which are the modern and standard way for streaming ingestion in Druid.

When stored in deep storage periodically in real-time node, what is the standard for storing in deep storage? (For example, once a minute in deep storage, etc.)

I don't remember much about the realtime node. For the Kafka and Kinesis indexing services, both use the dynamic partitioning which partitions data based on the size. The size limit is controlled by maxRowsPerSegment and maxTotalRows. That means, whenever the Kafka/Kinesis indexing task hits one of those limits, they will push the segments to deep storage. Finally, those tasks publish all remaining segments at the end of their lifecycle after taskDuration.

When saving the result obtained from the history node in the broker node, is it saved in segment units? When saving, I am wondering whether the entire segment is saved or only the result value of the query is saved correctly.

The broker is designed to merge results in a streaming fashion from historicals and streaming ingestion tasks, and so does not usually store query results. However, it can buffer them in its memory if the client doesn't read query results fast enough. There are some exceptions where your query has subqueries or sub-totals that needs to store intermediate results in Broker memory. Only intermediate results are stored in these cases.

2-1) If what I understand correctly, there is a cache in the historical node.
When a query requests cache data,
If the query is different but the result is the same, how do you handle it?

Historicals use two types of caches, i.e., the linux disk cache and the segment-level result cache. Every segment in historicals is memory-mapped and is cached in the disk cache when queries read them. The segment-level result cache can be thought as a map from queries to by-segment results. Different queries will hit different results.

Can the result value of a real-time node be stored directly in a historical node without going through deep storage?

No. Every indexing tasks should go through the steps explained in here.

When indexing in a real-time node, is the bitmap encoding random or is there a criterion (if so, what is the criterion)

Sorry, I don't understand your question. What do you mean by random bitmap encoding?

What is the reference point at which the real-time node index is flushed in in-memory or off-heap memory?

Similar to the question 1, I don't remember much about the realtime node. For Kafka/Kinesis, they use maxRowsInMemory and maxBytesInMemory.

Hi, thanks for your interest in Druid. I see many questions are about the realtime node, which was completely removed in 0.16.0. I would suggest looking at the Kafka/Kinesis indexing service which are the modern and standard way for streaming ingestion in Druid.

When stored in deep storage periodically in real-time node, what is the standard for storing in deep storage? (For example, once a minute in deep storage, etc.)

I don't remember much about the realtime node. For the Kafka and Kinesis indexing services, both use the dynamic partitioning which partitions data based on the size. The size limit is controlled by maxRowsPerSegment and maxTotalRows. That means, whenever the Kafka/Kinesis indexing task hits one of those limits, they will push the segments to deep storage. Finally, those tasks publish all remaining segments at the end of their lifecycle after taskDuration.

When saving the result obtained from the history node in the broker node, is it saved in segment units? When saving, I am wondering whether the entire segment is saved or only the result value of the query is saved correctly.

The broker is designed to merge results in a streaming fashion from historicals and streaming ingestion tasks, and so does not usually store query results. However, it can buffer them in its memory if the client doesn't read query results fast enough. There are some exceptions where your query has subqueries or sub-totals that needs to store intermediate results in Broker memory. Only intermediate results are stored in these cases.

2-1) If what I understand correctly, there is a cache in the historical node.
When a query requests cache data,
If the query is different but the result is the same, how do you handle it?

Historicals use two types of caches, i.e., the linux disk cache and the segment-level result cache. Every segment in historicals is memory-mapped and is cached in the disk cache when queries read them. The segment-level result cache can be thought as a map from queries to by-segment results. Different queries will hit different results.

Can the result value of a real-time node be stored directly in a historical node without going through deep storage?

No. Every indexing tasks should go through the steps explained in here.

When indexing in a real-time node, is the bitmap encoding random or is there a criterion (if so, what is the criterion)

Sorry, I don't understand your question. What do you mean by random bitmap encoding?

What is the reference point at which the real-time node index is flushed in in-memory or off-heap memory?

Similar to the question 1, I don't remember much about the realtime node. For Kafka/Kinesis, they use maxRowsInMemory and maxBytesInMemory.

Thank you for the detailed answer. Thanks to this, I think it will be easier to use Druids.


add serial to parallel converter

I added serial to parallel converter.
each transaction have 11 bits, bits 8-1 are the data. As you wrote in the specification (power point in whatsup), the FIFO will receive only 8 bits corresponding to data. Despite the data converted into 8 bits and not 11, I think we have to assert a signal indicating that the data is ready only after 11th bit. That signal is : ParallelDataReady.
FYI: the module been tested

@roman012285  - i dont understanad whats going on here
I see 2 commit.

you added the module
you removed it.

SO in total nothing changed..
Not sure what you want me to approve in this PR

Also - you wrote you tested this - i don't see the TB.
It should be simple to add it as part of the f file, and use it with -top options


Parameter variation for dcr.par file

It seems to me that default parameters is not always the best way to go with goodman data. For instance for data that uses binning the threshold is different. (I will post the details later)
The default set of parameters is as follow.
THRESH  = 3.0   // Threshold (in STDDEV)
XRAD    = 9     // x-radius of the box (size = 2 * radius)
YRAD    = 9     // y-radius of the box (size = 2 * radius)
NPASS   = 5     // Maximum number of cleaning passes
DIAXIS  = 0     // Dispersion axis: 0 - no dispersion, 1 - X, 2 - Y
LRAD    = 1     // Lower radius of region for replacement statistics
URAD    = 3     // Upper radius of region for replacement statistics
GRAD    = 1     // Growing radius
VERBOSE = 1     // Verbose level [0,1,2]
END

Camera: Red
ROI: Spectroscopic 2x2
Binning: 2x2
Date: 2017-08-17
- THRESH  = 3.0   // Threshold (in STDDEV)
+ THRESH  = 2.0   // Threshold (in STDDEV)
XRAD    = 9     // x-radius of the box (size = 2 * radius)
YRAD    = 9     // y-radius of the box (size = 2 * radius)
NPASS   = 5     // Maximum number of cleaning passes
DIAXIS  = 0     // Dispersion axis: 0 - no dispersion, 1 - X, 2 - Y
LRAD    = 1     // Lower radius of region for replacement statistics
URAD    = 3     // Upper radius of region for replacement statistics
- GRAD    = 1     // Growing radius
+ GRAD    = 0     // Growing radius
VERBOSE = 1     // Verbose level [0,1,2]
END

Camera: Blue
ROI: Spectroscopic 1x1 (not in header)
Binning: 1x1
Date: 2014-11-11
THRESH  = 3.0   // Threshold (in STDDEV)
-XRAD   = 9     // x-radius of the box (size = 2 * radius)
-YRAD   = 9     // y-radius of the box (size = 2 * radius)
+XRAD   = 8     // x-radius of the box (size = 2 * radius)
+YRAD   = 8     // y-radius of the box (size = 2 * radius)
NPASS   = 5     // Maximum number of cleaning passes
DIAXIS  = 0     // Dispersion axis: 0 - no dispersion, 1 - X, 2 - Y
LRAD    = 1     // Lower radius of region for replacement statistics
URAD    = 3     // Upper radius of region for replacement statistics
GRAD    = 1     // Growing radius
VERBOSE = 1     // Verbose level [0,1,2]
END


Simple test target

This adds a very simple make test target that we can hook into a CI system like circle/travis/jenkins/(your favorite system here).
At present, the test does the following:

runs golang linters
compiles moby tool
clones the linuxkit repo for a sample yml
builds the sample linuxkit.yml

I've added a sample circle.yml file but because I am not an admin for this repo/org I can't hook it up/test it.
This test can (and should) be factored out into a more full-featured suite and include golang unit tests, but I wanted a quick smoke test that we could start enforcing against PRs in the short term to get this going.

Can you just check in a sample yaml here. The two repos might not be in sync with changes, and this one will change first in general.

@justincormack sounds good - it's part of the first commit now

Also one more thing, can you output the tar format, and not any others - they will be moving out of here, thats the important one for this repo...

@justincormack done!

ok its failing https://circleci.com/gh/moby/tool/1
Looks like it might not be cloned in right place for Go? And golint not installed?

yep looks like it - I'll open a followup PR

I am not sure if I turned it on on PRs or not - the UI is confusing

trying to fix here, don't think it's on for PRs: https://github.com/moby/tool/pull/36

hmm, tried adding it again


Sticker file is too small

The PNG of the sticker image is too small to print (per the Sticker Robot folks) at their minimum die cut size.
Is there a larger file (or a vectored image) that someone can share?

Thanks for getting in touch, @jellenf! Let me look into it and see what I can find out.

Any chance of getting a hi res oblong design, with the text to the right of the logo?

@kekoziar I am not much of a designer, but I can give it a shot. You are also welcome to edit this however you'd like!

Thank you! Stickers ordered! Mischief managed!


Fix: Letter Pullup preview text visibility in dark mode

Fix #51
Update className to ensure text color is white in dark mode

Thanks for this PR!!
Just pushed a fix for this in the latest commit on main here :)
https://github.com/magicuidesign/magicui/commit/69bbbb45ca2027554efe9e256eaeedffc5007158


Need help: No wallets showed in the Connect Wallet panel, how can I load the supported wallets?

By default, it should show all the preset wallet items. I suppose you are customizing the list, right? Check out this tutorial: https://kit.suiet.app/docs/tutorial/customize-wallet-list

cool, I have seen the wallets I need. Thanks again.


fix json_object can't be odd parameters, need even parameters

Proposed changes
Issue Number: close #31766

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

@iwanttobepowerful please add a testcase


Added export hint to 2D and 3D physics and render layers.

You can export them with:
export (int, LAYERS_2D_PHYSICS) var layer_2d_physics = 0
export (int, LAYERS_2D_RENDER) var layer_2d_render = 0
export (int, LAYERS_3D_PHYSICS) var layer_3d_physics = 0
export (int, LAYERS_3D_RENDER) var layer_3d_render = 0

Fixes https://github.com/godotengine/godot/issues/27753 and maybe https://github.com/godotengine/godot/issues/27695

Oh I sooo need this :)

Thanks!

bless


[WebWorker] nextZero ReferenceError: module is not defined

when using web worker i got this error.
web worker failed to load the script when compressing for the first time.
(i'm using MeteorJS + ReactJS)

from stackoverflow: https://stackoverflow.com/questions/14500091/uncaught-referenceerror-importscripts-is-not-defined

When you create a worker it is actually executed twice. The first pass is in the context of the global 'window' object(meaning you have access to all the window object functions). The second call through is in the context of the worker which has a different global object, one where 'importScripts' exists.

// proper initialization
if( 'function' === typeof importScripts) {
   importScripts('script2.js');
   addEventListener('message', onMessage);

   function onMessage(e) {
     // do some work here
   }
}

Notice the addEventListener is inside the if statement. If you place it outside of it, your callback will be registered twice. Once on the 'window' global and once on the worker's global.

from stackoverflow: https://stackoverflow.com/questions/14500091/uncaught-referenceerror-importscripts-is-not-defined

When you create a worker it is actually executed twice. The first pass is in the context of the global 'window' object(meaning you have access to all the window object functions). The second call through is in the context of the worker which has a different global object, one where 'importScripts' exists.

// proper initialization
if( 'function' === typeof importScripts) {
   importScripts('script2.js');
   addEventListener('message', onMessage);

   function onMessage(e) {
     // do some work here
   }
}

Notice the addEventListener is inside the if statement. If you place it outside of it, your callback will be registered twice. Once on the 'window' global and once on the worker's global.


🐛 Fixed v0.1 API user/password authentication when public API is disabled

no issue

https://github.com/TryGhost/Ghost/commit/39edb7646e32b6597466e37218118de578dda864#r32609795 introduced improved error validation that performed a "public api enabled" check too early in the authentication process which meant that v0.1 password authentication was stopped in it's tracks before being able to sign in when the public api is disabled
moves the error handling to the authorisation layer instead once we're sure that there's no authenticated user available

Closing as this was resolved in https://github.com/TryGhost/Ghost/commit/ac26436c104f3df594e07313fa9cb191415be5d2


Replace doesn't work as expected with \b

Feel free to close if this is really behaving as expected.
The following code:
extern crate regex;

use regex::Regex;

fn main() {
    let mut result = "                pub mErrorLine: root::nsTString<u16>,".to_owned();
    let r = Regex::new(r"\broot::nsTString<u16>\b").unwrap();

    result = r.replace_all(&result, "::nsstring::nsStringRepr").to_string();

    println!("{:?}", result);
}

Will not be able to replace the root::nsTString<u16>, while removing the last \b from the regex does.

OK, I guess this actually works as expected. By definition, \b should be equal to (?<=\W)(?=\w)|(?<=\w)(?=\W), and both , and > are not word characters, so \b shouldn't match there. This behavior matches other regexp engines as well.

Yup, this is as expected.


Fix : asm-new.sh execution failed if in the same folder with asm-new.sh

close due to asm-new.sh has been deprecated


Clarify bitshift amounts in sse2 pseudocode

I was very confused when I read this code because the bitshift amounts overlapped
so heavily and then are or-ed together. I believe the intention was to mean a number in bytes,
this changes it to a number in bits as bitshifts usually are.

I'm not so sure about that. Shifts in SIMD code are not always expressed in bit amounts, but are sometimes expressed in terms of lanes: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srli_epi16&expand=5506
I'd almost prefer leaving it as it is, and maybe add a comment noting that they are byte shifts.

Fair enough, it's your choice. I'm very surprised that that's true and I would imagine most other programmers would be too.
Is there a better example of the lane amounts? In the link you posted it looks like the shift amount argument to the function is in bits to shift within each u16 and the number next to>> operator is a shift amount on a u16 that gets verified as less than 15. Seems like they're all in bits to me.

Oh, sorry, I linked to the wrong intrinsic. You're right. PALIGNR is what I had in mind: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_alignr_epi8&expand=257
I'll noodle on this.

I found a good example: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_srli_si128&expand=5533
When shifting an entire u128, the shift amount is expressed in bytes, which matches your point about lanes. Okay shall I change this PR to just add a comment?

Yeah I'd just add a comment noting it for now.

That CI failure was caused by https://github.com/rust-lang/cargo/issues/7427
Want to re run it somehow? Seems rather unnecessary given that the changes total to a single comment.


“Unknown error occurred“when ZHA mode

Now I have updated the GE3(DMWG03LM) to V3.0，but after I “” Enter the serial port settings”，then it says：Unknown error occurred

Unknown error = unknown problem. You need to search and provide more details.

sorry，but i don't know how to get logs of this gateway3 integration

I encountered the same issue.
I learned that the openmiio_agent takes over the device and the port 8888 as well. And I noticed that when connecting to the port 8888 of the gateway, its log file /var/log/openmiio.log displays an error as below
WRN github.com/AlexxIT/openmiio_agent/internal/zigbee/zigbee.go:139 > error="unknown baud rate"
Referring to the source code, I found the relative lines https://github.com/AlexxIT/openmiio_agent/blob/master/internal/zigbee/zigbee.go#L184-L192
It seems that no baudRate is offered and also it cannot probe the correct baudRate to connect to the hardware. And then it raises the error and shutdown the connection to port 8888.
My solution is to add a initial baudRate to the command. I don't know if it is a correct way, but it works for me.
The solution in detail:
change the line in file xiaomi_gateway3/core/shell/base.py
from
RUN_OPENMIIO = "/data/openmiio_agent miio mqtt cache z3 --zigbee.tcp=8888 > /var/log/openmiio.log 2>&1 &"
to
RUN_OPENMIIO = "/data/openmiio_agent miio mqtt cache z3 --zigbee.tcp=8888 --zigbee.baud=115200 > /var/log/openmiio.log 2>&1 &"
and then reboot both the gateway and the homeassistant.

It's better to update and fix probe logic. Because probe ensure that chip in correct state and can answer to requests.
Looks like you using default chip firmware because 115200 baud rate.
What model is your gateway? What firmware?

It's better to update and fix probe logic. Because probe ensure that chip is in correct state and can answer to requests. Looks like you using default chip firmware because 115200 baud rate. What model is your gateway? What firmware?

gateway: Xiaomi Multimode Gateway 2
firmware 1.0.6_0016, and the same issue for firmware 1.0.3_0028
Thanks!

OK. I'll check with my gw


[question] what's the relation to mobile client in eShop repo?

as per title: code duplication exists, while there are minor differences. Which one is moved forward? (I assume eShop repo):
https://github.com/dotnet/eShop/tree/main/src/ClientApp
Thanks!

The new eShop client sample is being updated and will be the replacement for this repo. This one will be archived in the near future. We are updating the ebook currently.


use strict mock by default, with partial mock optional

closes https://github.com/iambumblehead/esmock/issues/64
This MR changes esmock's default mocking behaviour, so that "partial mocks" aren't used by default.
Previously, esmock used partial-mocking always. The newer interface works this way,
const mainWithPartialMockedModules = await esmock.px('../src/main.js', {}, {
  fs : { // this 'fs' mock is merged with existing fs, then returned to main.js
    readFile : () => 'this function is merged with other fs definitions';
  }
});

const mainWithStrictMockedModules = await esmock('../src/main.js', {}, {
  fs : { // only this single-definition 'fs' mock is returned to main.js
    readFile : () => 'only this function is defined';
  }
});

The major version should probably be incremented, the README updated and an extra unit-test added.
@Swivelgames if you're available to review that would be awesome. If these are merged tomorrow I can test changes in bigger projects after they are published.

the last recently added test needs to be updated


Feature to crop loaded DICOM data

I'm working with AMI to visualize DICOM data, a feature that would be cool to have is:
Cropping the DICOM data/stack by changing the dimensions and position of a hollow beam.
I'm pretty new to ThreeJS/AMI, but I'll try my best to add the functionality myself, any help is greatly appreciated.

Hi @l0uch3 -
Can you remind me which is the goal? To save the cropped data somehow or only for visualization?
Depending on the use case there are different possible solutions.

Hello @NicolasRannou
The main goal is to show only the data inside the "selection beam" after cropping. Under the hood, the stack/frames itself don't have to be removed or anything. As long as clear coordinates of where the crop happened can be fetched. (the coordinates of the beam corners)

That's what I currently have; It's a selection beam that can be scaled and moved around, the next step is to perform the visual crop eg; hide the area around the selection.

Hi,
I can suggest you two options:
1- Check https://github.com/daign/clipping-with-caps
In this projects, you can move the walls of a box to select the beam boundaries and, using shaders, you       can clip it easily. This should be easy since you have all the code, you only need to remove the CAP thing.
2- Using clip planes in stack material. You dont need to learn shaders for this. You only need to define 6 planes than clip the stack

Yes probably doing that in the shaders is the easiest way.
There are a couple of things to be figured out but here would be the basic steps:
1- Pass stack._lps2AABB (aka uWorldToAABB) transform and the bounding box to use for cropping uRoiAABBox to the shaders.
2- In the shader, if uWorldToAABB *vPos not in uRoiAABBox, return. Else proceed.
I might not have time this week to work on that but basically you need to add stuff in:
1- uWorldToAABB and uRoiAABBox as uniforms in https://github.com/FNNDSC/ami/blob/dev/src/shaders/shaders.data.uniform.js
2- Check if point is in ROI in the fragment shader:
https://github.com/FNNDSC/ami/blob/dev/src/shaders/shaders.data.fragment.js#L60
Then we can generalize it for the other type of shaders.
Maybe we can also pass a flag to the shader to know if cropping is on/off. Or default cropping region could be the stack bounding box.
AABB stands for Axe Aligned Bounding Box

Thanks a lot for the info and help @NicolasRannou @rwirz !
I'm working on another part of the application at the moment, but will try to implement this as soon as I have time.

@l0uch3 can I also close this one?

@NicolasRannou Yup, this went together with the other issue you just closed 👍


[Preview] Query: Refactors EnableOptimisticDirectExecution to true by default in Preview mode

Pull Request Template
Description
Enabled OptimisticDirectExecution by default in Preview mode to test its performance. Based on the results, we will decide if OptimisticDirectExecution should be opt-in or default for GA.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Closing issues
To automatically close an issue: closes #IssueNumber

@msftbot wait for @kirankumarkolli for public API approval


324 RPL_CHANNELMODEIS sent after listing bans

mode #channel b sends the ban list as expected, but then sends a 324 RPL_CHANNELMODEIS and a 329 RPL_CHANNELCREATED. It should not send the last two, as per Freenode.

These numerics are also sent when mode changes fail due to insufficient privileges, this should be fixed as well.

Since we're at it, I got the same chan modes, randomly, see 13:09 lines. No command was issued then.

It would help if you could get the output of HexChat's "raw log" (Window -> Raw log).


Fix for HTTP cookie jar change

@quinnj should this have been a breaking change in HTTP.jl?

Yeah, looks like we should have bumped to 0.9 with that change; that was about a year ago, though?

I will make changes after 20 Dec
Currently busy with university examination


add option to disable reload after resume

closes #442

Description

I found it annoying, that all my services would reload, after resuming my system from hibernation. Therefor I added a option in the settings to thisable this behaviour.
Screenshots:

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My code follows the code style of this project (run $ yarn lint).

Thank you for your contribution! @all-contributors please add @n0emis for code.


openssh always opens up an x-window to verify authenticity, but unable to enter password

If I try to run a git fetch via ssh or try to ssh to another computer, I get a popup asking for password, but without any way to enter the password:

so the ssh operation fails.  I've made sure openssh-askpass is uninstalled, but this still happens.

WSL has no notion of service hooks. Thus running services like the ssh socket are unsupported. MS:

Also, even though you will be able to run many popular server applications (e.g. Redis), we do not recommend WSL for server scenarios

alwsl 1.0 has server capacities and can expose SSH and other ports to LAN/WAN on Windows 8, 8.1, 10 and Server 2008+. Read this post to learn about the release dates. The next developer preview (version 0.6) will not support this.


Fixed issue 874

The bug was introduced in one of my latest pull requests and the code was never released, so no changelog entry should be needed.
I remember specifically testing the result of substr($string, 0, -$length) prior to submitting it, but I guess ... well, I don't know how that happened. Anyways - it's better this way as neither substr() or strtolower() are required.

please fix crop() function also... thanks!

Whoops ... sorry I missed that - should be fine now. :)

Awesome... Now @philsturgeon for the merge and we're done ;-)


Compatibility with Android

Tried testing this on Android, and is almost unusable (due to the poor TalkBack app). From our experience internally, users with accessibility requirements opt not to use Android for this reason.
Just wanted to post this to see if anyone has any differing opinions on the matter, as Android compatibility is relatively low on the agenda as it stands.

Yep, I need to know if it's worth investing the time in getting this working. Please give a yay or a ney and any other requirements you may have.

I would say that it's not - for this release anyway. Can always be added in the future.
Matt Leathes


build p8le package

Commit for building p8le package.

LGTM

please sign the CLA
out of curiosity, do you have a legitimate use case for this? I'd be interest in hearing.

I signed it!

I signed it!

@ahmetb  Thanks for your review!   I need p8le verison to build docker image for katib-manager.   The link is dockerfile.

@dreamryx Do you mind signing the CLA?

@ahmetb I'm trying to signed it.  But I don't know why I could not pass it.  I'm trying to figure it out.  :(

I signed it!

signed CLA.

I signed it!

@dreamryx I think you haven't signed it properly with your email address on the commit. I'll close this and fix myself.

@ahmetb OK.  I shall use another email address to commit code to have a try.

I already made a release with this change.

@ahmetb Thanks!


Add Precondition Assert

The idea here is that some preconditions must be met before our primary assertion is. However we don't want to write:
asserts.thing(precondition)
execute_test():
asserts.thing(postcondition)

The typical way around this is to store the precondition state in a variable like this:
var precondition = object.method()
execute_test()
asserts.thing(precondition)
asserts.thing(postcondition)

What I could do is create a precondition interface. This would essentially show up similar to asserts but it would specifically only show on failure to avoid any cognitive overload.
check(precondition, "X must be true")
execute_test()
asserts(condition)

Alternatively we could have precondition crash the test there if it is required.

Researching and found other frameworks use "Assume" for a precondition assert that is only noisy if it fails.

Reopening unresolved issue.


Transfer this repo to github.com/obophenotype

Note that we already have a fork here:
https://github.com/obophenotype/pato
This was created to give a wider range of people the ability to edit the ontology, yet have a mechanism for validating and bringing these into the source version. We ended up pointing obo central at this. But this is confusing as tickets end up coming in on the @gkoutos repo.
I propose the following:

delete https://github.com/obophenotype/pato
transfer https://github.com/gkoutos/pato --> https://github.com/obophenotype/pato
Create a pato team with full rights on this repo that would include @gkoutos @mellybelly @dosumis @rlwalls2008
update registries etc

Note that people would still be free to fork the repo and make PRs

This sounds like a good idea.


List of results

Hello,
I am analysing 16S rRNA amplicon sequencing data and I would like to assign better the OTU classified as cyanobacteria I find my samples. I think cyadrasil does a better job than other current databases, but I was wondering if it is possible to get the results in a table format (.csv for example), so I could see my samples and the distances to each reference strain. Something similar to what we can see in the iTOL, but in one single table (or multiple table per sample).
Thank you in advance for any advice!
Best regards

Hello!
As of right now, we do not have an implementation to do this. The JPLACE output file from EPA-ng may have this data, and you could theoretically write a script to extract it to a csv format (or there may be one available in pplacer tools).
We didn't write this implementation because we want users to physically see where each OTU/ASV lands in a phylogenetic context, instead of just going off of a name giving through a classification.


error after build app and its crashing

app crashing on hev-socks5-tunnel version.

FATAL EXCEPTION: main                                                                                Process: com.xtls.xray, PID: 6501                                                                                java.lang.UnsatisfiedLinkError: dlopen failed: library "libhev-socks5-tunnel.so" not found                                                                                at java.lang.Runtime.loadLibrary0(Runtime.java:1087)                                                                                at java.lang.Runtime.loadLibrary0(Runtime.java:1008)                                                                                at java.lang.System.loadLibrary(System.java:1664)                                                                                at com.xtls.xray.TProxyService.<clinit>(TProxyService.kt:20)                                                                                at java.lang.Class.newInstance(Native Method)                                                                                at android.app.AppComponentFactory.instantiateService(AppComponentFactory.java:129)                                                                                at androidx.core.app.CoreComponentFactory.instantiateService(CoreComponentFactory.java:74)                                                                                at android.app.ActivityThread.handleCreateService(ActivityThread.java:4330)                                                                                at android.app.ActivityThread.access$1800(ActivityThread.java:263)                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2053)                                                                                at android.os.Handler.dispatchMessage(Handler.java:106)                                                                                at android.os.Looper.loop(Looper.java:236)                                                                                at android.app.ActivityThread.main(ActivityThread.java:8057)                                                                                at java.lang.reflect.Method.invoke(Native Method)                                                                                at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
where is libhev-socks5-tunnel.so files ??? it not creating in jniLibs folder. i never changed anything. just downloaded this project as raw into my android studio and getting this error.

is there any way to not use of externalNativeBuild and just put .so files in lib folder and run them via command line?

First you need to clone the project with --recursive option
Second you have to install the specific version of nkd that i set in externalNativeBuild
From v1.7.0 and above heiher/hev-socks5-tunnel is the new tun2socks tool for this project

@SaeedDev94  well. when i  use --recursive command i getting below error.
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts<EMAIL_ADDRESS>Permission denied (publickey). Could not read from remote repository.  Please make sure you have the correct access rights and the repository exists. clone of 'git@github.com:heiher/hev-socks5-tunnel.git' into submodule path 'C:/Users/windows/StudioProjects/Xray/app/src/main/jni/hev-socks5-tunnel' failed Failed to clone 'app/src/main/jni/hev-socks5-tunnel'. Retry scheduled<EMAIL_ADDRESS>Permission denied (publickey). Could not read from remote repository.  Please make sure you have the correct access rights and the repository exists. clone of 'git@github.com:heiher/hev-socks5-tunnel.git' into submodule path 'C:/Users/windows/StudioProjects/Xray/app/src/main/jni/hev-socks5-tunnel' failed Failed to clone 'app/src/main/jni/hev-socks5-tunnel' a second time, aborting

You should fix your setup (ssh key)

It got complicated. when i clone your git via android studio directly i getting this error while another gits are okay. the only way is just downlaod this project via github zip file and unzip in system, then import it to android studio and by that way i getting dlopen failed: library "libhev-socks5-tunnel.so" not found error. it would be nice if you put .so files directly in lib folder.
i also opened an issuse in and them them about building problem.

The build process is straightforward, also I'm not sure if it's possible to create a lib.so for heiher/hev-socks5-tunnel and use its native methods inside the VpnService
Even if it is possible to do that I'm not willing to do it because I have to build it for different platforms (ABI) and the app size will increase


whew

@Pancakeo @TheGauntt

You'll want to use either the public/ folder, or resolve the mp3 correctly. Please test all changes prior to submitting a PR. 💯


Attribute refactoring

The goal is to simplify the attribute models. The current attribute model relations are complex and really hard to understand. It causes a high entry threshold for this part of code and makes it hard to keep.
Right now we have available attributes for Product, ProductVariant, and Page models. For each of these models, we are having additional models to keep the relation to the attributes. For each model, the structure is the same. So the problem and potential solution will be shown only on Product model, but it's applicable to all of them.
The below chart shows what the current solution looks like:
classDiagram
    Attribute "1" -- "0..*" AttributeValue
    Attribute "1" -- "0..*" AttributeProduct
    AttributeProduct "0..*" -- "1" ProductType
    AssignedProductAttribute "0..*" -- AttributeProduct
    AssignedProductAttribute "0..*" -- "1" Product
    AssignedProductAttribute "0..*" -- "0..*" AssignedProductAttributeValue
    AssignedProductAttributeValue "0..*" -- "1" AttributeValue

    Product "0..*" -- "1" ProductType
    class AttributeProduct{
      sort_order
    }
    class AssignedProductAttributeValue{
      sort_order
    }
    class AttributeValue{
      sort_order
    }

The proposal is to simplify it to:
classDiagram
    Attribute "1" -- "0..*" AttributeValue
    Attribute "1" -- "0..*" AttributeProduct
    AttributeProduct "0..*" -- "1" ProductType
    AttributeValue "1" -- "0..*" AssignedProductAttributeValue
    AssignedProductAttributeValue "0..*" -- "1" Product
    Product "0..*" -- "1" ProductType
    Product "0..*" -- "0..*" Attribute
    class AttributeProduct{
      sort_order
    }
    class AssignedProductAttributeValue{
      sort_order
    }
    class AttributeValue{
      sort_order
    }

Database changes
To apply proposed changes the following steps need to be performed.

Add Product - Attribute relation
Go through all AttributeProduct and based on attribute and assigned_products fields create relations between attributes and products.
Add product field to AssignedProductAttributeValue model.
Fulfill AssignedProductAttributeValue.product fields based on AssignedProductAttributeValue.assignment.product field values.
Drop AttributeProduct.assigned_products field.
Drop AssignedProductAttribute model.

The same for ProductVariant and Page relation.
Dataloaders changes

ProductAttributesByProductTypeIdLoader - remains unchanged

To remove:

AttributeProductsByProductTypeIdLoader
AssignedProductAttributesByProductIdLoader
AttributeValuesByAssignedProductAttributeIdLoader

To add:

AttributeValuesByProductIdLoader

To change:

SelectedAttributesByProductIdLoader - will be significantly simplified - as it will be direct relation between Product and Attribute.

Current solution - we need to go through AssignedProductAttribute --> ProductAttribute, AssignedProductAttributeValue --> Attribute, AttributeValue
New solution Product --> Attribute, AttributeValuesByProductIdLoader --> Attribute, AttributeValue

⚠ The same reduction will be for ProductVariant and Page.
⚠ As a result we will end up with 3 data loaders for each model instead of 5. With much simpler logic.
What we'll gain 🎉

Simplification of model structure
Easiest code to keep
Significant reduction of the entry threshold for attributes
Reduction of the number of data loaders (2 less per model) and simplification of data loaders code - easier to update and find bugs

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

LGTM :tada:

@IKarbowiak great work! Looks great. I am super happy that we are going on simplify the attributes flow!