Rain Last Hour

New Feature
Would really like a rain_last_hour sensor
Additional context
No response

Not that easy to do correctly, as the UDP API only delivers last minutes rain accumulation.
It can be done manually by creating a few helpers and an automation, if you need it now.

I too wanted periodic totals.  The daily totals weren't useful for me. What I want is each one minute rain accumulation from the hub. Can I assume that I can get that by dividing your rain_rate by 60??
I solved my problem by using the SQL integration. I can get everything I want. Here is an example:
"select round(sum(state)/60,2) as rain_24 from states where entity_id='sensor.tempest_st_nnnnnnnn_rain_rate' and last_updated > datetime('now','-24 hours');"

Can I assume that I can get that by dividing your rain_rate by 60??

Yes you can. The device reports the last minutes accumulated rain as the raw data, and that is then multiplied to get rain_rate per hour.


Line endings for DOS not being recognized.

Try changing the open('filename', 'r') to open('filename', 'U')

@hsiunga

looks like if you are using Python 3.5 or later you can instead pass through newline=None, but try the above for using Python2 @hsiunga


chore: typo changes for linkedin

@shunkakinoki Good catch. Thank you for fixing this :)

@all-contributors please add @shunkakinoki  for doc


Add models

In this project apply the following features: :100:

Add data into tables  :+1:
Create models using migration :+1:
Create different methods for the respective tables  :+1:

Thanks for the time


Exclude node_modules directory in tsconfig watch options

I did some tests with a script from here to monitor the amount of watched files.
tsc --watch before exclusion of  node_modules:

tsc --watch after exclusion of  node_modules:

ok, this doesn't stop the svelte language server from crashing either. What does seem to work (so far) however is enabling the disableSizeLimit option: https://www.typescriptlang.org/tsconfig/#disableSizeLimit .
I'm not sure if that is safe to enable tho.

Since I enabled disableSizeLimit in the compendium browser branch the Svelte language server didn't crash or stopped working once. I've not seen any negative effects so far.
I can remove the node_modules exclusion but I think it would still be beneficial to not include those files.

Creating a new .svelte file often triggers the "Svelte language server detected a large number of JS/Svelte files" warning, even in the master branch. While disableSizeLimit stops the warning, it unfortunately breaks IntelliSense for newly created .svelte files in VSCode.
Closing as neither of these settings completely resolves the problem.


Enables client authentification for SSL

Client authentification can be set as with the SSL Properties to
require the client certificate to be signed by the server.
Added jUnit test and test certificates

I rechecked and all test are running fine on Eclipse and using maven.
Are you doing any magic with your server instances?

Hi  @konradmichael could you explain better the meaning of the PR, which is the issue you found.
Thanks
Andrea

I am sorry that I did not explain the issue more, so here it comes.
The Situation:
We use moquette in our jUnit tests as an embedded MQTT server.
A new requirement was a certificate validation process on the Client. As the production server uses client authentication, the embedded Server also needs client authentication.
The Issue (feature request):
Moquette had no configuration parameters for using Client Authentication. Also I have not found a way to set these with JVM args.
The solution:
Seen in PR.
I hope this helps


Vertebral zones specific field correlation for more effective unwrap

I think we should add an optional input parameter defining the vertebral levels covered by the acquisition. We can use this to obtain the correlation between the respiratory trace and the field variations, instead of measuring it, as the measurement is often inaccurate.
This only concerns the phase unwrap function.

That is a good idea, both methods can probably coexist. Perhaps we should lay out the logic so that there is a possibility of choosing the most reliable method if both are provided.

Yes, I agree. I have an idea of how to do it. I opened the issue as a reminder for when I have time :)


Dashing devel

Hi,
even though ROS 2 dashing is not supported anymore, there might be some legacy systems which could make use of this fix.
This PR solves an error with the waffle_pi model in the autorace world during gazebo startup (std::bad_alloc).

Hi @Lien182
Thanks for the contribution.
Downloading and building the source will allow developers to use the latest package that is not distributed via debian package.


Markdown Export Pod

Context
Dendron recently launched the ability to export to plain markdown. This is still an experimental feature and we are collecting feedback on how to best implement this.
Proposal
This issue is to collect feedback and additional usecases for the export feature. Please reply in the comments in the following format:
Sample Feedback

Feature: Support exporting assets
Use cases: GitBook, Typora, etc.

Feature: control what is exported, similar to publishing
Use cases: i'd like to publish parts of my vault to our team's DevOps Wiki


JSON Parse error when reading json object from file

Observing random crash when reading JSON file data to a JSON object. Here is the summary of the crash. The crash point is always consistent.
Description:
One process takes care of the following:
[Library Call] --> Returns serialised JSON key-value pair as char *, which is placed in std::string Example : std:string testString = libCall(); testString now holds a string like this {"IS_JSON_FLAGON": true}
To ensure there are no additional characters and to adhere to the JSON object compatibility, the std::string is parsed and then assigned to a JSON object
Example:  nlohmann::json jWriteObj = nlohmann::json::parse(testString .c_str());
The JSON object is then written to JSON file
Example :
 mutex mLock; //global
upDateFlagsFile()
{
    fstream fileDesc;

    mLock.lock();
    fileDesc.open(<filepath>, trunc mode);
    fileDesc << jWriteObj;
    fileDesc.close();
    mLock.unlock();
}

this creates/updates the file with .json extension Example: flagsFile.json with data {"IS_JSON_FLAGON":true}
In another process, the file written by the previous process is read
Modules want to know the Flag value, so calls isFlagOn("IS_JSON_FLAGON") which then opens the file and reads the data to a json object
Example: [Module reading the flag value] ---->isFlagOn("IS_JSON_FLAGON") definition for isFlagOn()
extern   mutex mLock; // using the same mutex for sync the access to file
isFlagOn(char* flagName)
{
   istream fileDesc;
   bool flagValue = false;
   nlohmann::json jReadObj;
try{
   mLock.lock();
   fileDesc.open();
   fileDesc >> jReadObj; //  ---> Crash occurs randomly at this line
   flagValue = jReadObj[flagName].get<bool>();
   fileDesc.close();
   mLock.unlock();
  }
   catch(nlohmann::json::exception &e)
   {
       std:cout<< "Exception caught";
   }
   return flagValue;
}

The crash is very random on Ubuntu 20.04 and points to the line highlighted. The surprising part is the exception is not getting caught in spite of using the wildcard exception approach
Any suggestions on what needs to be corrected in this would help.
Snippet of crash:
#5  0x00007fe72ed436a9 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x000055fa7315cae9 in nlohmann::basic_json<std::map, std::vector, std::string, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>::operator[] (this=0x7fe67dff8840, key=0x55fa7385c64a
We are using nlohmann version 3.7.3 in our product

The stacktrace mentiones operator[], so it seems parsing is fine, but rather the access in line
flagValue = jReadObj[flagName].get<bool>();

fails. Can you replace it to
flagValue = jReadObj.at(flagName).get<bool>();

to actually throw an exception? Using operator[] on an invalid key or index will not yield an exception, but is undefined behavior.

Thank You for the response, I will give it a try.
The documentation mentions that the json::parse() can be used to convert C style strings to a JSON object.
Can you review the JSON methods used to write and read data to and from the file and share your suggestions?

You can parse strings like this:
json j = json::parse("[1,2,3]");

Or what do you mean?

As per the examples shared in ReadMe, the string can be converted to a JSON object by using the below format
auto j3 = json::parse(R"({"happy": true, "pi": 3.141})");
In the problem use case, the library call returns a char *  which is then passed to json::parse before assigning to a JSON object.
The 'R' prefix is not used or cannot be used in the problem scenario.
Wanted to know if this is the right way of converting a string to a JSON object with a key value.

The R"()" notation is just a raw string literal (see https://en.cppreference.com/w/cpp/language/string_literal). This will not work with a const char* variable. You can pass these directly to the parse function.
const char* s = some_function_returning_a_c_string();
json j = json::parse(s);

Closed the ticket as I received the information looking for.
Thanks a lot for your response.


added/fixed missing keywords, properties and types

Thanks for accepting the PR. I'm not 100% sure all the keywords are there, but at least it's an update! Thanks for the extension!

No problem at all, and thank you for the PR 🙇


ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

envy@ub1404:~/os_pri/github/imageqa-public/src$ GNUMPY_USE_GPU=yespython python train.py -model ../models/2_vis_blstm.model.yml -output ../results -data ../data/cocoqa -config ../config/train.yml
Initializing weights for imgFeat
Reading ../data/hidden_oxford_mscoco.h5
(123287, 4096)
Epoch size: 70854
Batch size: 100
Step size: 709
Examples per step: 70854
Steps per epoch: 1
Trainer 2_vis_blstm-v-20160323-095803
.Traceback (most recent call last):
File "train.py", line 307, in
validInputWeights)
File "train.py", line 156, in trainValid
validInputWeights=validInputWeights)
File "/home/envy/os_pri/github/imageqa-public/src/nn/trainer.py", line 264, in train
self.model.backward(dEdY)
File "/home/envy/os_pri/github/imageqa-public/src/nn/container.py", line 130, in backward
self.stages[s].graphBackward()
File "/home/envy/os_pri/github/imageqa-public/src/nn/stage.py", line 144, in graphBackward
dEdX = self.backward(self.dEdY)
File "/home/envy/os_pri/github/imageqa-public/src/nn/lut.py", line 96, in backward
if X[n] != 0:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
envy@ub1404:~/os_pri/github/imageqa-public/src$

Thanks for reporting the issue. It has been resolved in the most recent commit.

it works


Add draft icons

The spacing between the electrons should probably be bigger. I'm gonna work on it tomorrow!

It looks good, I set the redox-os orginazation's icon to it: https://github.com/redox-os


removed dirname variable

removed the dirname variable as needed...solves #5896 ....If any further changes needed...let me know....

:+1:


Fprats new golden metrics

Relevant information
Modified and added files for summary_metrics and golden_metrics for the following entities:
GCPSPANNERINSTANCE
GCPSTORAGEBUCKET
GCPAPPENGINESERVICE
GCPBIGQUERYDATASET
GCPBIGQUERYTABLE
GCPCLOUDFUNCTION
GCPCLOUDSQL
GCPHTTPLOADBALANCER
GCPINTERNALLOADBALANCER
Checklist

[ ] I've read the guidelines and understand the acceptance criteria.
[ ] The value of the attribute marked as identifier will be unique and valid.
[ ] I've confirmed that my entity type wasn't already defined. If it is I'm providing an
explanation above.

 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.fprats seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

missing license agreement


[SPARK-17632][SQL]make console sink and other sinks work with recoverFromCheckpointLoca…

What changes were proposed in this pull request?
make console sink and other sinks work with 'recoverFromCheckpointLocation' option enabled
How was this patch tested?
it is so trivial that no test needed
Author: Chuanlei Ni<EMAIL_ADDRESS>

Can one of the admins verify this patch?

@marmbrus
Could you have a look at this pr?

I'm sorry, I don't understand the goal of this patch.  Recovering from a checkpoint only makes sense if your sink is stateful.  What is the use case you are trying to support?

@chuanlei Hello, any thoughts on @marmbrus question? If not, mind closing this PR?

ok, I will close this pr.
Thanks for the reply.
@jerryshao @lw-lin  @marmbrus @tdas


pretrain model

Any pretrain models ?

Any pretrain models ?

Hi, How can i find the resnet+CA pretrain models?
<EMAIL_ADDRESS>


cxfVersion 4.0.0 missing runtime dependencies

Hi,
I'm using plugin version 1.2.0 with gradle 7.6.1 and cxfVersion 4.0.0. My task looks like this:
import io.mateo.cxf.codegen.wsdl2java.Wsdl2Java
tasks.register("wsdl", Wsdl2Java) {
    toolOptions {
        wsdl.set(file("src/main/resources/service.wsdl"))
        // see https://github.com/ciscoo/cxf-codegen-gradle/issues/73
        wsdlLocation.set("classpath:src/main/resources/service.wsdl")
        outputDir.set(file("$buildDir/generated-java"))
    }
}

If I run gradle wsdl2java, I get:
Task :wsdl FAILED
Exception in thread "main" java.lang.NoClassDefFoundError: jakarta/xml/bind/JAXBException
        at org.apache.cxf.tools.wsdlto.WSDLToJava.<init>(WSDLToJava.java:48)
        at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:181)
Caused by: java.lang.ClassNotFoundException: jakarta.xml.bind.JAXBException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 2 more

FAILURE: Build failed with an exception.

If I add this dependency it doesn't fail that way anymore (it fails initializing the jaxb plugin though, but I'll open a separate issue for that):
dependencies {
    cxfCodegen "jakarta.xml.bind:jakarta.xml.bind-api:4.0.0"
}

Given this is a codegen dependency, maybe it should be handled automatically by the codegen plugin?

This is expected behavior.
This plugin (io.mateo.cxf-codegen) only provides dependencies for Apache CXF, not Jakarta specific dependencies. Jakarta specific dependencies, such as Jakarta XML Binding, are to be provided by the projects themselves.
The reason for this is because I do not think it is appropriate for this plugin to provide such dependencies. The plugin is only responsible for providing an API for Gradle over the underlying code generation tool (wsdl2java). The plugin is not going to decide whether a project is to be Jakarta EE 9, 9.1, 10, etc. That is left to the projects to decide which version of the specification their project requires.


[ORANGE-1219] Check/update circleCI images

ORANGE-1219 Check/update circleCI images
Clubhouse Story
Email:

Your organization is receiving this email because there are still legacy convenience images being used. These images are being deprecated in two rounds - the first round was on December 31, 2021. They will not be deleted, but they will no longer be supported. You should have received emails about the specific images in September/October of last year.
Some images and tags have undergone significant changes and there may be some configuration changes that need to be made beyond the image name. For a list of affected images and tags, please take a look at our Discuss post about the deprecation. If your team runs into any issues during this upgrade process, please reach out to me and we can set up a meeting with one of our DevOps Customer Engineers to assist.
If you have any questions, any feedback about the new images, or would like to set up a meeting to discuss, please let me know.

How to test the PR

How to test feature 1

CI pass

Deployment Notes
none

thanks @avokhmin ! @koki-miyazaki yes we can archive this if no other projects are using it?


[WIP] ref(contrib): use Terraform for DO provisioning

This lets us use Terraform to provision and manage Deis deployments
on Digital Ocean.
This is a WIP for two reasons:

I haven't yet updated the docs
There's seemingly no easy way to get a user's SSH key ID without hitting the API ourselves (hashicorp/terraform#3058)

For users who want to try this out, install Terraform and then:
$ make discovery-url
$ cd contrib/digitalocean
$ terraform apply -var 'token=asdf1234' -var 'ssh_keys=1234'

The variables are a user's DigitalOcean API token and the ID of their SSH key.

Note that running this seems to work flawlessly (at least for setting up the machines, and having them fleet enabled).
I can also override the region with -var region= (as "advertised").
Setting up is also a lot faster than the old method (as this is more parrellized). Which I think might be a clue with etcd is suddenly working....
Is there a way to silence output of terraform (in the script), having the cloud config printed in unreadble format 3 times isn;t too usefull...

Thanks for testing, @nathansamson! I agree that it's much faster. How painful was it to get your SSH key id? That's the big blocker here, I think.

Is there a way to silence output of terraform

I wondered the same thing. I couldn't figure it out, but let me know if you do!

Quite easy to get my keys. Just a docl Keys away. But Yeah i am the author
of that tool. So i might be slightly biased.
I agree that just installing docl to get your keys is bit cumbersome, but
not sure if terraform can solve that (see comment on that bug report)
Op 22 aug. 2015 20:28 schreef "Chris Armstrong"<EMAIL_ADDRESS>
Thanks for testing, @nathansamson https://github.com/nathansamson! I
agree that it's much faster. How painful was it to get your SSH key id?
That's the big blocker here, I think.
Is there a way to silence output of terraform
I wondered the same thing. I couldn't figure it out, but let me know if
you do!
—
Reply to this email directly or view it on GitHub
https://github.com/deis/deis/pull/4315#issuecomment-133737525.

So i might be slightly biased.

A bit :) I think docl is great. I think not having people need to query for their keys at all is even better. Still thinking about a solution for this, though. There may not be one :(

@nathansamson This now supports specifying a prefix, which defaults to "deis".

You can also use the fingerprint instead of the DO ID. The fingerprint can be viewed on the DO dashboard or locally computed (ssh-keygen -l -E md5 -f ~/.ssh/deis.pub | awk '{print $2}')
terraform apply -var 'token=obviouslyasecret' -var 'ssh_keys=6b:6e:ac:a8:not:so:secret:but:will:not:post:it:anyway' -var 'prefix=deis-terra'

worked like a charm

The fingerprint can be viewed on the DO dashboard

Aha! That's much more reasonable. I'll whip up some updated documentation.

This is now ready for review.

Killing Jenkins run as this won't be tested.

I tried this using the included Sphinx docs but had problems:
$ brew install terraform
$ terraform --version
Terraform v0.6.3

$ make discovery-url
$ terraform apply contrib/digitalocean \
>  -var 'token=b4687fxxxxxx' \
>  -var 'ssh_keys=e2:3f:df:xx:xx:xx' \
>  -var 'region=nyc3' \
>  -var 'prefix=mboersma-deis' \
>  -var 'instances=5' \
>  -var 'size=4GB'
The apply command expects at most one argument.
Usage: terraform apply [options] [DIR]

  Builds or changes infrastructure according to Terraform configuration
  files in DIR.
...

$ terraform apply \
>  -var 'token=b4687fxxxxxx' \
>  -var 'ssh_keys=e2:3f:df:xx:xx:xx' \
>  -var 'region=nyc3' \
>  -var 'prefix=mboersma-deis' \
>  -var 'instances=5' \
>  -var 'size=4GB' \
> contrib/digitalocean
There are warnings and/or errors related to your configuration. Please
fix these before continuing.

Errors:

  * 1 error(s) occurred:

* 5 error(s) occurred:

* file: open /Users/matt/Projects/src/github.com/deis/deis/../coreos/user-data: no such file or directory in:

${file("${path.cwd}/../coreos/user-data")}
* file: open /Users/matt/Projects/src/github.com/deis/deis/../coreos/user-data: no such file or directory in:

...

Ah - looks like the path for user-data I'm using is using the cwd, not the directory the script is in.
I bet if you first changed into contrib/digitalocean and then ran terraform apply with the vars it'd work.

I bet if you first changed into contrib/digitalocean...

That does seem to work, and then I get the ridiculous amount of textual information you mentioned. (Mine ended with a "401 Unauthorized" error for some reason but I don't think that's the PR's fault necessarily.)
$ cd contrib/digitalocean/
Rhialto:digitalocean matt$ terraform apply \
>  -var 'token=b4687fxxxxxx' \
>  -var 'ssh_keys=e2:3f:df:xx:xx:xx' \
>  -var 'region=nyc3' \
>  -var 'prefix=mboersma-deis' \
>  -var 'instances=5' \
>  -var 'size=4GB'
digitalocean_droplet.deis.4: Creating...
  backups:              "" => "0"
  image:                "" => "coreos-stable"
  ipv4_address:         "" => "<computed>"
  ipv4_address_private: "" => "<computed>"
  ipv6:                 "" => "0"
  ipv6_address:         "" => "<computed>"
  ipv6_address_private: "" => "<computed>"
  locked:               "" => "<computed>"
  name:                 "" => "mboersma-deis-5"
  private_networking:   "" => "1"
  region:               "" => "nyc3"
  size:                 "" => "4GB"
  ssh_keys.#:           "" => "1"
  ssh_keys.0:           "" => "e2:3f:df:xx:xx:xx"
  status:               "" => "<computed>"
  user_data:            "" => "#cloud-config\n---\ncoreos:\n  fleet:\n
...

Error applying plan:

5 error(s) occurred:

* digitalocean_droplet.deis.1: Error creating droplet: Error creating droplet: API Error: 401 Unauthorized
* digitalocean_droplet.deis.3: Error creating droplet: Error creating droplet: API Error: 401 Unauthorized
* digitalocean_droplet.deis.2: Error creating droplet: Error creating droplet: API Error: 401 Unauthorized
* digitalocean_droplet.deis.4: Error creating droplet: Error creating droplet: API Error: 401 Unauthorized
* digitalocean_droplet.deis.0: Error creating droplet: Error creating droplet: API Error: 401 Unauthorized

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

Reminder: we need to switch path.cwd for something else (maybe path.root if it exists?) so that we can use the script root to find user-data.
/cc @sgoings

@carmstrong and @mboersma I've added the files that rigger cares about in the DO script (and handled the path.cwd -> path.module change as requested).
It's possible to use this separate from Rigger as well (but just requires manual setup of Deis after a terraform apply)

Should the create, destroy, etc. scripts not have the .sh extension? Rigger could just see them as executables.

@carmstrong rigger actually uses them more like included libraries (they're eval'd). This gives us the ability to call functions that live in rigger itself (like the critical save-var).

rigger actually uses them more like included libraries (they're eval'd).

Understood. One downside of that is that an internal rewrite (say, to reimplement Rigger in Go), would require changes in the tool and all provision scripts.
We may not care, but it's something to consider.

Agreed. I think for now it leads to the most minimal scripting per provider. Switching them to proper "call-able binaries" is ideal, but I'd have to make some of the functions that provider scripts would need to call also call-able binaries (save-var, logging, etc). This wouldn't be hard, but just more work :-)

This wouldn't be hard, but just more work :-)

Let's file an issue for it on deis/rigger

Accidentally closed the PR.

Following the docs included with this PR doesn't seem to work still:
$ terraform --version
Terraform v0.6.3
$ terraform apply contrib/digitalocean \
>   -var 'token=2acbe548' \
>   -var 'ssh_keys=e1:c3:b0:7f:91:d0' \
>   -var 'region=nyc3' \
>   -var 'prefix=mb-deis' \
>   -var 'instances=3' \
>   -var 'size=4GB'
The apply command expects at most one argument.
Usage: terraform apply [options] [DIR]

I think you still need to put contrib/digitalocean after the dash-prefixed arguments:
$ terraform apply \
>   -var 'token=2acbe548' \
>   -var 'ssh_keys=e1:c3:b0:7f:91:d0' \
>   -var 'region=nyc3' \
>   -var 'prefix=mb-deis' \
>   -var 'instances=3' \
>   -var 'size=4GB' \
>   contrib/digitalocean
digitalocean_droplet.deis.1: Creating...
  backups:              "" => "0"
  image:                "" => "coreos-stable"
  ipv4_address:         "" => "<computed>"
  ipv4_address_private: "" => "<computed>"
  ipv6:                 "" => "0"
  ...


Issue2842 (WIP)

@emanuelschuetze How do you like this behavior?

TODO:

move check symbol to the right
symbol on reset

@emanuelschuetze Ready for review.

@normanjaeckel ping


Connecting to twitter will get RESET frame

I have notice that twitter will reject the following frame combinations as well.
If a client first sent a HEADER frame with END_HEADERS flag set, after that sent a PRIORITY frame with the same stream id, twitter server will reply with a RESET frame.
The following is the code snippets that I used
import certifi
import h2.connection
import h2.events

import errno
import socket
import ssl
import time

SERVER_NAME = 'www.twitter.com'

socket.setdefaulttimeout(2)

c = h2.connection.H2Connection()
c.initiate_connection()

ctx = ssl.create_default_context(cafile=certifi.where())
ctx.set_alpn_protocols(['h2', 'http/1.1'])
ctx.set_npn_protocols(['h2', 'http/1.1'])

s = socket.create_connection((SERVER_NAME, 443))
s = ctx.wrap_socket(s, server_hostname=SERVER_NAME)

s.sendall(c.data_to_send())

headers = [
    (':method', 'GET'),
    (':path', '/'),
    (':authority', SERVER_NAME),
    (':scheme', 'https'),
    ('user-agent', 'custom-python-script'),
]
c.send_headers(1, headers, end_stream=True)
c.prioritize(1, weight=201, depends_on=0, exclusive=False)

s.sendall(c.data_to_send())

while True:
    data = s.recv(65536 * 256)
    if not data:
        break

    try:
        events = c.receive_data(data)
        s.sendall(c.data_to_send())
    except:
        break

    for event in events:
        print(event)

Since firefox will sent a header frame with priority updated and end stream within it. Hyper-h2 will treat this into two separated events (RequestReceived, PriorityUpdated).
As a result, we will first called sent_headers with priority updated and end_stream, after that calling prioritize and causing the situations.

B.T.W, if the above scenario is violating the RFC, there is no need to fix this and add more complexity to our code base. :)


Feedback from grzegorz#5119

From grzegorz :
shouldn't there be another pros in arch about awesome documentation?

I don't feel this is necessary, most people who are going to be using rolling will already know about the Arch wiki


Spyder debugger experience - jump to code line/Move current debug position

Hi guys,
I really think Spyder is awesome and I would like to make a suggestion for an even further enhancement :)
It would be great if Spyder provided some graphical representation for pdb's "j(ump) lineno" command, that allows to set the next line that will be executed during debugging.
This is such a powerful debugging tool, as it allows to skip over malfunction code or to go back if you missed the important step etc.. It should therefore have a graphical representation, especially to let newbies know that this is possible.
a) An easy way could be to simply open a pop up a like "enter a line number for next statement to debug"
b) Another awesome, but surely more difficult option to implement, would be to have an arrow that indicates the current line for the debugger (which is then independent from the line the mouse cursor selects). Then during a debug session, one could simply take that arrow with the mouse and move it up or down, similar as in VBA (from Excel/Word). Of course this option is more difficult, as Spyder would need to know what jumps are legal and which jumps are prohibited...

Thanks for the suggestion, it's very intersting! We'll see what we can do about it.

Closing this one as a duplicate of #528.


Wiki-style markup for labels

From<EMAIL_ADDRESS>on March 01, 2013 16:03:16
Just some ideas for enhancement:
Do we need to allow Google wiki-style markup for labels (signal names, timing, phase labels)?
In order of importance:
type              wiki-markup         use case

subscript         ,,sub,,script       useful for timing labels t1, t2 ...
overline          ???                 for negative signal polarity
code
bold
italic         - we have to be careful about normal usage of underscore in names
^super^script    - may be messed up with XOR?
strikeout
underline?
Original issue: http://code.google.com/p/wavedrom/issues/detail?id=67

Subscript/superscript would be extremely helpful on signal text data and signal names.

In a ugly way, but it is supported now.
['tspan', 'E=mc',
    ['tspan', {dy:'-5'}, '2'],
    ['tspan', {dy: '5'}, '. '],
    ['tspan', {'font-size':'25'}, 'B '],
    ['tspan', {'text-decoration':'overline'},'over '],
    ['tspan', {'text-decoration':'underline'},'under '],
    ['tspan', {'baseline-shift':'sub'}, 'sub '],
    ['tspan', {'baseline-shift':'super'}, 'super ']
  ]

Will give you:

I think we can add several useful classes:

[ ] overline
[ ] undeline
[ ] sub
[ ] super
[ ] bold
[ ] italic

So instead of:
['tspan', {'text-decoration': 'overline'}, 'over']

one can write:
['tspan', {'class': 'overline'}, 'over']

About Wiki markup comparison
http://www.wikimatrix.org/syntax.php

All SVG text formatting ideas moved to https://github.com/drom/tspan

Just released v1.2.0
It supports some text formatting tags, including overline
More details here: https://github.com/drom/tspan


Implement platform.sh integration

Pantheon and ddev-live have explicit integration in ddev. Platform.sh should have it too!

And Lando has a partnership with Platform.sh. They actually parse the .platform.app.yaml file. I don't know if DDEV wants to go that far, but some form of integration would be good to be competitive for developers who work with Platform.sh.

I'd love to see something as tight as the pantheon plugin is, or even better using the actual platform images too (Again similar to how Lando's integration is now doing it) (This may be possible updating the images, but I feel if I'm customising the dockerfiles to that extent and when things go wrong it's my problem to sort, if its built in to be able to, at least testing etc would be better)

Thanks! I've tentatively marked this for the next major release. However, there's way too much marked 😸

Just noticed this revealing post on Platform.sh community slack. There is a hole here that other community members have been looking to fix:

Hi, I need a local development environment that just works, with minimal likelihood of falling into a command line rabbit hole that never gets resolved. I need to pull my Platform.sh site code and data, update modules (with Drush not composer, as it’s a Drupal 7 site), and push it back to Platform. I know Lando is supposed to be the app the end all apps. I have encountered a million problems with it and can’t get it to work. Now I can’t even tell if there’s a current version or not. I install it, and 3 days later I’m still trying to figure how to resolve fatal errors. I also tried Vagrant and had a similar problem. I need to cut my losses here and just get something that works. I’m on an 8 kachillion dollar MacOS laptop.  This seems like a reasonable expectation at this point in technology. I love Platform, but I am months overdue to update a site on it that I could update really easily in some of the competing Drupal hosts via on-server dev. I am not complaining here - I just really need to update my site and local CLI dependent apps are not working. What app should I use. Please help - I really need to get this working, Thank you in advance!

Someone then responded:

I’m uber new here and just now testing platform. I’ve used lando and for the last year switched to DDev for the various reasons you mentioned. I’ve found it to be great, but not sure of the hoops I’ll need to navigate to work with platform. I hope not many. Again, super new to platform, but I really really hope it’s a easy thing to use DDevI can say with complete confidence that the support for DDev local is amazing.  The slack channel for DDev local on Drupal slack is fantastic. I dare say DDev has been fun.

Ddev is winning hearts and minds.

From same thread on Platform community slack, someone has also written a docker wrapper for platform:
https://gitlab.com/contextualcode/platform_cc

The new Platform.sh integration made it into ddev v1.17.0-alpha5, I hope you'll all try it out, https://github.com/drud/ddev/releases/tag/v1.17.0-alpha5


Implement resource usage report

To what component is your bug related to?
Forge
Feature Request
Using the Blockifier, we can get the resource used for invoke transaction invocations.
Would be great to have a flag --resource-report to print out resources used (steps, built-ins etc)

Thank you for the request. We are definitely considering adding transactions profiling at some point.

This should be considered as well on cairo level - which could enable users to assert gas consumed from a test.
I.e. a contract invocation would return gas consumed.
Also i think we should profile on transaction level and as well sum the transactions gas for a whole test (if a person wants to know the whole flows' cost)

Blocked by #327

We could start by implementing it for a single test case as a whole as it will be the simplest.
Later we could try to do it on a transaction level maybe something like this
let call_info = CallInfoDispatcher.get_balance()
assert(call_info.gas_usage < 100000, `above expected gas usage`)
assert(call_info.value == 5, `incorrect value`)

Wouldn't it be better to have step counts rather than gas usage?

@enitrat Sure but steps are only part of the picture as builtins can impose significant cost as well. Ideally we should report:

steps
builtins usage
estimated gas

@enitrat Sure but steps are only part of the picture as builtins can impose significant cost as well. Ideally we should report:

steps
builtins usage
estimated gas

yes, indeed, I just wanted to make sure we were not talking about Sierra Gas (I'm still not sure it's actually mapped to "real" execution resources)

https://github.com/foundry-rs/starknet-foundry/issues/362 Should be taken under consideration

Related: #462

Blocked by #547


aror.edu.pk added

Aror University
Aror University of Art, Architecture, Design and Heritage

@aroruni First stage of verification passed, official domain for Aror University is aror.edu.pk as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@aroruni Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Questions about infersharp implementation

Hello!
Thanks for this tool and the PR about language-agnostic layer.
This issue is not going to report some bugs and features. I just wanna get answers to my a few questions, which are mainly about infersharp implementation.

Why MethodBody can be found everywhere in cfg.json? And what's the logic of it? Perhaps I fail to figure out what MethodBody means? (e.g Why LdargParser generates MethodBody node, while LdcParser doesn't.)
Is Metadata instruction useful? I wanna know the reason infersharp doesn't implement it.
The point I mostly concerned is whether infer can run some language-unrelated checkers with data (cfg.json & tenv.json) received from language-agnostic layer interface.

Many thanks!

Hello!
Thanks for this tool and the PR about language-agnostic layer.
This issue is not going to report some bugs and features. I just wanna get answers to my a few questions, which are mainly about infersharp implementation.

Why MethodBody can be found everywhere in cfg.json? And what's the logic of it? Perhaps I fail to figure out what MethodBody means? (e.g Why LdargParser generates MethodBody node, while LdcParser doesn't.)

MethodBody type nodes refer to nodes in the Control-Flow-Graph (CFG) which contain instructions representing the body of the method. As for your second question: there is no guarantee that a particular CIL instruction has a 1:1 mapping to a particular SIL instruction. In this case, there is an SIL instruction corresponding to ldarg because ldarg is the pushing of an argument value onto the program stack; in other words, this is the loading of a value of a location on the heap, or an SIL Load instruction applied to the method argument. On the other hand, ldc, or the pushing of a constant onto the stack, doesn't have a corresponding SIL representation because it has no association with locations on the heap.

Is Metadata instruction useful? I wanna know the reason infersharp doesn't implement it.

Well, we do use metadata information insofar as we do use complete method signatures (including method name, class name, method arguments) to identify translated methods. From a control flow representation perspective, CIL Metadata doesn't really have much relevance as it does not actually convey information about a program's control flow.

The point I mostly concerned is whether infer can run some language-unrelated checkers with data (cfg.json & tenv.json) received from language-agnostic layer interface.

Depending on the checkers you have in mind, you might want to look at Infer's taint analysis or other checkers they have implemented on top of the SIL, to save yourself work.

Many thanks!

Thanks for your kindly answers, but I still feel loss understanding some concepts.

MethodBody type nodes refer to nodes in the Control-Flow-Graph (CFG) which contain instructions representing the body of the method. As for your second question: there is no guarantee that a particular CIL instruction has a 1:1 mapping to a particular SIL instruction. In this case, there is an SIL instruction corresponding to ldarg because ldarg is the pushing of an argument value onto the program stack; in other words, this is the loading of a value of a location on the heap, or an SIL Load instruction applied to the method argument. On the other hand, ldc, or the pushing of a constant onto the stack, doesn't have a corresponding SIL representation because it has no association with locations on the heap.

Oh, I see. I also noticed the same description in wiki: "The nodes which contain the instructions associated with the body of the method body are mostly identified with the MethodBody type, though nodes containing invocations to other methods are identified as Call nodes."
So does MethodBody mean "a statement in original source code"? Or can I say that MethodBody represents one statement and the very next successors of MethodBody node represent some components of this statement.

Well, we do use metadata information insofar as we do use complete method signatures (including method name, class name, method arguments) to identify translated methods. From a control flow representation perspective, CIL Metadata doesn't really have much relevance as it does not actually convey information about a program's control flow.

Sorry I didn't describe my question clearly. Metadata mentioned here is not "C# Metadata", but a type of instruction of SIL.

Thanks for your kindly answers, but I still feel loss understanding some concepts.

MethodBody type nodes refer to nodes in the Control-Flow-Graph (CFG) which contain instructions representing the body of the method. As for your second question: there is no guarantee that a particular CIL instruction has a 1:1 mapping to a particular SIL instruction. In this case, there is an SIL instruction corresponding to ldarg because ldarg is the pushing of an argument value onto the program stack; in other words, this is the loading of a value of a location on the heap, or an SIL Load instruction applied to the method argument. On the other hand, ldc, or the pushing of a constant onto the stack, doesn't have a corresponding SIL representation because it has no association with locations on the heap.

Oh, I see. I also noticed the same description in wiki: "The nodes which contain the instructions associated with the body of the method body are mostly identified with the MethodBody type, though nodes containing invocations to other methods are identified as Call nodes."
So does MethodBody mean "a statement in original source code"? Or can I say that MethodBody represents one statement and the very next successors of MethodBody node represent some components of this statement.

A MethodBody node stores SIL instructions which are translated from CIL instructions composing the original .NET method. The successor nodes of a MethodBody node contain the succeeding instructions in the control flow -- they are not "components" of the prior instructions.

Well, we do use metadata information insofar as we do use complete method signatures (including method name, class name, method arguments) to identify translated methods. From a control flow representation perspective, CIL Metadata doesn't really have much relevance as it does not actually convey information about a program's control flow.

Sorry I didn't describe my question clearly. Metadata mentioned here is not "C# Metadata", but a type of instruction of SIL.

We haven't translated that because Infer# is focused only on representing the semantic control flow of the program; as the program documents, Metadata is not strictly needed for this purpose. I believe other frontends, like the Java one (see jTrans.ml), similarly does not generate Metadata in its output.

We haven't translated that because Infer# is focused only on representing the semantic control flow of the program; as the program documents, Metadata is not strictly needed for this purpose. I believe other frontends, like the Java one (see jTrans.ml), similarly does not generate Metadata in its output.

Make sense, Thank you!
But I still have a quick question. If the succeeding nodes of MethodBody represent succeeding instructions, I wonder if the number of MethodBody should be "1" in each method, because there is only one "method body" of each method.

The above image is CFG of Examples/Examples/ResourceLeakInterproceduralOK:
        /// <summary>
        /// Interprocedural resource usage example, no leaks expected.
        /// </summary>
        public void ResourceLeakInterproceduralOK(){
            StreamWriter stream = AllocateStreamWriter();
            if (stream == null)
                return;

            try
            {
                stream.WriteLine(12);
            }
            finally
            {
                stream.Close();
            }
        }

Actually, I want to figure out the usage of MethodBody from the beginning, but I found MethodBody seems not representing "the body of method".

We haven't translated that because Infer# is focused only on representing the semantic control flow of the program; as the program documents, Metadata is not strictly needed for this purpose. I believe other frontends, like the Java one (see jTrans.ml), similarly does not generate Metadata in its output.

Make sense, Thank you!
But I still have a quick question. If the succeeding nodes of MethodBody represent succeeding instructions, I wonder if the number of MethodBody should be "1" in each method, because there is only one "method body" of each method.

The above image is CFG of Examples/Examples/ResourceLeakInterproceduralOK:
        /// <summary>
        /// Interprocedural resource usage example, no leaks expected.
        /// </summary>
        public void ResourceLeakInterproceduralOK(){
            StreamWriter stream = AllocateStreamWriter();
            if (stream == null)
                return;

            try
            {
                stream.WriteLine(12);
            }
            finally
            {
                stream.Close();
            }
        }

Actually, I want to figure out the usage of MethodBody from the beginning, but I found MethodBody seems not representing "the body of method".

Ah, MethodBody nodes store at least 1 instruction from the body of the method, but not necessarily the entire body of the method. Hence there can be greater than one MethodBody node.

Ah, MethodBody nodes store at least 1 instruction from the body of the method, but not necessarily the entire body of the method. Hence there can be greater than one MethodBody node.

emm... if so, I want to know how do you design for it. I can hardly find the relationship and summarize the rules between CIL instruction and the reason why InstructionParsers of those emits MethodBody.

Essentially, we simulate the CIL program stack (that's the program stack object in C#) as we iterate over each CIL instruction in succession. As we do so, we render the corresponding SIL instructions. Were there particular InstructionParsers/program translations in particular you were thinking about?

Essentially, we simulate the CIL program stack (that's the program stack object in C#) as we iterate over each CIL instruction in succession. As we do so, we render the corresponding SIL instructions. Were there particular InstructionParsers/program translations in particular you were thinking about?

Yes, I have read all C# files under Cilsil/Cil/Parsers including InstructionParsers. Though I haven't learnt .NET platform structure, I knonw the parsers extend InstructionParsers and process expression simulate a stack (I notice there is stack.Pop and Push).
I guess Expression is not the part I feel confused. After having a look at CFG output, I found there are several MethodBody nodes and I just cannot figure out what MethodBody means and "when and why" infersharp should register a new MethodBody node into CFG.

I find several examples in infersharp
1. InitObjParser
https://github.com/microsoft/infersharp/blob/main/Cilsil/Cil/Parsers/InitObjParser.cs#L89
var node = AddMethodBdyInstructionsToCfg(
                        state,
                        structInitializationInstructions.ToArray());

Obejct initialization seems a part of statement.
2. Ldarg
                if (ParameterIsByReference(index, state.Method))
                {
                    // Strips out the pointer because the type produced by CreateArg already
                    // carries it.
                    var argAddressType =
                        new Address(Tptr.PtrKind.Pk_pointer,
                                    argType.StripPointer(),
                                    argVar,
                                    referenceKind: Address.ReferenceKind.Parameter);
                    state.PushExpr(argVar, argAddressType);
                }
                else
                {
                    var loadArgument = state.PushAndLoad(argVar, argType);
                    node = AddMethodBodyInstructionsToCfg(state, loadArgument);
                    state.AppendToPreviousNode = true;
                }

If parameters are not passed in as reference, LdargParser will create a MethodBody node. But what's the relationship between loading an argument and method body node.
3. Newarr
https://github.com/microsoft/infersharp/blob/main/Cilsil/Cil/Parsers/NewarrParser.cs#L66
// Represents memory allocation.
                    var callInstr = new Call(returnId: arrayIdentifier,
                                             returnType: arrayTypeWithPtr,
                                             functionExpression: new ConstExpression(
                                                 ProcedureName.BuiltIn__new_array),
                                             args: args,
                                             flags: new Call.CallFlags(),
                                             location: state.CurrentLocation);
                    var newNode = AddMethodBodyInstructionsToCfg(state, callInstr);
                    state.PushExpr(new VarExpression(arrayIdentifier), arrayTypeWithPtr);
                    state.PushInstruction(instruction.Next, newNode);

New an array seems a statement in C#, and once I create an array, I create a related MethodBody. This makes me really confused.
Some other examples like Stind, Stloc, Ret, Ldelem are the same for me.

In general, when the CIL corresponds to an SIL instruction, we create the corresponding SIL instruction which in turn gets added to a MethodBody node. Not all CIL have such a correspondence -- for example, ldc refers to the pushing of a constant onto the CIL program stack but has no direct corresponding operation in SIL because the constant doesn't come from a register. By contrast, ldarg refers to the pushing of an argument's value onto the CIL program stack; this corresponds to the load of the argument register.  Similarly, Initobj/Newarr refer to the creation of objects, which correspond to Call instructions in the SIL, hence we create MethodBody nodes to store these instructions.

In general, when the CIL corresponds to an SIL instruction, we create the corresponding SIL instruction which in turn gets added to a MethodBody node. Not all CIL have such a correspondence -- for example, ldc refers to the pushing of a constant onto the CIL program stack but has no direct corresponding operation in SIL because the constant doesn't come from a register. By contrast, ldarg refers to the pushing of an argument's value onto the CIL program stack; this corresponds to the load of the argument register. Similarly, Initobj/Newarr refer to the creation of objects, which correspond to Call instructions in the SIL, hence we create MethodBody nodes to store these instructions.

Thanks for your patient answer! Make sense here.


Missing dependencies (PropertyFactory)

Hi,
Have the following defined in my pom.xml:
<properties>
<archaius-version>2.0.0-rc.33</archaius-version>
</properties>
        <dependency>
            <groupId>com.netflix.archaius</groupId>
            <artifactId>archaius2-core</artifactId>
            <version>${archaius-version}</version>
        </dependency>

Upon loading, I get the following:
[2015-11-17 12:25:37,751] Artifact random:war: Artifact is being deployed, please wait...
[2015-11-17 12:25:39,705] Artifact random:war: Error during artifact deployment. See server log for details.
[2015-11-17 12:25:39,705] Artifact random:war: java.io.IOException: com.sun.enterprise.admin.remote.RemoteFailureException: Error occurred during deployment: Exception while loading the app : CDI deployment failure:WELD-001408: Unsatisfied dependencies for type PropertyFactory with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 2 of [BackedAnnotatedConstructor] @Inject public com.netflix.archaius.ProxyFactory(Decoder, PropertyFactory)
  at com.netflix.archaius.ProxyFactory.<init>(ProxyFactory.java:0)
. Please see server.log for more details.

Note that this is before I have even created any classes that use Archaius, this is just loading the war file with the jars in the lib.

That looks like an issue with the container, see this similar issue for guava:
https://code.google.com/p/guava-libraries/issues/detail?id=1433


Bulk option not working any more ?

When I am requesting as bulk there is error : 400 any one got the same issue ?

Your issue doesn't contain enough detail to help debug, closing.


how do i set kinbana for es when i set elasticsearch-http-basic-auth-plugin

when i set elasticsearch-http-basic-auth-plugin,it's ok to use in like http request use basic auth.but when i use kinbana,i set
elasticsearch.username: elastic elasticsearch.password: admin_pw in kibana.yml,i can open localhost:5601,and some function like devtools doesnot function .how do i set the config
@Sessa93

i hava the same question

You should set these configuration on kibana.yml :
elasticsearch.requestHeadersWhitelist: ["Authorization"]
elasticsearch.customHeaders : { "Authorization":"Basic XXXXX" }


MIP solvers

Is this ready for review?
I wasn't sure, since there are remaining linter issues, there is no description and there are no other comments yet. :thinking:

When you do go get github.com/nextmv-io/sdk@c4c48ae1edbe6579bbd71e583a3aa1f3ee7b9094 then the right reference to the matching SDK version is added to the go.mod. Then one can build/test the branch. c4c48ae1edbe6579bbd71e583a3aa1f3ee7b9094 is the commit hash of whatever commit represents the version of sdk you want to link.


Return the "diffPercent" value to the client for rendering

Closes #193?
@OmarShehata:

Can you do the "print difference next to outlier" first?

Given catdog.gb:

Is this the right percentage to be returning?

0% for the Canis lupus? Something tells me that's wrong.


[1.20.x] Center /home teleportation

Centers the teleportation to a home position to avoid falling through blocks at corners.

thanks!


Allow for creating tile layers

Defining basic tile layers.
To do:

[ ] Figure out why the ydoc does not get updated properly
[ ] Provide a set of tile layers by default https://github.com/geopandas/xyzservices/blob/main/xyzservices/data/providers.json

https://github.com/QuantStack/jupytergis/assets/21197331/33e73751-dd75-4a10-8fc4-c7ad5cb0364c

QGIS's power lies for a big part in its plugin system. One of the most popular QGIS plugins is QuickMapServices (over 5M downloads), which allows adding basemaps and geoservices.
If we're going to model JupyterGIS after QGIS, shouldn't we start adopting the same plugin architecture?

FWIW, Felt has a QGIS plugin which allows to export QGIS projects to new maps in felt.com. Maybe that's something we should look at.

What I mean is that this PR is taking a direction which already diverges from the QGIS model. Shouldn't we first discuss these architectural questions?

What I mean is that this PR is taking a direction which already diverges from the QGIS model

How does this PR in particular diverges from the QGIS model?

power lies for a big part in its plugin system. One of the most popular QGIS plugins is QuickMapServices (over 5M downloads), which allows adding basemaps and geoservices

This is perfectly fine, and I believe we'll be able to achieve the same kind of designs thanks to the lumino plugin system

FWIW, Felt has a QGIS plugin which allows to export QGIS projects to new maps in felt.com

Yes definitely, it's part of the plan to support importing .qgis xml files. We've done something similar with JupyterCAD and freecad with https://github.com/jupytercad/jupytercad-freecad
But again I don't think any of this is related to this PR in particular. This PR merely adds simple tile layers support in the .jgis format.

OK, I guess I was confused by the JGIS/QGIS split, where QGIS projects can be imported to JGIS, and JGIS projects can be exported to QGIS. But JupyterGIS won't directly work on QGIS projects, right?
Maybe we could set up a test suite that will check that a QGIS project is importable in JGIS, and a JGIS project is exportable to QGIS, where applicable?

But JupyterGIS won't directly work on QGIS projects, right?

Right. The plan is to have our own JSON-based format so that's easy to use for collaboration.

Maybe we could set up a test suite that will check that a QGIS project is importable in JGIS, and a JGIS project is exportable to QGIS, where applicable?

Yes we should definitely do that 👍🏽
Also we probably want to start implementing the interface between QGIS/JGIS early so that we make the proper decisions on the JGIS format.
Concerning the plugin system, it's also part of the plan to implement an equivalent of the plugin https://enmap-box.readthedocs.io/en/latest/general/about.html, probably shipped as a plugin to jupytergis.


Steps to make Python unit tests run on Travis

This commit makes a few changes to this repository to try to get the Python unit tests working both locally and on Travis.
It sets up a tox.ini file for running Tox in two environments: one for Django 1.8 and one for Django 1.11 (the two LTS versions). To run both, just run tox, to run either, do e.g. tox -e dj18 or tox -e dj111. This uses its own virtual environment.
Currently the Django 1.8 environment fails because of a dependence on models.Index which does not exist in that version. @grapesmoker are you looking into fixing that?
There's an additional failure in eregs_core.eregs_tests.test_model_functions.ModelFunctionsTest.test_paragraph_functions due to some mismatched HTML; @grapesmoker can you also take a look at that failure?
This commit adds a .travis.yml file for running automated unit tests on TravisCI.
This commit adds an additional piece of test data into the data subdirectory (which is now explicitly incorporated into eregs.settings), because it is required to make one of the existing unit tests pass. The wisdom of including this data in this repository is perhaps something to be discussed further, but doing this continues an existing pattern in the short-term interest of getting the tests running
for now.
The setup.py file has been modified to add some of the testing dependencies required by Tox and Travis.
This commit also slightly modifies the .gitignore file to better hide some testing-related files and directories.
Finally, this commit adds a @unittest.skip marker on some tests that are hitting production servers; these shouldn't be part of the unit test suite.
Checklist

[X] Changes are limited to a single goal (no scope creep)
[X] Code can be automatically merged (no conflicts)
[ ] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

I've disabled Travis testing of Django 1.11 for now as some of the code doesn't seem to run properly anymore now that the 1.8-specific fixes are going in. See above for various other minor tweaks and fixes.
Currently as of the latest Travis build the tests are still blocked by what was trying to be addressed in a511eba, namely, multiple inheritance of non-abstract models not being supported in Django 1.8.

Changes Unknown when pulling e8102094173cae94e6ef1e0d16e0aa7acc81a4ce on make-tests-work into ** on master**.


Finalise non-parametric model (JAGS)

[ ] plot univariate summary of AUC values
[ ] get decent demo dataset
[ ] AUC calculation: make it robust to datasets with different max delays
[ ] ensure good plotting
[ ] document on the wiki

Actually, I want to place a prior over A/B not log(A/B) so I need to:

do the log within the JAGS file
update the matlab code so that we are estimating A/B

The psychometric function needs more work to deal with positive and negative reward values. So far we are doing this with alpha being >0 or <0. But this is introducing errors in inferring the indifference points!

The separate model seems to work very well IF we have pretty strong priors on epsilon being small


Refactor build process using custom page extensions

Known issues:

Multiple calls to extract-mdx-metadata unreliable in develop mode
Threading through numbers to individual posts (used for color selection)

Potential points of cleanup:

Manual wrapping of MDX content in Post

Closing in favor of https://github.com/carbonplan/blog/pull/98


remove unnecessary decode steps

characters_to_list(string(), in_coding) is a noop

Could you please explain why universalString and bmpString can be returned as is? They already properly converted to erlang strings?

Yeah. They are already erlang list of code point strings


New version: DifferenceEquations v0.4.5

Registering package: DifferenceEquations
Repository: https://github.com/SciML/DifferenceEquations.jl
Created by: @wupeifan
Version: v0.4.5
Commit: 15131ade5addbd00588a7d4dbdad4a107fca9b68
Reviewed by: @wupeifan
Reference: https://github.com/SciML/DifferenceEquations.jl/commit/15131ade5addbd00588a7d4dbdad4a107fca9b68#commitcomment-63073968
Description: Solving difference equations with DifferenceEquations.jl and the SciML ecosystem.

pause


How do I use ES6 syntax?

import { list } from "regedit"; list([path], function(error:any, result:any){ 		... 	})
error msg:
TypeError: $u.inherits is not a function
at node_modules/stream-slicer/index.js (index.js:4:4)
at __require (chunk-JEXKZRFY.js?v=6827b305:12:50)
at node_modules/regedit/index.js (index.js:7:22)
at __require (chunk-JEXKZRFY.js?v=6827b305:12:50)
at index.js:573:1
(匿名) @ index.ts:107
I'm a back-end developer. I don't know much about this

are you using typescript ?

I used cool-admin template,  https://show.cool-admin.com/。  vue +ts + vite

stream slicer is a very old lib I wrote a long time ago (and ditched it a long time ago for better modules like split), anyways:

line 4 here just uses the built in nodejs util.inherits and while it's legacy, it's not deprecated... so honestly, this shouldn't happen.
Could you try running your code using node in command line (and nothing else no typescript or other things) see if it works?

look, everything is ok。  but  how to  use "import" , can you write a simple example?

this should work:
import { promisified as regedit } from 'regedit'

async function main() {
  await regedit.list()
}

main()


Missing trusted root certificate(s) error on Windows

Problem
Encountered the following error when starting the ombrac client on Windows
ombrac-client.exe --server-address example.com:443

thread 'main' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/s2n-quic-rustls-0.48.0/src/client.rs:50:14:
could not create default client: General("missing trusted root certificate(s)")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Additional
Can avoid this issue by specifying a certificate using the --tls-cert option, as shown in the command above.
ombrac-client.exe --server-address example.com:443 --tls-cert ./cert.pem

Looks like it's related to this s2n-quic-rustls


Disk option not available during create Kubernetes Services AKS and limited node pool option

There is no disk option when creating kubernetes services, it automatic uses the premium SSD with 100GiB and keep charging.
and
There is only limited option for the node pool. Why the node pool have limited option?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d501ff67-9208-8bcb-e8df-f09e9b16a802
Version Independent ID: e3fc3851-ddc4-d26c-251d-6ae53d714081
Content: Frequently asked questions for Azure Kubernetes Service (AKS)
Content Source: articles/aks/faq.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

@richieteh94 Thanks for your feedback. We are checking on this and will respond to you soon.

@richieteh94 I hope you created the cluster through portal. Please confirm.
In portal if you have selected the default size (Standard DS2 v2), you would get 30 GB disk space for the VM's.
Let me know the VM size which you selected.
Option for selecting the Node's disk size is not available in Portal. But you can use Azure CLI or Azure powershell or ARM template.
For example in CLI you need to use the switch --node-osdisk-size 30.
You can get all the available options from az aks create -h
There is a document which discusses about creating a AKS cluster with Azure cli. You can add the above switch to the command .
For testing 30 GB is fine. For production or QA workloads, We need at least 100 GB, Because we will be downloading lot of docker images image and each running image gets a temporary writing space from that hard disk.

@richieteh94
I think you are using the cluster for learning.
If you are worried about the cost, you can delete the cluster and create it on demand.
Creating the cluster takes around 10 minutes only.

@jakaruna-MSFT  thanks for the reply.
so if I want to create a custom Cluster with custom node and custom node pool I will need to create a custom ARM Template or use cli to create it

@richieteh94 You are right

@richieteh94 Multiple nodepools option is in preview now if you select nodrType as VMSS. You can check this out if this fits your scenario

@jakaruna-MSFT One more thing, what is the minimum requirement for the node? Because just now I tried to create with azure cli with --node-vm-size Standard_B1ms it show this error
Operation failed with status: 'Bad Request'. Details: The VM SKU chosen for this cluster Standard_B1ms does not have enough CPU/memory to run as an AKS node.

List of available VM Sizes are here.
One "Standard DS2 v2" is recommended for getting the cluster up and running.  Later you can increase the number of instances based on the load you are going to deploy on the cluster.
Standard_B1ms has only 2 GB of RAM and thats very low.

@jakaruna-MSFT  thanks for the support :)


⚠ deces.matchid.io search API has degraded performance

In 287261e, deces.matchid.io search API (https://deces.matchid.io/deces/api/v1/search?q=pompidou) experienced degraded performance:

HTTP code: 200
Response time: 3820 ms

Resolved: deces.matchid.io search API performance has improved in 37ac8c5 after 21 minutes.


Stock Market Trading Agent Using Deep Reinforcement Learning

Project Request
The project aims to develop a Stock Market Trading Agent using Deep Reinforcement Learning.

Field
Description

About
Develop a Stock Market Trading Agent using Deep Reinforcement Learning.

Github
ayush-09

Email
<EMAIL_ADDRESS>

Label
Project Request

Define You

[x] GSSOC Participant
[x] Contributor

Stock Market Trading Agent using Deep Reinforcement Learning

Description

The project involves developing an intelligent trading agent that utilizes Deep Reinforcement Learning techniques to make trading decisions in the stock market. The agent will learn from historical stock price data and use a reinforcement learning algorithm to optimize its trading strategy. The goal is to create a robust and profitable trading agent that can adapt to changing market conditions and make informed trading decisions.
Scope
Data preprocessing: The historical stock price data will be preprocessed to extract relevant features for training the trading agent.
Reinforcement Learning model: A Deep Reinforcement Learning model will be implemented to train the trading agent. The model will learn to maximize cumulative rewards by making buy/sell decisions based on the input features.
Trading strategy optimization: The trading agent will continuously optimize its trading strategy by adjusting its actions based on feedback from the market. This will involve exploring different trading policies and evaluating their performance.
Evaluation and analysis: The performance of the trading agent will be evaluated using various metrics, such as profitability, risk-adjusted returns, and comparison with benchmark strategies. The project will also include an analysis of the agent's behavior and decision-making process.
Timeline
End Date: as soon as possible(after assigned it to me)

@adithya-s-k Please assign this issue to me

I am thrilled to receive your project request!
To ensure the project runs smoothly, please follow all guidelines provided. If you are working on an AI, ML, or DL project, we kindly ask that you create a folder for your project within the respective folders and submit your progress accordingly.
Please do follow the project readme template
To ensure that everyone has a fair chance to participate, we kindly request that you complete 75% of the work within the first week of receiving the issue, and the remaining 25% within the next 3 days(10 days in total). If for any reason, you fail to meet this deadline, we will assign the task to someone else who is equally enthusiastic about contributing to this project.
If you have any questions, feel free to contact me via email or Discord or reach out to our team of project mentors.
Thank you for your contribution and let's make this project a huge success!


name 'np' is not defined - when calling TextPipelineArrayFeaturizer

I got the above error when calling TextPipelineArrayFeaturizer which never occurred before.
I thought numpy was one of the required modules?

You can see the full error in Example3 script

has to do with notebook PATH vs other python sys path.
Easy solution: just add   import numpy as np on the notebook for the time being.
I will find the way to auto-import np when loading any nlpfunctions submodule. It should happen beacuse its on init.py but somehow with notebooks it seems it doesnt.


Issue#45 Write an ADR about why we do open source development

#45

@RussellJimmies I keep getting notified for review requested but I see some of the conversations haven't been addressed yet. Can you convert it to draft until you've addressed the required changes?

Converted to Draft, haven't formatted to linewrap at column 80

@RussellJimmies waiting on you addressing my last review comment


Multi-member analysis

Number of CMIP6 models has now increased from ~40 to >250!

Right now the notebook 2_multigenerational_skill.ipynb is just a scatter plot of every realization, but later today I will make plots where I average the bias over all member_id realizations of a single source_id model (is there a good way to visualize the inter-member standard deviation / spread?)!


feat: @ComponentScan glob support

Summary
This PR enhances the @ComponentScan annotation in Koin Annotations to support glob patterns. Currently, @ComponentScan only allows specifying a single, exact package name per Koin module. With this change, developers can use wildcards (* and **) to scan multiple packages or subpackages in a more flexible and concise way.
Motivation
In modern, modular JVM applications, components (like services, repositories, or utilities) are often spread across multiple subpackages. The current @ComponentScan requires developers to either:

Create a Koin module for each subpackage, leading to module proliferation.
Place all components in a single package, which can become unwieldy.

By supporting glob patterns, we allow developers to organize their code more naturally without compromising on Koin's autowiring capabilities.
Implementation

Added GlobToRegex.kt utility:

Converts glob patterns to regular expressions.
Supports * (single-level) and ** (multi-level) wildcards.
Case-sensitive by default, as package names in JVM are case-sensitive.

Modified KoinMetaDataScanner and KoinMetaData:

Now uses custom extension function to interact with the GlobToRegex utility

Tests

Still passes

Examples
Before:
@ComponentScan("com.app.service")
class ServiceModule
@ComponentScan("com.app.service.user")
class UserServiceModule
@ComponentScan("com.app.service.order")
class OrderServiceModule

After:
@ComponentScan("com.app.service.**")
class ServiceModule

However we can still use:
@ComponentScan("com.app.core")
class CoreModule

Hello,
great addition. Could you add some local unit tests to help be sure we cover those regex?
Thanks 🙏

Of course, since all tests are located in modules within the examples module, I assume my tests should be placed there as well. Do you have any preferences regarding a specific module? Alternatively, would you prefer that I create a new module within examples for the regex testing, or should I create a new test source set for the koin-ksp-compiler module within the projects module?

@OffRange can you reupdate/rebase your branch?


Windows containers support

[x] New parameters in agent configuration:
docker.client.version
docker.client.os.arch
docker.server.version
docker.server.os.arch
I saved docker parameter for backward compatibility.
[x] New shells cmd.exe and powershell.exe
[x] Detection windows based containers
[x] Chown in windows based containers
[ ] Testing vagrant for regressions
[x] Testing in Windows server 2016 windows containers
[x] Testing in Windows server 2016 linux containers
- [ ] Testing in Windows server hyper-v containers (Outside of this pull request)
[x] Testing in Windows 10 windows containers
[x] Testing in Windows 10 linux containers
[x] Testing in Docker for Mac
[x] Testing in Ubuntu for regressions

@jonnyzzz do we need chown in windows based container? Right now this step looks like

@Elufimov we added chown to fix permissions on Linux containers. The fact is/was that all files that were created by the container were owned by root on the host. So build agent is unable to remove those files and it eventually it consumes whole free space with such files.
On macos there is no such issue.

I'd like to suggest to rename docker.server.* variables into docker.host.* to make them correspond to DOCKER_HOST environment variable. Also, it might be helpful to indicate if we have DOCKER_HOST variable configured for the agent.
There is also a problem with such parameters, since it is possible to change their value by settings up custom DOCKER_HOST environment variable. Overall it mays we shall respect custom DOCKER_HOST environment variable in compatibility between runner and agent checks.

What it the reason to have docker.*.os.arch? How one could use it?
Is that true that docker.client.os.arch === agent.os.arch, aka is the same as agent OS and version?

I am going to update this pull request during the next week. Thx for comment, I will try to resolve all of it.

About permission restoring. It also don't work on mac os. I did an simple experiment.

Start container
win docker run -v c:\:c:\temp -it microsoft/nanoserver:10.0.14393.693 cmd.exe
macos docker run -it -v /Users/elufimov/Documents/Projects/Temp/:/temp ubuntu /bin/bash
Create file in volume
win echo 1 > C:\ temp\1.txt
macos echo 1 > /temp/1.txt
Check permission
windows

$ icacls c:\1.txt
c:\1.txt NT AUTHORITY\SYSTEM:(I)(F)
         BUILTIN\Administrators:(I)(F)
         BUILTIN\Users:(I)(RX)
         S-1-5-93-2-1:(I)(F)

Successfully processed 1 files; Failed processing 0 files

macos
 elufimov@MacBook-Pro-Michael  ~  ls -l /Users/elufimov/Documents/Projects/Temp/1.txt
-rw-r--r--  1 elufimov  staff  2 Feb 19 13:57 /Users/elufimov/Documents/Projects/Temp/1.txt

I can edit and delete those files from hosts systems.

Another experiment.
Windows 10 pro and Docker for Windows 1.3.1

Open two powershell terminals
Run docker -H npipe:////./pipe/docker_engine_windows run -it microsoft/nanoserver:10.0.14393.693 cmd.exe in one of them
Run docker -H npipe:////./pipe/docker_engine run -it ubuntu /bin/bash in another one in the same time
They both start correctly

I did not find any official documentation on this feature. This mean that it can changes in any moment. But it opens great for people who use windows 10/windows server 2016 as build agents. What do you think about that?

A great thing. I would concentrate on most trivial solution first to get
more feedback from plugin users. We may have this as optional feature for
sure. Still having in mind this is not documented behavior we have risks
the plugin is broken suddenly
On Feb 23, 2017 10:01, "Michael Elufimov"<EMAIL_ADDRESS>wrote:

Another experiment.
Windows 10 pro and Docker for Windows 1.3.1

Open two powershell terminals
Run docker -H npipe:////./pipe/docker_engine_windows run -it
microsoft/nanoserver:10.0.14393.693 cmd.exe in one of them
Run docker -H npipe:////./pipe/docker_engine run -it ubuntu
/bin/bash in another one in the same time
They both start correctly

I did not find any official documentation on this feature. This mean that
it can changes in any moment. But it opens great for people who use windows
10/windows server 2016 as build agents. What do you think about that?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jonnyzzz/TeamCity.Virtual/pull/51#issuecomment-281934175,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPpryyG2FMYjFoCNJ5c2xTS48ZnJu1Bks5rfUrPgaJpZM4L3d9w
.

Yes, of course. If you do not have new comments about code itself I will test rest of the cases.

Please do. I'll review new changes too :)
On Feb 23, 2017 10:12, "Michael Elufimov"<EMAIL_ADDRESS>wrote:

Yes, of course. If you do not have new comments about code itself I will
test rest of the cases.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jonnyzzz/TeamCity.Virtual/pull/51#issuecomment-281936674,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPpr91xQvi2meJmig8BF_HKx2HJw343ks5rfU1sgaJpZM4L3d9w
.

I think I have tested all docker cases. Can you help me with testing of vagrant regression? I do not use it in production actually.

There is one more thing to check:
Suppose one has an installation of TeamCity with Windows/Linux agents with Docker. Overall 3 possible combinations: Host={Windows} x Container={Windows;Linux} + Host={Linux} x Container={Linux}.
Next, suppose the older version (Linux-Linux only) of the plugin was installed. Say one upgrades the plugin to one supporting Windows too. We must make sure their builds will still be running only on Linux agents, and their agent requirements are not broken too.
The is backward compatibility requirement. There are huge TeamCity setups with hundreds of build configurations and it's impossible to fix side-effects of a plugin update.

He guys, how are things going? Looks like you are almost there! Keep up the great work!
If you'd like some testing drop, feel free to release an alpha or beta release

I'm also interested to take this for a spin using Docker for Windows.

Is this dead? /complete ?

Many similar features of this plugin are now available out of the box in
TeamCity. This plugin is not actively developed or supported right now. You
may do a pull request if you like or fork it entirely.


export validations as individual functions

@MarcoWorms what do you mean?

That we should export our validation functions individually instead of using an object interface


Correct Last Supported Version for grpc on Python 3.7

Overview

grpcio dropped support for Python 3.7 in v1.63.0. Setting package versions in tests to last compatible release when run with 3.7.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 81.21%. Comparing base (7d6da2c) to head (3a998d3).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1242      +/-   ##
==========================================
- Coverage   81.33%   81.21%   -0.12%
==========================================
  Files         198      198
  Lines       21682    21682
  Branches     3431     3431
==========================================
- Hits        17636    17610      -26
- Misses       2918     2941      +23
- Partials     1128     1131       +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[Feature Request] Sorting subcategories

Thanks for the great work!
Currently, if a particular custom node has multiple levels of categories, the categories inside are exposed to the outside.
It would be very useful if these subcategories could be collapsed!

I think it would be more convenient to organize custom nodes that have multiple categories like this.

I think it would be more convenient to organize custom nodes that have multiple categories like this.

Can you tell me how you made the picture you posted on March 25, 2024

after like, forever, i did it!!

after like, forever, i did it!!

Thank you very much! But the position of the search box is strange.


delete crypto internal and use flow-go/crypto

Closes: https://github.com/onflow/flow-go-sdk/issues/113
Description

deletes the crypto internal folder
uses flow-go/crypto without breaking changes to the SDK api.

Closing in favour of #118


Added timeouts to github actions

Summary
No need for actions running hour after hour - doing nothing  🌎  ☘

There is no problem with a never-ending timeout, so I don't see the value of these changes. Could you explain your motivation?

Global warming?!?  Why cook the planet with tests that do not deliver value?


Update shards, dynamically create logs folder, fix stylesheets path and add error handling

Hi,
This pull request has some minor fixes to issues that crashed the app when I tried to run it locally. These are the changes included in this pull request:

Update shards
Dynamically create logs folder
Fix stylesheets path
Add error handling

Andrés

Very Nice!  Thanks.


Make sure vector_table is correctly exported

It needs to be a non-comptime var for @export to work properly.
The only 'documentation' for this behavior currently seems GitHub comment
https://github.com/ziglang/zig/issues/5157#issuecomment-618933196 .
This issue was introduced in 1c17304 for PR #27,
which broke at least ARM-based STM32F303.

Replaced by better #34, closing.


Introduce a translation interface from variables to files

In order to simplify the look up of variables of the two scripts, we need to have a interface_ece4.yml which handle all the common information.

Interface file created and used for performance indices, see 721a7e2b7c42e8f3110156fb718b13cdec664420 in branch interface
The interface file might include also extra information as if a variable is on surface or pressure level, but so fare everything is specified via the component and filetype keys.
Need to include it also in the global_means but due to the new class definition we might risk file conflicts

In f9f4d4cb3663bb1b7049601f20c6facd2d299b3a update also for global means
A couple of open questions

what to do with domain specific variable as pme_land. They should not be in the interface.
What to do with the units: do we need a value in the interface or this is an info for the reference.yml and pi_climatology.yml. Especially if #9 this is implemented, we might not need a half-way tool..

This can be closed following 225e393a993800898e46480a86e6e71aafcf8adb


The collection-type on DITA Map should affects all topics from the map

Reading the DITA 1.3 documentation, it is not very clear if the collection-type attribute on a DITA map should cascade to all topicrefs from the DITA map or other referenced DITA map.
https://www.oxygenxml.com/dita/1.3/specs/archSpec/base/ditamap-attributes.html
So, for the next DITA map:
<map collection-type="sequence">
 <title>Sample DITA map</title>

 <topicref href="topic-A.dita">
  <topicref href="topic-A1.dita"/>
  <topicref href="topic-A2.dita"/>
 </topicref>

 <topicref href="topicB.dita"/>
</map>

I expected to find in the XHTML ouput the next links between topics:
topic-A --next--> topic-A1 --next--> topic-A2 --next--> topic-B
topic-B --prev--> topic-A2 --prev--> topic-A1 --prev--> topic-A
For the moment, only the topics from the first level of the DITA map are affected by this property:
topic-A --next--> topic-A1
topic-B --prev--> topic-A2
Should the collection-type value cascade to all topicrefs when it is set on a DITA map?

The @collection-type attribute does not cascade within a map. It is not listed among the attributes that cascade: http://docs.oasis-open.org/dita/dita/v1.3/os/part1-base/archSpec/base/cascading-in-a-ditamap.html
I think a link sequence like that makes sense for some scenarios, but is not the default behavior expected for this attribute.


Removed wrong admonition in argon2 docs.

This does not seem to be true, python -m argon2 lists KiB:
python -m argon2 -m 512
Running Argon2id 100 times with:
hash_len: 16 bytes
memory_cost: 512 KiB
parallelism: 8 threads
time_cost: 2 iterations

And we use them as such:
https://github.com/hynek/argon2-cffi/blob/b42a51818d1180637bd3a9e99c0d1de87d511a51/src/argon2/_password_hasher.py#L40
https://github.com/django/django/blob/258c88a913fe1e7704cdb6f61c6ceb7493f6092a/django/contrib/auth/hashers.py#L311-L319

This was originally changed in https://code.djangoproject.com/ticket/26635 -- now I am even more confused :/

I've mixed up the argon2-cffi cli and the argon2 cli, the comment is still correct!

That said the CLI nowadays has both options:
	-m N		Sets the memory usage of 2^N KiB (default 12)
	-k N		Sets the memory usage of N KiB (default 4096)


Add []math command

Uses LaTeX renderer (provided by CSharpMath lib) to render the input as an image.
Bot replies with the result as a file attachment.
Dependencies added:

CSharpMath
CSharpMath.SkiasHARP
System.Drawing.Common

Current aliases: maths, eq, equation, tex, latex

Yes please! Solution to #262 aswell! :D

Ran benchmarks. These were the results:
|      Method |                input |     Mean |     Error |    StdDev |   Gen 0 |  Gen 1 | Gen 2 | Allocated |
|------------ |--------------------- |---------:|----------:|----------:|--------:|-------:|------:|----------:|
| RenderLatex | \sin((...)2n+1} [61] | 3.619 ms | 0.0561 ms | 0.0525 ms | 35.1563 | 3.9063 |     - | 161.93 KB |

The source:
[Benchmark]
[Arguments(@"\sin(x) = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}")]
public void RenderLatex(string input)
{
    if (!TryRender(input, out var originalImage, out var _))
    {
        return;
    }

    using var image = AddPadding(originalImage);
    using var stream = GetImageStream(image);
}

(As closely identical to the BrackeysBot implementation as I could get it)


crash in igw_gateway (tgt) | configure iscsi target (gateway)

Using latest dev builds of nautilus + ceph-ansible/stable-4.0 git + ceph-iscsi 3.0 latest
Playbook crashes with the followin stacktrace:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'iqn.2003-01.com.redhat.iscsi-gw:th'
fatal: [hpceph03]: FAILED! => changed=false
module_stderr: |-
Traceback (most recent call last):
File "", line 113, in
File "", line 105, in _ansiballz_main
File "", line 48, in invoke_module
File "/tmp/ansible_igw_gateway_payload_FTb7IO/main.py", line 135, in
File "/tmp/ansible_igw_gateway_payload_FTb7IO/main.py", line 105, in ansible_main
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 542, in manage
self.update_acl(config)
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 233, in update_acl
target_config = config.config["targets"][self.iqn]
KeyError: 'iqn.2003-01.com.redhat.iscsi-gw:th'
module_stdout: ''
msg: |-
MODULE FAILURE
See stdout/stderr for the exact error
rc: 1
To be honest, i don't know if it is a bug in ceph-ansible or ceph-iscsi ?

that's probably on ceph-ansible side because we're using custom ansible modules for ceph iscsi (like igw_gateway) and this has been tested only with 2.x so if the ceph iscsi python binding changed in 3.x that could be related.
The question is maybe more about do we support ceph iscsi 3 with stable-4.0
@guits wdyt ?

Doesn't it also depend on which version of ceph-iscsi should be used together with nautilus ?
Maybe @mikechristie has some input on this ?

@hoerup looks like your ceph-iscsi configuration is outdated.
What is the output of # gwcli / export copy | grep version? It should be '"version": 8'.
If the config is outdated you have to restart the rbd-target-api service to see it updated.

@ricardoasmarques my/our question to you was more on which version of ceph-iscsi should ceph-ansible use for 4.0/nautilus (currently their modules are developed for ceph-iscsi 2.x)

@hoerup For Nautilus you should use 3.x release  because Ceph Dashboard will not work with 2.x). But unfortunately, ceph-iscsi 3.0 (the latest available release) has a bug that was fixed on PR https://github.com/ceph/ceph-iscsi/pull/52, so you have to wait for ceph-iscsi 3.1 or use the latest code from ceph-iscsi master branch directly.

@dsavineau it seems that ceph-iscsi 3.x is the choice for Nautilus/stable-4.0

I fixed the python code according to PR ceph/ceph-iscsi#52, but the problem still exists:
KeyError: 'iqn.2003-01.com.redhat.iscsi-gw:ceph-igw'
The full traceback is:
Traceback (most recent call last):
File "", line 113, in
File "", line 105, in _ansiballz_main
File "", line 48, in invoke_module
File "/tmp/ansible_igw_gateway_payload_pFM8vT/main.py", line 135, in
File "/tmp/ansible_igw_gateway_payload_pFM8vT/main.py", line 105, in ansible_main
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 540, in manage
self.update_acl(config)
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 233, in update_acl
target_config = config.config["targets"][self.iqn]
KeyError: 'iqn.2003-01.com.redhat.iscsi-gw:ceph-igw'
fatal: [iscsi2]: FAILED! => changed=false
module_stderr: |-
Traceback (most recent call last):
File "", line 113, in
File "", line 105, in _ansiballz_main
File "", line 48, in invoke_module
File "/tmp/ansible_igw_gateway_payload_pFM8vT/main.py", line 135, in
File "/tmp/ansible_igw_gateway_payload_pFM8vT/main.py", line 105, in ansible_main
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 540, in manage
self.update_acl(config)
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 233, in update_acl
target_config = config.config["targets"][self.iqn]
KeyError: 'iqn.2003-01.com.redhat.iscsi-gw:ceph-igw'
module_stdout: ''
msg: |-
MODULE FAILURE
See stdout/stderr for the exact error
rc: 1
iscsigws.yml

gateway_iqn: "iqn.2003-01.com.redhat.iscsi-gw:ceph-igw"
gateway_ip_list: <IP_ADDRESS>,<IP_ADDRESS>
rbd_devices:
  - { pool: 'rbd', image: 'ansible1', size: '30G', host: 'iscsi1', state: 'present' }

I have no acl defined in the yml-file.

@dnehring7 I'm not familiar with ceph-ansible, but it really looks like the ceh-iscsi internal config (the gateway.conf rados object) is outdated. You should consider checking this https://github.com/ceph/ceph-ansible/issues/3870#issuecomment-486289292.

`root@iscsi1:~# gwcli / export copy | jq -r '.["version"]'
8
root@iscsi1:~# rpm -q ceph-iscsi
ceph-iscsi-3.0-25.gd17fe4c.el7.noarch
root@iscsi1:~# gwcli ls
o- / ..................................................................... [...]
o- cluster ..................................................... [Clusters: 1]
| o- ceph ........................................................ [HEALTH_OK]
|   o- pools ...................................................... [Pools: 5]
|   | o- .rgw.root ........ [(x3), Commit: 0.00Y/2711357696K (0%), Used: 768K]
|   | o- default.rgw.control  [(x3), Commit: 0.00Y/2711357696K (0%), Used: 0.00Y]
|   | o- default.rgw.log . [(x3), Commit: 0.00Y/2711357696K (0%), Used: 0.00Y]
|   | o- default.rgw.meta  [(x3), Commit: 0.00Y/2711357696K (0%), Used: 0.00Y]
|   | o- rbd ...... [(x3), Commit: 0.00Y/2711357696K (0%), Used:<PHONE_NUMBER>7b]
|   o- topology ............................................ [OSDs: 4,MONs: 3]
o- disks ................................................... [0.00Y, Disks: 0]
o- iscsi-targets ........................... [DiscoveryAuth: None, Targets: 0]
`
I can see no problems so far.

Hmm are we sure that the ceph-iscsi RPM has picked up the right files from git ? Because the stacktrace lines from dnehring7 doesnt seem to correspond with the lines from https://github.com/ceph/ceph-iscsi/blob/master/ceph_iscsi_config/target.py
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 540, in manage
self.update_acl(config)
File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 233, in update_acl
target_config = config.config["targets"][self.iqn]
https://github.com/ceph/ceph-iscsi/blob/master/ceph_iscsi_config/target.py#L540
https://github.com/ceph/ceph-iscsi/blob/master/ceph_iscsi_config/target.py#L233

Also, if you reached the target.py#L540 it would be expected that target iqn.2003-01.com.redhat.iscsi-gw:ceph-igw already exists in the configuration but I see zero targets on your # gwcli ls.
@hoerup - agree, looks like we are using the wrong files here.

@hoerup Yes, it the current version from
https://3.chacra.ceph.com/r/ceph-iscsi/master/d17fe4c0f432f12e0868b284e991b06e4b7ad116/centos/7/flavors/default/noarch/ceph-iscsi-3.0-25.gd17fe4c.el7.noarch.rpm
The message was from yesterday (old version), now it's line 545:
     File "/usr/lib/python2.7/site-packages/ceph_iscsi_config/target.py", line 545, in manage         target_config = config.config["targets"][self.iqn]     KeyError: 'iqn.2003-01.com.redhat.iscsi-gw:ceph-igw'
Line 233 seems to be not in the traceback anymore.

Sorry for the late reply. I do not think ceph-iscsi will work well with ceph-ansible for the target/lun/client setup/management. We are in the process of moving away from ceph-ansible for target/lun/client setup and only use ceph-ansible for the installation. You would then use gwcli or dashboard to create/manage targets/luns/clients.
So if using ceph-ansible and ceph-iscsi the iscsigws/iscsi-gws.yml file should not be used for target/lun/client setup. You would need to use the older ceph-iscsi-config package.

@mikechristie so, does it mean that

the ceph-ansible iscsi setup for non-containerized deployment, should stop after the packages is installed and services are enabled and running
docs http://docs.ceph.com/docs/master/rbd/iscsi-target-ansible/ should be cleaned up accordingly

It seems that ceph-ansible has problems with setup the initial configuration. I do a manual setup of the iscsi-gw:
`gwcli
cd /iscsi-targets
create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw
cd iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/gateways
create iscsi1 <IP_ADDRESS>
create iscsi2 <IP_ADDRESS>
cd /disks
create pool=rbd image=ansible1 size=30G
cd /iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/hosts
create iqn.1994-05.com.redhat:c73d51e71e4a
auth username=myusername password=mysecret
disk add rbd/ansible1
`
After that, ceph-ansible accepts the configuration. It's not possible for me to create an initial bootstrap setup with ceph-ansible, even without initiator config.

@mikechristie so, does it mean that

the ceph-ansible iscsi setup for non-containerized deployment, should stop after the packages is installed and services are enabled and running
docs http://docs.ceph.com/docs/master/rbd/iscsi-target-ansible/ should be cleaned up accordingly

Yes. I am testing a patch for ceph-ansible.

After that, ceph-ansible accepts the configuration. It's not possible for me to create an initial bootstrap setup with ceph-ansible, even without initiator config.

I did not understand this last part of the comment. You are only installing the ceph iscsi rpms and it is only setting up the daemons/containers right?
You are not having ansible setup the targets/luns/initiators correct?
What is failing?

Yes. I am testing a patch for ceph-ansible.
Ok - I was just waiting for confirmation on my assumptions before starting of a patch of my own. But if you already have a patch in pipeline then i'll just wait for that one instead.

@mikechristie, ceph-ansible installs ceph-iscsi and tcmu-runner, but the initial configuration is broken (see my comments above, python errors while installing). When I manually configure gwcli (target, target IPs), ceph-ansible runs flawlessly afterwards. I try to track down the problem:

Remove manually the gwcli-configuration
on both iscsi-gateways: yum remove tcmu-runner ceph-iscsi
on the ansible host

cat group_vars/iscsigws.yml
gateway_iqn: "iqn.2003-01.com.redhat.iscsi-gw:ceph-igw"
gateway_ip_list: <IP_ADDRESS>,<IP_ADDRESS>
trusted_ip_list: <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>

ansible-playbook -i inventory site.yml

Result: broken gwcli-config
root@iscsi2:~#  rpm -q ceph-iscsi
ceph-iscsi-3.0-25.gd17fe4c.el7.noarch
root@iscsi2:~#  rpm -q tcmu-runner
tcmu-runner-1.4.1-1.el7marcant.x86_64
root@iscsi2:~# gwcli ls
o- / ..................................................................... [...]
  o- cluster ..................................................... [Clusters: 1]
  | o- ceph ........................................................ [HEALTH_OK]
  |   o- pools ...................................................... [Pools: 5]
  |   | o- .rgw.root ........ [(x3), Commit: 0.00Y/2670874368K (0%), Used: 768K]
  |   | o- default.rgw.control  [(x3), Commit: 0.00Y/2670874368K (0%), Used: 0.00Y]
  |   | o- default.rgw.log . [(x3), Commit: 0.00Y/2670874368K (0%), Used: 0.00Y]
  |   | o- default.rgw.meta  [(x3), Commit: 0.00Y/2670874368K (0%), Used: 0.00Y]
  |   | o- rbd ..... [(x3), Commit: 0.00Y/2670874368K (0%), Used:<PHONE_NUMBER>61b]
  |   o- topology ............................................ [OSDs: 4,MONs: 3]
  o- disks ................................................... [0.00Y, Disks: 0]
  o- iscsi-targets ........................... [DiscoveryAuth: None, Targets: 0]

Now I have to fix the iscsi-targets configuration manually.

@mikechristie is the before-mentioned patch available a place where I can see it ?

Ah I see what you mean. Above when I was saying you cannot use ansible to setup the targets and related iscs/scsi objects I meant you cannot have lines like this:
gateway_iqn: "iqn.2003-01.com.redhat.iscsi-gw:ceph-igw"
gateway_ip_list: <IP_ADDRESS>,<IP_ADDRESS>
in your example. But I am guessing you added them because ansible will report errors about not having them right now.
I will post what I have today. I was just waiting to hear back from Sebastien and Guillaume about if they wanted me to rip out all target/lun/client and ceph-iscsi-config/cli related support or leave it for old setups and then add some sort of compat/detection code for newer setups that will use the ceph-iscsi package.


scale out from 2 to 3 CDC nodes doesn't improve pull speed

What did you do?

TiDB cluster with 1 CDC nodes, there is a big table with ~160K regions
Create a Kafka changefeed with region-per-span = 25000, check pull performance
Add one more CDC node, and re-create the changefeed with same configuration, and check pull performance
Add one more CDC node, and re-create the changefeed with same configuration, and check pull performance

What did you expect to see?
Shen scale out from 2 CDC node to 3 CDC nodes, pull performance should increase
What did you see instead?
Pull time changes as below when scale out CDC:
1 CDC: 15min
2 CDC: 8min
3 CDC: 7min

1 CDC

2 CDC

3 CDC

Versions of the cluster
TiCDC version (execute cdc version):
Release Version: 6.6.0-alpha
Git Commit Hash: 5444d2361c03bab714730456fb46768725ca7131
Git Branch: kafka-use-cached-topic-partition
UTC Build Time: 2023-02-13 04:41:15
Go Version: go version go1.19.1 linux/amd64
Failpoint Build: false

From the metrics, we find TiKV ongoing scan tasks is full (by default 6), so the pull speed does not change.

Closed, see my previous comment.