Add StaticConfigs to ServiceMonitors

I've started working on integrating StaticConfigs into the ServiceMonitors.
Somehow they still don't get appended to the generated configuration.
I also want to discuss the behavior of ServiceMonitors with StaticConfigs:
It seems like we need to disable the kubernetes_sd_config for ServiceMonitors that have a StaticConfig, I think.
Otherwise we need to do a hack in the ServiceMonitors along the lines of:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: prometheuses
  namespace: monitoring
  labels:
    team: example
spec:
  selector:
    matchLabels:
      name: nothing
  namespaceSelector:
    matchNames:
    - nothing
  endpoints:
  - interval: 1m
    path: /federate
    params:
      'match[]':
        - '{__name__="up"}'
        - '{__name__=~"machine_controller.*"}'
    staticConfigs:
      targets:
        - 'source-prometheus-1:9090'
        - 'source-prometheus-2:9090'
        - 'source-prometheus-3:9090'
        - 'https://prometheus.example.com'

Note nothing as namespace and nothing as service labels.

Thoughts?
Closes #1086

What is the status of this PR?  Can someone push this through?

Yep. I wanted to work on it today. Looking into it in a few minutes! :+1:

I've updated the PR to simply include StaticTargets. Additionally the LabelSelector is now gone from the ServiceMonitor in the test.

lgtm thanks!


Result implementation that allows custom content-types

Ideal for file extensions
Use this to return a custom content-type

revel currently only supports JSON, JSONP, XML, plain text and HTML
If you set a content-type it will be overwritten using one of these Result types in revel.
Safari, for example, will add a .txt to the end of your file name if you use plain text no matter what the file extension type is. e.g. returning a .eml file for download will be downloaded as .eml.txt by Safari - this fixes that issue

@peterkellyonline - What's the sue case of this (and a code snippet example) ?

@pedromorgan Use case is when you want to return any Content-Type you want e.g. any from this list
http://www.freeformatter.com/mime-types-list.html#mime-types-list
A workaround in my code is to do the following
        c.Response.Out.Header().Set("Content-Disposition", "attachment;filename="test.eml")
	resp.WriteHeader(http.StatusOK, "message/rfc822; charset=utf-8")
	resp.Out.Write([]byte(c.Data))

But a generic Custom Render method taking a ContentType param would be great. I had honestly forgot about this PR :)

@peterkellyonline Can you target this at the development branch so we can get closer to merging. TIA.

Closing due to no response. Good idea so opened ticket #1130 for someone to implement


weed IAM policy don't sync on different node

weed version 2.75
ARCH:x86
I have 3 nodes on which weed were running. Every node had master,volume,filer,s3 and iam service.
I found two strange things. I used AWS CLI to put user policy to weed s3 service  on node 3.   Then I uploaded or got objects on node1, But I found that the policy didn't take effect on node 1. But on node 2 and node 3 ,the policy took effect.


[jvm-packages] Publishing xgboost4j and others to Maven Central

Many users would like to see xgboost4j published to maven central (see #935)
I think we can follow the approach similar to MTJ (https://github.com/fommil/matrix-toolkits-java), which depends on netlib binaries - and this is, probably, what @javelinjs suggested in his comment about mxnet
In essence, the idea is to have separate JAR files for each platform and publish them all to Maven Central. Then we add all of them as dependencies to xgboost4j and during the execution time decide which one to load.
We can also have a look at jni-loader (https://github.com/mrburrito/jni-loader)
This is how it looks for MTJ:

We could start from selecting one platform, e.g. 64bit linux, and see how it goes.

for platform, since XGBoost does not work for 32bit systems
we only need to care 64 linux/win/osx

my personally preferred way to publish to maven is contain everything in a single jar
http://central.maven.org/maven2/org/xerial/snappy/snappy-java/<IP_ADDRESS>/
you can download snappy-java-<IP_ADDRESS>.jar and look at the structure of their native libs

I'll have a look, thanks. What I don't get is how the build process is organized in this case: it may mean that they have some internal repository with binaries, then they pull them from there during the building process, and only after that publish the jar.
Having several jars may be an advantage because there will be no need for that: we can use the maven central as such repository.
But I'll need to have a closer look.

I am trying the multiple-modules approach - it seems more natural to me and, unlike the one-module-has-them-all approach, I have ideas how to implement it.
The way I think it could work is the following. Suppose there are 3 persons A, with a linux machine, B, with windows, and C with a mac.
When the next version is ready to be released to maven, A takes the current version of xgboost4j (e.g. 0.7-SNAPSHOT), and using the maven-release plugin does this:

updates the version to 0.7
releases the linux native lib along with other java modules to maven
commits the change in version to git
updates the version to 0.8-SNAPSHOT, commits the change again

After this is done, B and C can checkout the 0.7 version from git, and then build and publish only the native modules.
I'm experimenting in my fork here: https://github.com/alexeygrigorev/xgboost
What do you think?

I'll have a look, thanks. What I don't get is how the build process is organized in this case: it may mean that they have some internal repository with binaries, then they pull them from there during the building process, and only after that publish the jar.

Having several jars may be an advantage because there will be no need for that: we can use the maven central as such repository.

They have pre-built native libraries https://github.com/xerial/snappy-java/tree/7650aa29fb52c3ba467e9c906cf22a3dab536861/src/main/resources/org/xerial/snappy/native
and
load them with https://github.com/xerial/snappy-java/blob/7650aa29fb52c3ba467e9c906cf22a3dab536861/src/main/java/org/xerial/snappy/SnappyLoader.java
there will be only one library in central maven

OK so it means they store the binaries in git? I am not sure it's a good idea.
Anyways, my experiments with multi-module build seem to have worked: I managed to deploy the binaries and the jars to sonatype's snapshot nexus. Here it is: https://oss.sonatype.org/content/repositories/snapshots/ml/dmlc/xgboost/
I only have linux and windows machines, so I tried only these two.
Right now using the snapshot versions should be possible this way:
<project>
...
  <repositories>
    <repository>
      <id>sonatype-shapshot</id>
      <name>Sonatype Snapshot Repository</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>ml.dmlc.xgboost</groupId>
      <artifactId>xgboost4j</artifactId>
      <version>0.7-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
</project>

This should automatically download the appropriate native version depending on the platform.
For linux it seems to work well, but for windows it needs extra libraries - so I may need to try this with a clean virtual machine with only java and maven installed and see if it works.
Also, I needed to turn off building the jar-with-dependencies - sonatype's nexus doesn't allow uploading large files. These jars can be built with a special profile.
Once we agree on everything, then I can create a pull request and we can publish XGBoost to Sonatype Release repository, which synchronizes with maven central.

It does not say that we need to store binaries in git..The reason they have prebuilt native libraries saved there is that they plan to support many pkatforms including  those with hard-to-use toolchains....
Our goal is only to support 64-bits linux/mac/win. We only need to do what we are doing: compile native libs-> copy to resource dir ->build jar
I still didn't see why uploading many jars to central maven repo is necessary...

It may not be necessary but I don't know how to organize the build process without it.
As I wrote earlier, in my opinion the limitation of one-jar-rules-them-all approach is that we first need to build the code for each target platform, store the binaries somewhere, and then during the publication to maven pull the binaries from there and include in the final jar. I don't know how to do it.
When it comes to multiple modules, it is still not ideal, but solves this problem, and the build process is organized as I wrote earlier.
So I may suggest to follow the approach I propose and have the binaries in central sooner rather than later, and then maybe someone with better knowledge of maven can modify it and do it better.

As I wrote earlier, in my opinion the limitation of one-jar-rules-them-all approach is that we first need to build the code for each target platform, store the binaries somewhere, and then during the publication to maven pull the binaries from there and include in the final jar. I don't know how to do it.

Why storing binaries somewhere? how about put all native libraries in local disk (resource directory), include them in the jar when building and finally publish jar to maven?

Ok, so how would you do this? Somebody builds binaries for windows and then sends them over email to the person with linux?

It's another question i do not understand...
Why we have to involve more than one persons for cross building? It's hard to imagine a program release process requires two persons....
In rocksdb, they use vagrant to cross build ubuntu and mac...xgboost does mot have those system calls or something else, these two platforms can share the same native lib file  in most of cases..
For windows, i am not a expert in win programming...even vargrant does not work, a manual within-VM will achieve the same goal

The next question to discuss is... can we skip windows when releasing to maven? The main reason is that we do not have enough(zero?) test on xgboost4j under windows...

Well we probably don't need to involve more than one user, but I'm not an expert in vargant either, sorry.
But what I suggest does require three users:

user with linux builds xgb and runs mvn deploy
users with windows and mac build xgb and run mvn --projects xgboost4j-native-windows deploy and  mvn --projects xgboost4j-native-osx deploy respectively.

This is for publishing the snapshot version, a release build would be a bit more complicated, but I outlined it above. As I am not familiar with vargant and other virtualization tools, I don't know how to organize it better.
Let me know if my proposal is interesting for you, otherwise I'm putting my current efforts on hold.

I will talk with mxnet guys to understand if there is any other reason for them to have many jars in mvn central

I successfully made a jar with a Windows dll, a Mac OSX macports dylib and a Linux so, and store that in our artifactory which works pretty well. Apart from when someone who uses brew tries to use the macports dylib and it gives an odd library not found error.

@alexeygrigorev I am looking forward to get a windows OS xgboost-spark JAR from maven central repository or others, i offen code in IntelliJ IDEA tool windows OS，then run project in Linux production system, because it is convenient debugging. In my experience, it is easy to compile xgboost in Linux OS, but in windows OS ,i have never been successful. So if you have done it , please tell me ,thank you very much.

I have the same problem with @Frank111 .

Please publish xgboost to Maven with bundled native libraries for all architectures.

Even for non-x86 architecture?

@CodingCat Yes, for all architectures that XGBoost4J supports.
Please bundle native libraries into Maven package and load them at runtime depending on what architecture app is running.
Or at least allow to select native architecture by linking with different Maven packages at build time, like DeepLearning4J does it.
Anyway, building from source just to select multithreading backend should not be required. And Maven packages should be enough for usage of the library.

I would also appreciate it very much if a least the major releases of XGBoost4J would be available via Maven.
I'm also using DeepLearning4J, which is very comfortable to use compared to XGBoost4J. In the meanwhile dl4j is even offering nightly builds on maven.
In my opinion the missing of reliable builds of XGBoost4J is a major bummer for more serious use cases for this great library. Especially on Windows building XGBoost4J is an heavy adventure ;)

@mjakobus Yes, I have same feelings: XGBoost4J missing regular major releases and especially Maven-released packages with native backend selected at runtime.

How do people use this in production if it is not in maven central? Manually create the JAR files?

At Criteo we build JARs on Travis/Appveyor. In theory, the same scripts can be reused to publish the official JARs for XGBoost, but I didn't have the time to do that.

We just manually put them in our nexus

so the pom works to generate the artifact via standard maven jar building commands? And has this been tested in a linux environment?

In our case - yes, and we do it only for linux machines

I've built a multi-jar with Linux, Windows and Mac libraries, and put it in an artifactory. Works fine from there.

At BlaBlaCar we build it then publish to an internal nexus. Then apps fetch from the nexus. It is not an multi-jar, thus we have Linux and Mac libraries separately. Apps then get the right dependency, e.g., using a Os.isFamily(Os.FAMILY_MAC). Would be great to have a multi-jar out-of-the-box, though. @Craigacp is your multi-jar available somewhere?

Unfortunately my version isn't available, but the logic in XGBoost4J causes it to load the correct binary based on the platform, so all you need to do is unzip each jar, copy the dll, so and dylib into the same resources directory and rejar it.

@edumucelli you can assemble a multi JAR by running download_latest_release.py from here.

@superbobry, that is great! Thank you for sharing it!

@alexeygrigorev @CodingCat @edumucelli what was the outcome of this?
Is there a solution in place to automatically building JARs for xgboost and publish it somewhere?

There is, yes. Right now it is possible to do mvn publish and it will deploy it to your local nexus repository

@Obarros I am using @superbobry's multi JAR.

for anyone who wants to use pre-built version of xgboost, please check README file in https://github.com/dmlc/xgboost/tree/master/jvm-packages, we have published artifacts to maven central

@CodingCat, @edumucelli  Thanks!

@CodingCat could you please also push the windows artifacts as well? The published artifact only contains the linux version. thanks

@edumucelli this has been discussed in dmlc/xgboost#3276. tl;dr @CodingCat decided not to support Windows for the Maven Central JARs.
We have some prebuilt JARs over at criteo-forks/xgboost-jars which come with a Windows DLL, though.

Hi, it's fine for me. I have build my own version, however it would help others certainly if it would be readily available without having to compile yourself.

@superbobry thanks for the link to that thread. That's not an issue, I was just complementing @bluelu's comment about linux-only jar, which in fact has a MacOS dlyb too.


Is there a way to change Ghidra's native addressing of files?

I'm working with a new processor module I've been writing which expects data to start at an address of 0xFF800000 which can easily be done with an offset, but the problem I'm having with this processor is that it each byte is addressed by 8 and not just 1 as Ghidra lists.
This processor is word aligned and each opcode is 2 bytes for example. So if we use NOP (x03x00) Ghidra will  list the next instruction to be at 0xFF800002 instead of the processors expected 0xFF800010. So in a nutshell Ghidra is going 1 by 1, but this processor goes 8 by 8.
Is there a way to change this in the processor module I'm writing? TIA.
TMS34010 Module I'm writing https://github.com/ZPaul2Fresh8/Ghidra_TMS34010

https://github.com/ZPaul2Fresh8/Ghidra_TMS34010/blob/fdd1372fec05850c1acf4181cd8e082f179ee763/tms34010.slaspec#L10
Try adding wordsize=8. The docs for the wordsize attribute state:
The wordsize attribute can be used to specify the size of the memory location referred to with a single address.
If a space has wordsize two, then each address of the space refers to 16 bits of data, rather than 8 bits.
If the space has size two, then there are still 216 different addresses, but since each address accesses two bytes, there are twice as many bytes, 217, in the space.
If the wordsize attribute is not specified, the size of a memory location defaults to one byte (8 bits).

I've tried that previously, it really just breaks down the byte into subsections. So now we have...
0xff800000.0: AA 0xff800000.1: BB
When I'd like to see...
0xff800000: FF 0xff800008: FF

I've tried that previously, it really just breaks down the byte into subsections. So now we have...
0xff800000.0: AA
0xff800000.1: BB
When I'd like to see...
0xff800000: FF
0xff800008: FF

Oh, that's unfortunate. I guess I misunderstood the description or the word size attribute.

I've tried that previously, it really just breaks down the byte into subsections. So now we have...
0xff800000.0: AA
0xff800000.1: BB
When I'd like to see...
0xff800000: FF
0xff800008: FF

Oh, that's unfortunate. I guess I misunderstood the description or the word size attribute.

No worries, thanks for chiming in though.

What is happening with bytes 0xff800002-0xff800007?
If they are consumed as part of the NOP, then you would change your token size to  64.
define token ops (64)
     byte1 = (0, 7)
     byte2 = (8,15)
     ....
  ;

There is bit-mapped memory as is done in the 8051.  I don't think you want to use that for the code.
So if you really want to see the full 8-bit accesses, I would make bit mapped memory over the base memory that is a wordsize of 2.
This isn't a panacea, as you would need to code the access to the bit mapped memory for all data read/writes, so the bytes would occur in two places and the references would occur in one space or the other.
You mention the Data section starts at 0xF800 0000 0.  But you would use an offset.  You could use 0x0.
That would be your bit mapped memory, over 0xF8000 0000.  But the addressing of the bits would be 0x0.
It all depends on if you want to see the individual bits addressed, and the numbers the processor is using to access those bits.
Another possibility:
Sleigh is just a model.  You could see the memory however you want.  When the processor is accessing the bit memory, you can just shift the address down by 3 for wordsize 1, or 4 if you use a wordsize of 2.

I'd try first using raw as a wordsize of 2.  Then either just shift the bit accesses down and grab the right bit.
This would provide combined referenced space.
Or create another ram space that it bitmapped over the first byte indexed memory if all data accesses are to the bitmapped space.

Thanks for the suggestions @emteere, from initial interpretation I feel like that's just a work around. One problem I see with changing the byte size is disassembling, it will throw things off completely. As or now this particular problem affects ptrs and offsets pointed inside the file disassembled. I have written scripts to correct this, but I had to ask if there was a better way.
If not then I can live with running a script over the file or in certain areas when needed. I've heard about loaders possibly being a solution but at this moment that's foreign territory.

Having multiple ways to access the same address space can be troublesome.
For disassembly you need to keep with the byte orientation.  Sleigh is not meant for bit.  I was not suggesting it for that.
Any access can be calculated in sleigh, including accessing the correct address space.  From what I see, I'd stick with a 1-byte wordsize or 2-byte word-size for anything with code in it.  You really have to.
Interesting they actually have the low 4-bits of the bit addressing in the PC, and addresses have the low 4-bits of the bit address.  So I see your pain.
The real issue is going to be raw numbers that are passed as parameters or in memory.  There would be no pcode manipulations to tell you how the number is used.  You can possibly use PointerTypedefs for that.  We still have a little more work to do with it, but it will work for the decompiler and pointers in memory.
You may also be able to just set the global settings on pointer to shift all pointers by 4 bits.
For data offsets in memory that don't have instruction use to tell you how to interpret the number, I would use the PointerTypedef which you can configure to be in a given space, CODE/DATA, or shifted to get rid of the low 4 bits.
                             //
                             // dummy
                             // ram:01234567-ram:0123558a
                             //
               01234567 12 34 57 00                   addr                 DAT_12345700
               0123456b 12 34 57 00                   TMS34010Ptr __(())   DAT_01234570
               0123456f 00                            ??                   00h
                             DAT_01234570                                                                           XREF[1]:      0123456b(*)
               01234570 00                            ??                   00h

The first pointer is bad since it isn't shifted.  The second points to the right place.
This can work on bytes in memory, but also defining pointer parameters passed to functions.
Currently you have to make a typedef on a pointer to another datatype, then you get these settings.
You may be able to fix the references with a script, but the decompiler will most likely have alot of trouble interpreting them as raw numbers unless there is pcode manipulation of the number to use the number correctly.
Good luck.  You may have to play with a variety of ways, as nothing is a panacea.

Can I ask what this particular setting in PSPEC is used for? Does it not seem to be what I'm looking for?
https://github.com/NationalSecurityAgency/ghidra/blob/57656b567b23d31cbdc559af4766c1ec8d6a2671/Ghidra/Framework/SoftwareModeling/data/languages/processor_spec.rxg#L163****

The bit_mapped_address and byte_mapped_address in the default memory block section allocate memory blocks possibly mapped from one addressSpace on top of another when a program is loaded.
The bit_mapped_address tag will allocate a block that use the bytes of another block of memory in another addressSpace. Each address in that memory block will be 1-bit for each bit in the bytes in the underlying space.  It is useful if memory needs to be seen in two different ways, addressed as individual bits and as bytes.
The tag you are asking about is only for allocating, it would need to be used along with sleigh and a bit addressed addressSpace.  The 8051 uses this for a section of registers that are addressed as bits in instructions, but also as bytes.  So two addressSpaces are created in sleigh with the sleigh instructions using the right addressSpace to access the memory.


how can connect without room?

i want to know , how can connect without room? just two client connet with each other.

Generally speaking there needs to be some way to exchange some info (like
ICE candidates and media settings) between the clients to get a WebRTC
client-client connection, and I think that is what we sometimes call a
room. But in principle you could do it in any way (like noting on a piece
of paper and then entering the data for the other client).
On Thu, Oct 13, 2016 at 11:46 AM, qq290584697<EMAIL_ADDRESS>wrote:

i want to know , how can connect without room? just two client connet with
each other.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/EricssonResearch/openwebrtc/issues/649, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABICrjkdoi3pRx_2UBTExBGQlhLcd6cjks5qzf4OgaJpZM4KVsFW
.


rotate 3dtile doesn't work in cesiumjs 1.66

Hi experts,
Below code snippet works in early cesium version, however the 3dtile disappear in cesiumjs 1.66, how to rotate 3dtile in new version?  thands in advance for any clues.
var m = tileset.modelMatrix;
var m1 = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(rotateXAngle));
Cesium.Matrix4.multiplyByMatrix3(modelMatrix, m1, modelMatrix);
tileset.modelMatrix = m;

I believe this is an issue with older 3D Tilesets. There's a suggested source code fix here: https://github.com/AnalyticalGraphicsInc/cesium/pull/6755#issuecomment-425454485
Or you can upgrade your tileset as described here: https://github.com/AnalyticalGraphicsInc/cesium/issues/7036#issuecomment-425146294


Fix typos in profile_generation.py

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily receiving feedbacks. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Please describe the motivation of this PR and the goal you want to achieve through this PR.
Modification
Please briefly describe what modification is made in this PR.
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit tests to ensure the correctness.
If the modification has a dependency on downstream projects of a newer version, this PR should be tested with all supported versions of downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

May fix the linting error
pip install pre-commit
cd lmdeploy
pre-commit install
prec-commit run --all-files


Latest Ubuntu release issue

Wanted to let you know that Ubuntu 19.10 eoan does not have a docker repo available at the moment.  But, the repo from the previous version does have one.  In the setup.sh the line that adds the repository to /etc/apt/sources.list needs to be adjusted to "deb [arch=amd64] https://download.docker.com/linux/ubuntu disco stable" for now.  I tested it, and it does work with the current version of Ubunutu 19.10.

I only want to support LTS versions of Ubuntu server for the time being since 19.10 will stop receiving security and maintenance updates in July of 2020.
Once a new LTS version of Ubuntu server is released, I will check for compatibility and update the repo if necessary while also trying to keep support for 18.04 LTS.


PageWelcomeTemplateManagement: link to enwiki in templates

Alter the HTML retrieved from the parse api endpoint to convert relative links to absolute links
Closes #638

Codecov Report

Merging #645 (61e7eb8) into master (0d73ef2) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##             master    #645      +/-   ##
===========================================
- Coverage      5.17%   5.17%   -0.01%
  Complexity     2348    2348
===========================================
  Files           173     173
  Lines         11641   11642       +1
===========================================
  Hits            603     603
- Misses        11038   11039       +1

Impacted Files
Coverage Δ
Complexity Δ

includes/Pages/PageWelcomeTemplateManagement.php
0.00% <0.00%> (ø)
21.00 <0.00> (ø)

Continue to review full report at Codecov.

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


add references to ddili

First step to tackle #193 (In-depth links to "Programming in D")
I noticed that quite many chapters don't have equivalent sections here, see the #193 for more details.

:+1:


Passing value to nodeSlector parameter of helm chart via set.

Hi,
I have an issue with passing value to nodeSelector parameter of helm chart via set.
I tried to pass like this:
set {
    name  = "nodeSelector.node-role\\.kubernetes\\.io/infra"
    value = "true"
  }

But I have a syntax issue converting to yaml:
Error: Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.NodeSelector: ReadString: expects " or n, but found t, error found in #10 byte of ...|o/infra":true...
Also I tried to deploy helm chart itself without TF with setting nodeSelector parameter, as mentioned on : but I also have the same issue.
--set nodeSelector."node-role\.kubernetes\.io/infra"=true
Could you please advise how it can be implemented.
Thanks a lot!

ALB ingress controller is deprecated, plase use https://github.com/lablabs/terraform-aws-eks-load-balancer-controller instead.


Set the provided GPU device before trying to load the model for auto-…

…complete

I was wondering how this works if the user uses the cc_model_filenames field and multiple GPUs in the instance group setting? Is it possible that in that case we might need to set the CUDA context to a GPU other than first GPU?

Good question. I think currently cc_model_filenames support is broken for auto-complete config.
https://github.com/triton-inference-server/tensorrt_backend/blob/main/src/tensorrt.cc#L456-L468
I will fix that support for the auto-complete with other PR. It should not be too complicated.


Bluetooth: CSIP: Fix off-by-one in in lock restore

If the lock request was rejected by a set member we should restore any previously written logs in reverse order.
However there was a off-by-one error in
csip_set_coordinator_write_lock_cb which caused us to attempt to release member[1] instead of member[0] if member[1] was the one that rejected the lock request.
Additionally, the lock_set_complete would be called prematurely before we get the response from the restore request.
fixes https://github.com/zephyrproject-rtos/zephyr/issues/80936

@Thalley needs a local rebase


pocket.rb now called pocket-ruby.rb

Correcting a file renaming that has broken the demo-server script.

+1

Thanks @camilleldn !


To be able to upate a row value and  set table location - MULTIPLE TABLES

Description

Description: To set up a table location will allow users to pre-determine a table position when having multiple tables like up, down, right, left
What would it do: Will provide the ability to set individual ids for a specific table, by to doing so the table will be able to be display independantly
Will solve: Lib is currentrly unable to display two tables at the same time in diff locations of the window

Code example
positionsTable = chart.create_table(
        width=1,
        height=0.2,
        window_position= "left", /////////////////////////////////////////
        headings=(heads),
        widths=tuple(1 / len(heads) for _ in heads),
        alignments=tuple(aligment for _ in heads),
        position=aligment,
        func=onRowClicked
    )

Method of implementation
more than a mothod of implementation I am sharing a minimal so you can see that window loads well with one table:

but when you uncomment the firts table the result is that the first table will display but the second will not

import pandas as pd
from time import sleep
from lightweight_charts import Chart

def onRowClicked(row):
    pass

if __name__ == '__main__':

    openOrderData={
            "account_info": {
                "name": "Esteban" ,
                "number": 333.1,
                "currency": "USD",
                "leverage": 500,
                "free_margin": 5999.46,
                "balance": 6000.32,
                "equity": 6008.47
            },
            "orders": {
                "3526057705": {
                    "isPosition": 1,
                    "magic": 0,
                    "symbol": "Volatility 10 Index",
                    "lots": 0.50,
                    "type": "buy",
                    "open_price": 6893.55400,
                    "price_current": 6893.39100,
                    "open_time": "2023.10.15 21:51:00",
                    "SL": 0.00000,
                    "TP": 0.00000,
                    "pnl": -0.08,
                    "swap": 0.00,
                    "comment": ""
                },
                "3525783217": {
                    "isPosition": 1,
                    "magic": 452164759,
                    "symbol": "Volatility 10 Index",
                    "lots": 0.50,
                    "type": "sell",
                    "open_price": 6910.01800,
                    "price_current": 6893.55800,
                    "open_time": "2023.10.15 18:24:19",
                    "SL": 6979.28700,
                    "TP": 0.00000,
                    "pnl": 8.23,
                    "swap": 0.00,
                    "comment": ""
                }
            }
        }
    aligment = 'center'
    chartWith = 0.8
    chartHeight = 0.8

    chart = Chart(
        toolbox=True,
        width=1200,
        inner_width=chartWith,
        inner_height=chartHeight
    )
    df1 = pd.read_csv('ohlcEx.csv')
    chart.set(df1)

    # positions info Table
    heads = ["SYMBOL","ID","LOTS","TYPE","OPEN PRICE","PRICE","SL","TP","SWAP","PNL"]
    # positionsTable = chart.create_table(
    #     width=1,
    #     height=0.2,
    #     # window_position = "left",
    #     headings=(heads),
    #     widths=tuple(1 / len(heads) for _ in heads),
    #     alignments=tuple(aligment for _ in heads),
    #     position=aligment,
    #     func=onRowClicked
    # )

    # for orderId, orderData in openOrderData['orders'].items():
    #     positionsTable.new_row(
    #         orderData["symbol"],
    #         orderId,
    #         orderData["lots"],
    #         orderData["type"],
    #         orderData["open_price"],
    #         orderData["price_current"],
    #         orderData["SL"],
    #         orderData["TP"],
    #         orderData["swap"],
    #         orderData["pnl"]
    #     )

    # positionsTable.footer(2)
    # positionsTable.footer[0] = 'Selected:'

    # market info table
    headsTwo = ["SPREAD","DIGITS","SWAP","TYPE"]
    subAccountTable = chart.create_table(
        width=0.2,
        height=1,
        # window_position = "left",
        headings=(headsTwo),
        widths=tuple(1 / len(headsTwo) for _ in headsTwo),
        alignments=tuple(aligment for _ in headsTwo),
        position=aligment,
        func=onRowClicked
    )

    for orderId, orderData in openOrderData['orders'].items():
        subAccountTable.new_row(
            orderData["symbol"],
            orderId,
            orderData["lots"],
            orderData["type"]
        )

    subAccountTable.footer(2)
    subAccountTable.footer[0] = 'Selected:'

    chart.show(block=True)

ohlcEx.csv
point two I would like to ask if you can create a method to update specific row values (PNL ) in my minimal example

Hey @esteban2006,
The position parameter sets how the table floats in the window, not it's explicit location. Tables location work similar to subcharts, and are placed left to right until there is no space.
You also need make sure you are giving the tables enough space within the window by lowering the size of other charts/windows.
Louis

@louisnw01 thank you for the hint, for some reason the first table will always float the to right right of the corner, so I just inverted the  order of the  tables when running the code and it worked
thank you
Esteban,

@louisnw01
Is there a way to do this now ?
point two I would like to ask if you can create a method to update specific row values (PNL ) in my minimal example
if not then I would like to request a Feature
Regards,

@louisnw01
Is there a way to do this now ?
point two I would like to ask if you can create a method to update specific row values (PNL ) in my minimal example
if not then I would like to request a Feature
Regards,

This is possible; see the table example in the docs.
Louis

thank you @louisnw01  I have gone thru the docs, and I have been able to update values when I click on the row, but my approach is to iterate over the rows of the table and update just the value, could you give me a hint how to iterate of the rows of the given table ?
Esteban

Tables are essentially just a dictionary of dictionaries (rows), so you could use something like for row in table.values()

billiant, I really apprecited,
thank you very much.


Update guide/english/web-virtual-reality/index.md Added an example

Added an example of a VR experience

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the master branch of freeCodeCamp.
[ ] None of my changes are plagiarized from another source without proper attribution.
[ ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Reason: We do not accept PRs which only add links when there are already valid reference links for the article.
Thank you and happy coding.


start details/summary styling

Overview

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: [ABC-123]
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change
[ ] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Don't make me tap the sign.
PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.205-alpha.b7065d.0@codecademy/gamut-labs@33.5.1-alpha.b7065d.0@codecademy/gamut@50.6.6-alpha.b7065d.0@codecademy/monaco@0.6.88-alpha.b7065d.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://632e14bbb8f801615fc8a09a--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.207-alpha.3f4a5d.0@codecademy/gamut-labs@33.5.3-alpha.3f4a5d.0@codecademy/gamut@50.6.7-alpha.3f4a5d.0@codecademy/monaco@0.6.89-alpha.3f4a5d.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6331b6ba453ebc0085b1b223--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.207-alpha.6844fe.0@codecademy/gamut-labs@33.5.3-alpha.6844fe.0@codecademy/gamut@50.6.7-alpha.6844fe.0@codecademy/monaco@0.6.89-alpha.6844fe.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-kit@0.6.207-alpha.792372.0@codecademy/gamut-labs@33.5.3-alpha.792372.0@codecademy/gamut@50.6.7-alpha.792372.0@codecademy/monaco@0.6.89-alpha.792372.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6331fd5d57856334ce6ccb35--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.207-alpha.1b3f49.0@codecademy/gamut-labs@33.5.3-alpha.1b3f49.0@codecademy/gamut@50.6.7-alpha.1b3f49.0@codecademy/monaco@0.6.89-alpha.1b3f49.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6332150a00de6e051a3b4100--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.207-alpha.3c83aa.0@codecademy/gamut-labs@33.5.3-alpha.3c83aa.0@codecademy/gamut@50.6.7-alpha.3c83aa.0@codecademy/monaco@0.6.89-alpha.3c83aa.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://63334221d92bd021b3e6f54b--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.208-alpha.2859d6.0@codecademy/gamut-labs@33.5.4-alpha.2859d6.0@codecademy/gamut@50.6.7-alpha.2859d6.0@codecademy/monaco@0.6.89-alpha.2859d6.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://63359faf94c0962c5ad1587c--gamut-preview.netlify.appDeploy Logs


[ISSUE #5303]Resolved the invalid authentication problem of sending batch messages

Make sure set the target branch to develop
What is the purpose of the change
#5303
In #5304 , there were two failed CI projects below, but they could not be reexecuted and one was resubmitted
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #5608 (7883c2d) into develop (08dbe7e) will increase coverage by 0.05%.
The diff coverage is 9.09%.

@@              Coverage Diff              @@
##             develop    #5608      +/-   ##
=============================================
+ Coverage      42.37%   42.43%   +0.05%
- Complexity      7929     7942      +13
=============================================
  Files           1022     1022
  Lines          71254    71261       +7
  Branches        9399     9399
=============================================
+ Hits           30196    30241      +45
+ Misses         37230    37201      -29
+ Partials        3828     3819       -9

Impacted Files
Coverage Δ

...apache/rocketmq/acl/plain/PlainAccessResource.java
57.57% <ø> (ø)

...broker/processor/AbstractSendMessageProcessor.java
33.43% <ø> (ø)

...ocketmq/broker/processor/PullMessageProcessor.java
27.72% <ø> (ø)

...ocketmq/broker/processor/SendMessageProcessor.java
37.39% <ø> (ø)

.../apache/rocketmq/common/AbortProcessException.java
0.00% <ø> (ø)

.../java/org/apache/rocketmq/common/BrokerConfig.java
28.03% <ø> (-0.12%)
:arrow_down:

...rocketmq/remoting/netty/NettyRemotingAbstract.java
51.92% <9.09%> (+1.92%)
:arrow_up:

...rocketmq/common/message/MessageClientIDSetter.java
71.42% <0.00%> (-2.39%)
:arrow_down:

...apache/rocketmq/store/ha/GroupTransferService.java
92.30% <0.00%> (-1.29%)
:arrow_down:

... and 20 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


XmlPort doesn't recognize if same name is given to the Textelement and field of the Table

My Xmlport uses XMLport which has a field named Type of datatype Option also I've declared Type as a Textelement but the system only recognizes the Field Type(Option String) not the Textelement.
I'm using NAV 2018 CU 2 version NA

@Chris-Dsilva I can't see the whole code which is relevant so I can't know what exactly is the issue but my first guess would be that the shadowing of the option variable is causing issues. The best way to go around this is to use a slightly modified name for the textelement and the issue would be solved.
If you think there is something incorrect with what the compiler does, please provide us more of the code so that we can see what is going on. The best would be to write a small example demonstrating the issue

attaching herewith the XMLport
XMLport 50003 - CF_InsuranceScheduleImport.zip

Hi @Chris-Dsilva . Due to the fact that https://en.wikipedia.org/wiki/Variable_shadowing happens, you cannot right now access both variables. Your best approach would be to name your variables more descriptively so that their names don't clash. We could introduce mechanisms to be explicit which one of these 2 you want to use but it is not a high priority right now


Geomed3d

Hi,
Are you using functions from both of these...v3 and v4?

Hi, v3 is outdated but some converters from it still could be useful.

Ok, thanks


Feature request: extend a usage scenario

Hi,
It's intresting to see another simple stupid usage way,for a basic scenario, for an example, something like: goaccess -f /var/log/nginx/access.log* -o /web/root/goaccess.html --keep-db-files --update, it will read access.log file, and the .gz rotate files,and use cronjob to update them.

What do you mean "use cron job to update them"? Thanks

@allinurl Means it can be add to crontab to easily execute, append the new records, ignore the old records. It seems goaccess don't support crontab update well,it seams just load the log file again.another thing is i don't know how to load the total files including .gz rotate files,and
base on it to update,i use: zcat /var/log/nginx/access.log.*gz|goaccess - -f /var/log/nginx/access.log -o /web/root/goaccess.html --keep-db-files --load-from-disk,when execute again,it will append old records too.
I am newer,i don't know what I thought that was right or wrong. :)


webapp: use colouring to emphasize the type of log-message

Expected behaviour
Use coloured text to indicate which messages are errors, which are warnings and which are skipped tests.
Observed behaviour
Current implementation prints all text in black.

implemented on branch issue_1121 will be merged with the rest of the webapp code tracked by issue #1121


Add link to slot: elevation to help people complete this field

Finding elevation based on lat_lon can be difficult. Google maps doesn't provide elevation easily.
Add this link to the slot guidance for elevation
https://www.advancedconverter.com/map-tools/find-altitude-by-coordinates
This will help users complete this field more easily.

[x] Update NMDC schema slot: elevation comments
[x] Update NMDC submission schema slot: elevation comments so the link will appear in the data harmonizer column help
[ ] Sync subport with new schema

FYI @turbomam , @brynnz22 , @pkalita-lbl

Comments have been added to elev in the nmdc schema.

So this just needs merged and the subport updated ? (prod, dev, and sandbox)
@pkalita-lbl

Yeah at some point I can build a new release of submission-schema off of the latest nmdc-schmea and the bring that into nmdc-server. Once that's done the change will be visible in the submission portal on dev. Propagating to sandbox and prod will happen whenever it happens based on the release schedule.

We'll have submission portal updates for the UF squad, we can just plan to test / make sure all these changes are pushed when we do that update.

Review

elev is asserted as a Biosample slot in file src/schema/nmdc.yaml form the nmdc-schema.
One part of make all is detecting which Biosample and OmicsProcessing slots are to be imported from MIxS. SInce these terms are imported, we don't generally make any changes to them other than giving them a more structured range. But we can assert that they should be used in a cusotmized way int eh context of some class.

Here is the slot_usagefor elev in class Biosample in the nmdc-schema.
    slot_usage:
      elev:
        title: elevation, meters
        range: float
        comments:
          - All elevations must be reported in meters. Provide the numerical portion only.
          - Please use https://www.advancedconverter.com/map-tools/find-altitude-by-coordinates, if needed, to help estimate the elevation based on latitude and longitude coordinates.
        examples:
          value: 100

tl;dr: the "find-altitude-by-coordinates" comment is present in the nmdc-schema

the main branch of submission-schema contains the "" comment, which appears on the basic DataHarmonizer interface now.
I will be making a submission-schema release soon.

I announced the availability of submisison-schema v7.8.0 in the NMDC Slack's #general channel

https://www.advancedconverter.com/map-tools/find-altitude-by-coordinates appears as plain text in the DataHarmonizer help, not as a hyperlink.

@turbomam , some of your comments are confusing me. You keep saying altitude.. this is elevation. It's not the same.
I don't follow what OmicsProcessing has to do with this?
We have lots of MIxS slots that we implement slot usage to change what GSC provides.
I don't think we should've pushed the submission schema without @pkalita-lbl  present. But it should be fine since it's not on the submission portal.
It appearing as text and not a hyperlink here is probably fine. It should hyperlink in the submission portal. We can test this when we are ready to push this change to the submission portal dev.

@mslarae13, didn't you request that https://www.advancedconverter.com/map-tools/find-altitude-by-coordinates should be suggested as a helpful tool for the elev slot?  That's the only context in which I have used the string 'alt' in this issue.
I mentioned OmicsProcessing because, like Biosample, it is interrogated for which MIxS slots it uses at build time. That means that the MIxS terms they use can't be modified globally. So it's applied as a slot_usage for nmdc-schema class Biosample, which is currently inherited by all of the biosample-like classes in the submission-schema.
I meant for the mention of `OmicsProcessing to be a learning experience, but I guess it just became a distraction.
I apologize for not consulting @pkalita-lbl or others before making a submission-schema release. Can we please develop a document that clarifies who should be consulted at what stage?

Yes, sorry. That website says altitude, but it's providing altitude or elevation. The terms are interchanged colloquially, but with respect to the slots we provide and the separating descriptions, it's elevation.  If you click on the link on the left, 'elevation by map' the tool still says altitude. If you're award of a better elevation finding tool, happy to use a different link! This was just the best one I could find.
I'm still confused though... this isn't high priority. So let's re-visit in October. Maybe discuss at a metadata meeting.

What are the "link on the left" and "the tool" that "says altitude"?
Yes, I'm sure we can iron this out in a live meeting.

@pkalita-lbl @mslarae13 this is complete, isn't it?

Yup! Done!


Code optimizations that result in smaller SVGs downstream better off as minor version?

Hi all,
thanks for the recent v3.0.4 and v3.0.5 updates, specifically @SethFalco.
We at Wikimedia Foundation are big long-term fans of SVGO, see a.o. https://www.mediawiki.org/wiki/Manual:Coding_conventions/SVG and myself a task contributor for the repo.
One question that came up in discussions around some package updates, not pinning our versions strictly (aka "svgo": "^3.0.3") has resulted in updating to 3.0.5 in an unrelated patch and with that in a huge number of small changes to the icons: Wouldn't have those recent optimizations been better received downstream as minor version update, for example v3.1.0?
Expected behavior
No patch version should result in downstream major SVG output changes.
Desktop (please complete the following information):

SVGO Version 3.0.3 vs 3.0.5

Hey @Volker-E!
Valid point, this mostly comes down to what we interrupt as a minor change. I had opted to increment the patch version because everything that came through were either improvements to existing plugins, bug fixes, or refactors of existing plugins.
However, there was one new optimization that was introduced as part of an existing default plugin. That's likely what resulted in the changes in your files. In retrospect, I should've incremented minor instead, since it ultimately included a new default optimization:

https://github.com/svg/svgo/pull/1822

Can I just confirm if you ran into any issues as a result of this?
(Beyond the unexpected work to vet the changes.)
Regardless, I'd be happy to favor minor over patch more. Sorry for the headache!

No patch version should result in downstream major SVG output changes.

I'm not sure what the best way to define major is. However, whenever a new optimization is introduced, regardless of if it's a new or existing plugin, I will increment minor instead of patch in future.

As a side-note, while I understand this is about the semantics/expectations of what would change between versions, just adding a note in case you aren't aware. ^3.0.3 pins the major version only! So when running updates, that would've updated to 3.1.0 anyway. If you want to stay within the same minor version, you want ~3.0.3… though that wouldn't have helped in this case. ^-^'


Build failure: nixt

Steps To Reproduce
Steps to reproduce the behavior:

build nixt

Build log

Build Log
last 20 log lines:
┃        > Running phase: unpackPhase
┃        > unpacking source archive /nix/store/ai1il4g5bsym436pk1r9w7n53kbmliy5-source
┃        > source root is source/libnixt
┃        > Running phase: patchPhase
┃        > Running phase: updateAutotoolsGnuConfigScriptsPhase
┃        > Running phase: configurePhase
┃        > mesonConfigurePhase flags: --prefix=/nix/store/mllzm1v9172l9b5i8xm695gjar673nag-nixt-2.5.1 --libdir=/nix/store/mllzm1v9172l9b5i8xm695gjar673nag-nixt-2.5.1/lib…
┃        > The Meson build system
┃        > Version: 1.6.0
┃        > Source dir: /build/source/libnixt
┃        > Build dir: /build/source/libnixt/build
┃        > Build type: native build
┃        > Project name: nixt
┃        > Project version: 2.5.1
┃        > C compiler for the host machine: gcc (gcc 13.3.0 "gcc (GCC) 13.3.0")
┃        > C linker for the host machine: gcc ld.bfd 2.43.1
┃        >
┃        > meson.build:1:0: ERROR: Compiler g++ cannot compile programs.

Additional context

Probably just an issue with my machine since it builds fine on Hydra, but I'm not sure what's causing this.
Metadata

system: "x86_64-linux"
host os: Linux 6.11.7-xanmod1, NixOS, 25.05 (Warbler), 25.05.20241119.23e89b7
multi-user?: yes
sandbox: yes
version: nix-env (Lix, like Nix) 2.91.1 System type: x86_64-linux Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux Features: gc, signed-caches System configuration file: /etc/nix/nix.conf User configuration files: /home/ryand/.config/nix/nix.conf:/etc/xdg/nix/nix.conf:/home/ryand/.nix-profile/etc/xdg/nix/nix.conf:/nix/profile/etc/xdg/nix/nix.conf:/home/ryand/.local/state/nix/profile/etc/xdg/nix/nix.conf:/etc/profiles/per-user/ryand/etc/xdg/nix/nix.conf:/nix/var/nix/profiles/default/etc/xdg/nix/nix.conf:/run/current-system/sw/etc/xdg/nix/nix.conf Store directory: /nix/store State directory: /nix/var/nix Data directory: /nix/store/8w4f6m8h1ij25sq7v6860549w5gilk05-lix-2.91.1/share
nixpkgs: /nix/store/c9wv7i0af6mysmy65x6nvyfw5izzxv4g-source

Notify maintainers

@inclyc @Ruixi-rebirth @Aleksanaa @redyf

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

nixt can only build upon NixOS/nix, not lix. Are you overriding nix package to lix in your system?


PPLNS incorrect payout?

I have an ETC config.
   "pools": [{
      "id": "etc1",
      "enabled": true,
      "coin": {
        "type": "ETC"
      },
      "address": "0x3ff93f45e06a0dd7d8acb7d6f5ef2b5d7bfe4ab7",
      "rewardRecipients": [
        {
          "type": "op",
          "address": "0x3ff93f45e06a0dd7d8acb7d6f5ef2b5d7bfe4ab7",
          "percentage": 0
        }
      ],

     "paymentProcessing": {
        "enabled": true,
        "minimumPayment": 0.50,
        "minimumPaymentToPaymentId": 1.0,
        "payoutScheme": "PPLNS",
        "payoutSchemeConfig": {
          "factor": 2.0
        }

I am the only miner on this pool during testing with 300MH. A block was found by me. But my pending balance is:
"pendingShares": 56139,
"pendingBalance": 0.421189398082,
"totalPaid": 0.0,
This is on Linux using Claymore. So there is the small dev fee connection. Is it really causing that much of a loss?

The problem is the large window size combined with few shares required to find the block. The algorithm was unable to hit the PPLNS window size (factor": 2.0) resulting in a staggered payout over multiple blocks.
To be clear, you did not lose anything, it's just that you get paid over multiple blocks. I'd try reducing the window size down to 0.5 or even less. You need to experiment a bit.

Is 2.0 good for larger pools then? And the low payout is due to my low share/hashing power?
Thanks for the quick reply by the way.

The low payout is simply because of the few number of shares contributing to the block you found. And yes 2.0 would be for pools with lots of miners generating tons of shares. In general PPLNS is not really suited to solo-mining. That's why we have a PROP payout scheme on the todo list. If you'd like to manually force the pool to send yourself the entire block reward do this:
Open the postgres command line client: psql
select sum(reward) from blocks where status = 'confirmed';
update balances set amount = <result from previous query> where address = 'your address';

Make sure to start the pool. And of course never do that on a production pool with real miners 😄

Thanks. This seems to have broke a couple of things. When I look at my miner API I only see this now:
{
"pendingShares": 62756,
"pendingBalance": 5.0,
"totalPaid": 0.0,
"hashrate": []
}
And I get this error in the logs:
[2017-11-06 10:37:34.6744] [E] [etc1] [Ethereum Payout Handler] Object reference not set to an instance of an object.
Here is what I ran in psql:
select sum(reward) from blocks where status = 'confirmed';
output
  sum

5.000000000000
(1 row)
update balances set amount = 5.000000000000 where address = '0x24a0dc797d584f13b92ffcee41449b0f4e6427e6';

Can you post the full exception log including stacktrace?

Not sure if this is what you are asking for?
[2017-11-06 10:50:11.1624] [I] [ShareRecorder] Online
[2017-11-06 10:50:11.2280] [I] [ApiServer] Launching ...
[2017-11-06 10:50:11.5772] [I] [ApiServer] Online @ <IP_ADDRESS>:4000
[2017-11-06 10:50:11.6287] [I] [etc1] [Pool] Launching ...
[2017-11-06 10:50:11.6662] [I] [etc1] [Ethereum Job Manager] Launching ...
[2017-11-06 10:50:11.8483] [I] [etc1] [Ethereum Job Manager] All daemons online
[2017-11-06 10:50:11.8690] [I] [etc1] [Ethereum Job Manager] All daemons synched with blockchain
[2017-11-06 10:50:11.9961] [D] [EthashFull] No pre-generated DAG available, creating new for epoch 159
[2017-11-06 10:50:11.9972] [D] [EthashFull] Pre-generating DAG for epoch 160
[2017-11-06 10:50:12.0041] [I] [Dag] Generating DAG for epoch 160
[2017-11-06 10:50:12.0041] [I] [Dag] Generating DAG for epoch 159
[2017-11-06 10:50:14.9705] [I] [Dag] Done generating DAG for epoch 160 after 00:00:02.9660889
[2017-11-06 10:50:15.0486] [I] [Dag] Done generating DAG for epoch 159 after 00:00:03.0441188
[2017-11-06 10:50:15.0672] [I] [etc1] [Ethereum Job Manager] Online
[2017-11-06 10:50:16.1348] [I] [etc1] [Ethereum Job Manager] New block detected
[2017-11-06 10:50:16.1520] [I] [etc1] [Pool] Stratum port <IP_ADDRESS>:3333 online
[2017-11-06 10:50:16.1977] [I] [etc1] [Pool] Online
[2017-11-06 10:50:16.2033] [I] [etc1]
Mining Pool:            etc1
Coin Type:              ETC
Network Connected:      Classic
Detected Reward Type:   POW
Current Block Height:   4788248
Current Connect Peers:  20
Network Difficulty:<PHONE_NUMBER>38289
Network Hash Rate:      0 KH/s
Stratum Port(s):        3333
Pool Fee:               0%
[2017-11-06 10:50:16.2120] [I] [PayoutManager] Online
[2017-11-06 10:50:16.2165] [I] [PayoutManager] Processing payments for pool etc1
[2017-11-06 10:50:16.9338] [I] [PayoutManager] No updated blocks for etc1
[2017-11-06 10:50:17.0682] [E] [etc1] [Ethereum Payout Handler] Object reference not set to an instance of an object.
[2017-11-06 10:50:20.0962] [I] [etc1] [Ethereum Job Manager] New block detected
[2017-11-06 10:50:29.0931] [I] [etc1] [Ethereum Job Manager] New block detected
[2017-11-06 10:50:34.3665] [I] [etc1] [Pool] [0HL958SVSQL5N] Share accepted: D=858993459.2
[2017-11-06 10:50:35.2163] [I] [etc1] [Pool] [0HL958SVSQL5N] Share accepted: D=858993459.2
[2017-11-06 10:50:39.0902] [I] [etc1] [Ethereum Job Manager] New block detected

No I meant everything following: [2017-11-06 10:37:34.6744] [E] [etc1] [Ethereum Payout Handler] Object reference not set to an instance of an object.

it is just normal runtime info until payout again. Then repeats the same error.

Could you update to the latest version and try again. The error should be more detailed now.

[2017-11-06 11:35:27.9402] [I] [PayoutManager] Online
[2017-11-06 11:35:27.9453] [I] [PayoutManager] Processing payments for pool etc1
[2017-11-06 11:35:28.6549] [I] [PayoutManager] No updated blocks for etc1
[2017-11-06 11:35:28.7837] [E] [etc1] System.NullReferenceException: Object reference not set to an instance of an object.
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 384
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282 System.NullReferenceException: Object reference not set to an instance of an object.
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 384
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282    at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 384
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282
[2017-11-06 11:35:32.8350] [I] [etc1] [Ethereum Job Manager] New block detected
[2017-11-06 11:35:37.8272] [I] [etc1] [Ethereum Job Manager] New block detected

Please update again. You will now be told where the problem lies :-)

There we go:
[2017-11-06 11:56:42.3183] [I] [ShareRecorder] Online
[2017-11-06 11:56:42.3819] [I] [ApiServer] Launching ...
[2017-11-06 11:56:42.7529] [I] [ApiServer] Online @ <IP_ADDRESS>:4000
[2017-11-06 11:56:42.7907] [E] [etc1] "paymentProcessing.coinbasePassword" pool-configuration property missing or empty (required for unlocking wallet during payment processing)
Cluster cannot start. Good Bye!
I looked through the config info and examples but don't see what option to set for the coinbase password.

This options is only required for Ethereum based pools:
{
   "id": "eth1",
    "enabled": true,
    "coin": {
        "type": "ETH"
    },
    ...
    "paymentProcessing": {
        "enabled": true,
        "minimumPayment": 0.01,
        "minimumPaymentToPaymentId": 5.0,
        "payoutScheme": "PPLNS",
        "payoutSchemeConfig": {
            "factor": 2.0
        },
        "coinbasePassword": "<wallet password>",
        "keepUncles": false,
        "keepTransactionFees": false
    }
},

keepUncles = false = payout uncles to miners (pools like nanopool do that)
keepTransactionFees = false = payout transaction fees to miners (pools like nanopool do that)

Okay. Figured out the config:
"paymentProcessing": {
    "enabled": true,
    "minimumPayment": 0.5,
    "payoutScheme": "PPLNS",
    "CoinbasePassword": "testpassword",
    "payoutSchemeConfig": {
      "factor": 1.0
    }
  }

However the following errors occurred:
[2017-11-06 12:08:12.2178] [I] [PayoutManager] Online
[2017-11-06 12:08:12.2231] [I] [PayoutManager] Processing payments for pool etc1
[2017-11-06 12:08:12.8996] [I] [PayoutManager] No updated blocks for etc1
[2017-11-06 12:08:13.0494] [E] [etc1] System.Exception: Unable to unlock coinbase account for sending transaction
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 394
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282 System.Exception: Unable to unlock coinbase account for sending transaction
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 394
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282    at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 394
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282
[2017-11-06 12:08:29.2772] [I] [etc1] [Pool] [0HL95A8GII3KH] Share accepted: D=429496729.6
[2017-11-06 12:08:29.9859] [W] [ShareRecorder] Retry 1 in 00:00:02 due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
[2017-11-06 12:08:31.9955] [W] [ShareRecorder] Retry 2 in 00:00:04 due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
[2017-11-06 12:08:32.0622] [I] [etc1] [Pool] [0HL95A8GII3KH] Share accepted: D=429496729.6
[2017-11-06 12:08:33.6195] [I] [etc1] [Pool] [0HL95A8GII3KH] Share accepted: D=429496729.6
[2017-11-06 12:08:36.0025] [W] [ShareRecorder] Retry 3 in 00:00:08 due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
[2017-11-06 12:08:38.9061] [I] [etc1] [Pool] [0HL95A8GII3KH] Share accepted: D=429496729.6
[2017-11-06 12:08:44.0146] [W] [ShareRecorder] Fallback due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
[2017-11-06 12:08:45.0490] [W] [ShareRecorder] Retry 1 in 00:00:02 due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
[2017-11-06 12:08:47.0560] [W] [ShareRecorder] Retry 2 in 00:00:04 due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
[2017-11-06 12:08:51.0631] [W] [ShareRecorder] Retry 3 in 00:00:08 due to Npgsql: PostgresException (42703: column "difficulty" of relation "shares" does not exist)
Seems some new errors started with the last pull as well.

Are you using the correct password for the pool's wallet on your end? It has to be correct.
The other errors are due to some recently committed db schema changes. Give me a couple minutes to come up with migration instructions.

Verified password several times. I use a password file with parity. My password does contain an exclamation in it. Not sure if that is having an effect.
Example: t3stPasw0rd!

Please run this in psql:
ALTER TABLE shares add difficulty REAL NOT NULL DEFAULT 0;
UPDATE shares set difficulty = stratumdifficulty;
ALTER TABLE shares ALTER COLUMN stratumdifficulty DROP NOT NULL;
ALTER TABLE shares ALTER COLUMN stratumdifficultybase DROP NOT NULL;

Okay. Looks like that corrected the new share issues. Still can't get the password to work.

This is how we run parity on poolmining.org:
/usr/bin/parity --chain $ETH_CHAIN --base-path "/data" --mode "active" --no-ui --no-dapps \
--jsonrpc-interface "<IP_ADDRESS>" --jsonrpc-threads 4 --no-discovery \
--jsonrpc-apis "eth,net,web3,personal,parity,parity_pubsub,rpc" --ipc-path "/data/geth.ipc" \
--nat $ETH_NAT --author $ETH_COINBASE --cache-size 512 --logging "info"

It is of crucial importance that the value of --author matches the pool address in MiningCore's configuration AND that --jsonrpc-apis contains "personal".

We definitely need better documentation for this. Sorry for that.

I have been running parity using the open ethereum pool for months and an never needed the personal setting. Interesting. That was all it needed. But this is the next error:
[2017-11-06 12:30:37.5503] [I] [PayoutManager] Online
[2017-11-06 12:30:37.5565] [I] [PayoutManager] Processing payments for pool etc1
[2017-11-06 12:30:38.2670] [I] [PayoutManager] No updated blocks for etc1
[2017-11-06 12:30:38.3939] [I] [etc1] [Ethereum Payout Handler] Sending 5 ETC to 0x24a0dc797d584f13b92ffcee41449b0f4e6427e6
2017-11-06 12:30:38  Error importing transaction: Transaction(InsufficientBalance { balance:<PHONE_NUMBER>000000000, cost:<PHONE_NUMBER>000000000 })
[2017-11-06 12:30:38.4737] [E] [etc1] System.Exception: eth_sendTransaction returned error: Insufficient funds. The account you tried to send transaction from does not have enough funds. Required<PHONE_NUMBER>000000000 and got:<PHONE_NUMBER>000000000. code -32010
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282 System.Exception: eth_sendTransaction returned error: Insufficient funds. The account you tried to send transaction from does not have enough funds. Required<PHONE_NUMBER>000000000 and got:<PHONE_NUMBER>000000000. code -32010
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282    at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MiningCore.Blockchain.Ethereum.EthereumPayoutHandler.d__12.MoveNext() in /opt/devpool/miningcore/src/MiningCore/Blockchain/Ethereum/EthereumPayoutHandler.cs:line 282
Since this is the first block and there is no previous balance it does not have enough to cover the TX feels. I will adjust it to say 4.9 ETC but just to let you know. This looks much better now.

No need to be sorry about anything. You are giving your free time for a great project.

Yeah it's a special case since we've manually messed with the balances. Adjusting the amount as you've suggested is the correct approach here.

Thanks again. Do you have a ETC address? I'll send you a few.

That's the least I can do.
0xF8cCE9CE143C68d3d4A7e6bf47006f21Cfcf93c0

2 incoming from 0x24a0dc797d584f13b92ffcee41449b0f4e6427e6. Can close this issue now. Thanks!

Wow. That wasn't necessary but thanks a lot!

@Serpent6877 One question. Was the block you mentioned in your opening post found on the mainnet?

@oliverw Classic

@Serpent6877 But it was not a testnet right?

@oliverw Correct. This was a full ETC production system. I am mining it with my 240Mh test system.

@Serpent6877 Thanks for the info. I was just asking because our pool hasn't found a single ETH or ETC block ever in production 😞

@oliverw I have found two blocks using your pool software so far. I also run open ethereum pool as well. I have 55 on there.

Not sure what your config is. But a couple of things.
"blockRefreshInterval": 120,
Need to lower this to 120ms or so. Otherwise you are missing out on blocks. The share balancing seems to be off as well. I am using the following:
"ports": {
"3333": {
"listenAddress": "<IP_ADDRESS>",
"difficulty": 0.1,
"name": "GPU Mining",
"varDiff": {
"minDiff": 0.1,
"maxDiff": null,
"targetTime": 15,
"retargetTime": 90,
"variancePercent": 30
}
},
"3334": {
"listenAddress": "<IP_ADDRESS>",
"difficulty": 1.0,
"name": "High-End Multi GPU Mining",
"varDiff": {
"minDiff": 0.5,
"maxDiff": null,
"targetTime": 15,
"retargetTime": 90,
"variancePercent": 30
}
}
},
I only use the high-end multi GPU for Nicehash. Even then it needs to be up more like 3.0. I am using port 3333 with a eight 1070 GPU miner doing 32Mh/s per GPU. It seems to level out around .765 per share.

@Serpent6877 struck by lightning Of course, with the extremely fast block times of ETH the refresh interval must be much lower.


Menu setting - focus and custom.

Hi, I noticed some problems with the work of the settings menu.
1 If you click on the settings menu, the focus will remain on it. And every time the space is pressed, the player will not stop, but will start the animation of the settings menu.
2 reading the documentation, I saw that you can not add additional buttons in the settings menu. Can you implement this feature? The design of the player is not minimalistic anyway, and I would like to add some buttons to the settings, especially with the on and off function.

is for accessibility reasons. Space should activate menus.

This will come in a later major release. What's not minimalist about the design?

Feel free to jump into a PR if you're in a rush 👍

This is for accessibility reasons. Space should activate menus.

Can this be disabled?
Because the majority of users are accustomed to pause the space, as it is implemented on Youtube and regular media players .

What's not minimalist about the design?

If I enter an additional 3-4 buttons, the player will not look attractive.
It would be great to distribute the functions optimally across the controls and setting.

Can this be disabled?
Because the majority of users are accustomed to pause the space, as it is implemented on Youtube and regular media players .

Youtube handles this the same way like plyr. When you open a menu and press space afterwards, the menu opens again. After you click in the video, space will pause it normally.

Funny, on YouTube, the menu simply does not disappear, forcing the user to press on the video area.


Wrong transfer

Wrong transfer bro i need help

This issue is not related to the repo and can be closed. @tolya-yanot


Display graphs in code formatting.

We could use something like mermaid.js to display the graphs.

@timcharper, do you have the original PlantUML?


Implement GLES ImGui extension

Summary of the PR
This implements a GLES ImGui extension
Further Comments
This is just directly ported from the GL version, not rewritten from the ground up with GLES in mind

When you're finished, can you merge in the latest main to
a. Resolve merge conflicts
b. Enable public API analysis. Your PR will fail the Public API check once you've done this, but to resolve just run nuke declareapi

When you're finished, can you merge in the latest main to a. Resolve merge conflicts b. Enable public API analysis. Your PR will fail the Public API check once you've done this, but to resolve just run nuke declareapi
For the avoidance of doubt, when resolving conflicts in both Silk.NET.sln you need to take both your changes and the incoming changes.

Ive still been stuck on that pesky nonsensical build error, but aside from that how would i "enable public API analysis"? is it some setting?

It's enabled automatically for manual projects by common.props, and it'll refuse to build until you've ran the nuke declareapi command (this command updates the PublicAPI.Unshipped.txt file)


New inspec deps

Latest versions of inspec/train/inspec-scap pulled in a few new deps
that need license info.
Signed-off-by: Nolan Davidson<EMAIL_ADDRESS>

@nsdavidson what version of Inspec did we pull in? this seems like a lot of new deps for being pinned to inspec 1.

@btm It looks like it was mostly from train for GCP support.
https://github.com/inspec/train/blob/master/CHANGELOG.md#v149-2018-05-16

@chris-rock do we need more than inspec-core for A1?
@nsdavidson forking omnibus-software/config/software/inspec.rb to a inspec-core.rb that builds the inspec-core gem should get us train-core instead which ideally is closer to what we need in A1.

@btm inspec-core works perfectly for A1


feat: config jwt tokens in config file

Will load tokens from config item "jwtPrivateKeyFile" and "jwtPublicKeyFile".
If both files do not exist, it will generate new jwt key and save to these paths.

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

Replaced by the Certs page: https://door.casbin.com/certs


Presentation Slides

https://docs.google.com/presentation/d/10QaO9KH8HtUXj__81ve0SZcpO5DbMbqqQr4iPpbwKks/edit#slide=id.p

https://docs.google.com/presentation/d/10QaO9KH8HtUXj__81ve0SZcpO5DbMbqqQr4iPpbwKks/edit#slide=id.p


Implement document detail page

What this PR does / why we need it?
The document detail page is shown when the user selects a document from the document list page.
Users can see snapshots of the document on the document detail page.
The user can access the document again using the URL of a specific document.

document list page: /documents
document detail page: /documents/{documentId}

TODO

Use a nested/hierarchical URL

It is convenient for users to use the DocumentKey instead of the id for the URL since users are more familiar with the key they define than with the id.
DocumentKey is unique for each project rather than a system global, so the URL becomes like this. /projects/{proiectID}/documents/{documentKey} https://github.com/yorkie-team/yorkie/pull/319

Handle some cases to improve user experience

Show the document list to which the document belongs when users access the detail page using the URL directly
Keep a document list when users go back to the previous page

Any background context you want to provide?
What are the relevant tickets?

Fixes #9
Checklist

[x] Added relevant tests or not required
[x] Didn't break anything

Thanks for your contribution. It's still in draft, but I'll leave a brief comment.
The detail page can be accessed from the list, but the user can also directly access the URL. We need to handle the case when the user directly opens the project details page as well.

@chacha912
I would suggest merging the current work into main and creating the remaining TODO as separate issues. When you are ready to review, please change the draft status.


Potential eslint rules

Lint ideas:

[ ]  Rule to disallow when a value of type pulumi.Output<T> is used in a template literal (Fix building of application security group description. pulumi-awsx#177)
[ ]  Rule to disallow a value of type pulumi.Output<T> is used with the + operator with a string
[ ]  Rule to disallow when a resource's name derives directly or indirectly from the name of the current stack or project
[ ] Rule to disallow having resources without provider (and ability to specify which kind of resource/provider/library. E.g. only disallow empty provider variables for Kubernetes resources).

This was originally posted in the pulumi/pulumi repository: https://github.com/pulumi/pulumi/issues/2558

Nice! As a note, I think disallowing pulumi.Outputs in template literal strings (that is, not in pulumi.interpolate… is enough for this project to be hugely useful :smile:


add support for QR Code for pairing

in order to support QR code, mDNS advertisement must have an additional attribute "sh" with SHA512Digest of setupId and accessory ID as value.

That would be awesome.

Used it and it works like a charm. I do have some review comments, a bit late, but you move so fast 8)
I would expect that HomekitAuthInfo.getSetupId() is just another interface method, no default implementation. This is a major feature you added and is really part of HAP. Other interface methods hint you in de JavaDoc which method you should use (HAPSetupCodeUtils.generateSetupId()). Now, getSetupId() always returns a new key, which isn't the purpose of this interface. I know you want to help the user, but I think you hint the user better if he/she is aware that something has to be done or ignored.
HAPSetupCodeUtils.getSetupURI() takes a pin, without the minus signs. This is noted in de JavaDoc, but as a API I would expect consistency with HomekitAuthInfo.getPin(), or just accept a int instead of String. I think i would just go for a .replace("-","") inside getSetupURI().

@gjvanderheiden  thanks for testing and feedback.
yes, i was not sure whether i should keep getSetupId without default and introduce breaking API change or add default as not everyone needs QR code pairing.
but i agree, it needs some documentation, how to use it, how to generate QR code afterwards and recommendation to implement own getSetupId. in general, Java-HAP documentation can be improvement it is currently not existing
and adding replace "-" is good idea, so that clients dont need to care about this.
looks like it is worth a new PR for qr code enhancements.

@yfre a pr would be nice. To learn HAP-Java I opened the sample and gone from there. Together with the HAP doc by Apple I took off.
It would be nice to have the sample code as a separate under hap-java (hap-java/hap-java-sample or something), instead of a branch. That puzzled me for a while.
Also default boolean hasUser() {} in HomekitAuthInfo got me off track a long time. This was the reason the sample had to be paired over and over again, despite off the hole auth.info thing.
this override in HomekitAuthInfo fixed it for me:
@Override
public boolean hasUser() {
return !authState.userKeyMap.isEmpty();
}
Again this is a default implementation in HomekitAuthInfo, meh. Not such a fan in this case.

PR is merged.


Store resume info if there is a network connection loss

Currently, the resume information is only stored when pausing or leaving a playback. However, if there is a network loss of a online-media, then the playback stops but no resume info is stored. This should be fixed.

done


feature(android): adding some build scripts

The type of this PR is: Feature

This PR resolves CX-883 and CX-975
Description

tests every PR, by building the android app alongside the ios one.
https://app.circleci.com/pipelines/github/artsy/eigen/8572/workflows/98991f57-45f3-41c2-8914-f615a7f0d3bc
deploys ios beta like before, no breakage
https://app.circleci.com/pipelines/github/artsy/eigen/8570/workflows/b99c3df1-9712-4b5d-98d5-c7b5ab93e4f9
deploys android beta
https://app.circleci.com/pipelines/github/artsy/eigen/8578/workflows/9e61d8ad-dabd-4ea3-bc00-2c9b74317a10

Work after

[ ] After this is merged, we can remove the beta branch.
[ ] Add lane for release promotion (alpha->production) and test it.
[ ] Fill in deploy_to_play_store.md.

Main changes here:

Added android CI that tests and deploys.
Removed Makefile and replaced it with small scripts in ./scripts/
That change was necessary to make the scripts run the same way on macos and linux/docker containers on circleci. We had problems with that while implementing the android ci.
Added some documentation for setting up etc.
Added app.json that we can use for other static shared things between platforms.
Simplified our Gemfile setup. Now we only have one, no need to mess with bundle install in root and inside fastlane dir.
A couple of tiny changes in README.md and THANKS.md.

Notes
The new scripts all have no .sh extension. We shouldn't care if it's a bashscript or a js script or a binary or whatever else. They do use set -euxo pipefail (nice article about it here) to keep us all safe and sane.
I would encourage everyone to take a quick look, to see the structure of
hashbang
set error stuff

maybe source the source-for-bash-env file

rest of the script here

Also if lines are looooong, I split them with a pipe | at the end of the line because the alternative with
first part \
 | second part

is not as nice.
I also used shellcheck to make sure I didn't miss anything obvious.
I named a couple of scripts that do both ios and android as *-both. Like deploy-ios, deploy-android, deploy-both. This is to make it easy to autocomplete. With typing de<tab> you get to deploy-, ready to type i<tab> or a<tab> or b<tab>. With just deploy for both, autocomplete would still need the dev to type a - after the first tab.
release.keystore and android-secret.json are in the s3 citadel under eigen/. Locally we don't need them, CircleCI gets it from there. Also available in 1P.
PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a CHANGELOG.yml entry or my changes do not require one.

Nice job!

Nice job!


Implement and integrate the new slider into the existing client [5 SP]

Notes

On a click on the arrows a whole page should be slided not just one card
You are allowed to change the ui if it makes the implementation more easy
I dos't matter if its an infinite scroll or not

Tasks

[x] Implement the Slider-UI in Storybook
[x] Integrate the new slider into the existing material-container

Screens
https://projects.invisionapp.com/d/main#/console/9792811/265493182/preview
Estimated complexity
5 Storypoints

Recap: needed 3 storypoints


Further Enhancement to WeaviateHybridSearchRetriever

Description:
Upon working with the retriever further, I realized that when it is used in an existing chain, you don’t directly call get_relevant_documents(). This makes it challenging to pass the hybrid_search_kwargs to the underly function.
To address this, I’ve introduced a minor patch in this commit. By adding hybrid_search_kwargs as a class variable, we can now handle a wider range of realistic use cases without conflicting with the previously pushed version.
Here is a simple example:
retreiver = WeaviateHybridSearchRetriever(
    client=client,
    index_name="Document",
    text_key="content",
    hybrid_search_kwargs={"properties": ["title", "summary", "content"]},
)

llm = OpenAI()
conversation_chain = ConversationalRetrievalChain.from_llm(llm=llm,retriever=retreiver)

# When called within conversation_chain invocation
def _get_relevant_documents(self, ...):
    ...
    # Prioritizes function argument, then class var, finally empty {}
    if hybrid_search_kwargs is None:
        hybrid_search_kwargs = self.hybrid_search_kwargs or {}
    ...

Tag maintainer:
@hwchase17

@hwchase17, touching base on this PR, looking for clarification. I’m unclear about some aspects of your review process, especially given the volume of PRs you handle daily.
I’m wondering if this hasn't received a response yet because:

You just haven’t gotten around to it yet—totally fine, of course. The quick turnaround on the last one (~1 hour) piqued my curiosity about the usual review time, prompting this check-in.
The initial PR linting check failure (Fixed abbe36e). It’s conceivable to me that once a PR fails a linting check (in this repo) it never gets reviewed.
You have concerns with the tweak I made to the previously approved improvement: #10802
Some other reason.

There's no hurry on my end, so I hope it doesn’t come across as such. I’ve monkey patched this for my use cases for now and am just keeping an eye on when/if I can remove that code on my end.
Thanks, in advance, I look forward to your feedback.

Apologies for the slow review! Pr has some merge conflicts, happy to re-review if you'd like to resolve


GK68x(s) QMK support!

Hello, is there any plans to support QMK for this keyboard ?? She has an M3 MCU microcontroller and 8 megabytes of memory.

That's not a keyboard any of the QMK collaborators have. Someone from the community may contribute support but we're not aware of any work being done for that.


Allow selection of com port from a list of available ports when starting.

I almost always have multiple CircuitPython devices connected, which means I almost always have to run ss.exe with the -c command-line option to specify which device to connect to.  If there is more than one com port available, SimplySerial should - by default - display a list of com ports and allow the user to choose which one to connect to.

Note that the auto-connect functionality will have to work in conjunction with this feature.  The ONE option is straight-forward enough.  The ANY option should probably display the connection list again if there is still more than one available device.

It would also be nice if this list would auto-update when new devices are connected.  I'm not sure what options are available with regards to "listening" for new com ports.  A polling-type operation is certainly possible, but far from ideal.

I came across your repo because someone I watch recently took an interest in it, and since serial communication is something I have some experience with, I thought I'd drop by to provide some info that you might find useful...

I'm not sure what options are available with regards to "listening" for new com ports.

You may find this old project of mine interesting/useful:
https://github.com/Pharap/SimpleSerialCommunication
In particular, this class provides a means of watching for being notified of serial devices being connected and disconnected:
https://github.com/Pharap/SimpleSerialCommunication/blob/master/SerialCommunication/DeviceChangeWatcher.cs
And its usage is demonstrated in the main file:
https://github.com/Pharap/SimpleSerialCommunication/blob/master/SerialCommunication/Program.cs
This is done using the System.Management namespace, which leverages the 'Windows Management Instrumentation' (WMI) system. via WMI queries (which are essentially a variant of SQL). Honestly, WMI isn't a particularly well designed system, but it does the job.
Another alternative would be to use Win32 calls, but it depends how you feel about using unsafe code and marshalling/interop, and enumerating serial ports using Win32 is a bit more complicated anyway.

That is excellent information, thank you for sharing!  I will likely be looking into this in the very near future, and will see what I can manage.  This application is literally the first .NET app I wrote after working through a "C# for beginners" book, and I've done depressingly little C#/.NET since then.  The examples in your demo code - particularly with regards to utilizing events/handlers - are greatly appreciated.


Remove usage of APMData within logsapi

Currently, the package apmproxy is required by the package logsapi due to the abuse of APMData struct. The PR refactors the struct so that it's usage is contained within apmproxy.
Part of #315

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-10-25T03:38:09.416+0000

Duration: 8 min 59 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
176

Skipped
2

Total
178

:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_84151a06-b846-4cff-bf61-b74e693fe477/pull/1 is merged into live branch.
Auto archive content to https://github.com/VSC-Service-Account/docs-archive-test-target_84151a06-b846-4cff-bf61-b74e693fe477.git

Docs Build status updates of commit 61b7c9e:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-ServiceAccountCannotAccessRepository] Your repository https://github.com/VSC-Service-Account/docs-archive-test-source has enabled Docs Build service account. It seems that at least one of the accounts, e2ebd3, does not have Read permission to the repo. Please ask your repo admin to grant correct permission to service accounts (refer to this document: https://review.docs.microsoft.com/en-us/engineering/projects/ops/engdocs/how-to-grant-service-account-permission-in-your-repository?branch=master#ops-e2e-ppe) and then retry the build. Don't know who to contact? Refer https://repos.opensource.microsoft.com/VSC-Service-Account/repos/docs-archive-test-source/permissions/ to get admin list of the repo if the repo is in one of the organizations Microsoft owns.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel