rabbitmq-ha fails with "attempt to grant extra privileges"

Is this a request for help?:
Yes
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT

Version of Helm and Kubernetes:
$ helm version
Client: &version.Version{SemVer:"v2.8.0", GitCommit:"14af25f1de6832228539259b821949d20069a222", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.0", GitCommit:"14af25f1de6832228539259b821949d20069a222", GitTreeState:"clean"}

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T10:09:24Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"7+", GitVersion:"v1.7.12-gke.0", GitCommit:"f4f0bedb82a57dc32b21b8f15fe01e0b8411356b", GitTreeState:"clean", BuildDate:"2018-01-05T03:35:43Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Which chart:
stable/rabbitmq-ha
What happened:
When I run helm install stable/rabbitmq-ha  I got the following error
Error: release telling-lamb failed: roles.rbac.authorization.k8s.io "telling-lamb-rabbitmq-ha" is forbidden: attempt to grant extra privileges: [PolicyRule{Resources:["endpoints"], APIGroups:[""], Verbs:["get"]}] user=&{system:serviceaccount:kube-system:default 3e676c1b-06b5-11e8-9b60-42010a8001ce [system:serviceaccounts system:serviceaccounts:kube-system system:authenticated] map[]} ownerrules=[PolicyRule{Resources:["selfsubjectaccessreviews"], APIGroups:["authorization.k8s.io"], Verbs:["create"]} PolicyRule{NonResourceURLs:["/api" "/api/*" "/apis" "/apis/*" "/healthz" "/swaggerapi" "/swaggerapi/*" "/version"], Verbs:["get"]}] ruleResolutionErrors=[]

What you expected to happen:
Successful installation.
How to reproduce it (as minimally and precisely as possible):
Trying to install rabbitmq-ha on Google Kubernetes Engine.
Anything else we need to know:

This is not a specific RabbitMQ installation issue, but it's related to GKE.
See this thread on Stackoverflow:
https://stackoverflow.com/questions/44349987/error-from-server-forbidden-error-when-creating-clusterroles-rbac-author
So what you need to do is create a rolebinding for your own account which grants enough privileges to install the chart.

Thanks @bggpoort, besides that, I had to run the following command:
kubectl create clusterrolebinding add-on-cluster-admin  --clusterrole=cluster-admin  --serviceaccount=kube-system:default

@skhaz I would not advice giving cluster-admin rights to your default serviceaccount. This charts has options for role based access control so my suggestion is to use that instead.

So this issue is not fixed?

Running into this issue with minikube - without RBAC configured.

+1


Pretty xml

Ah sorry, forgot to commit the new files.

Ok, I reconsidered my decision and think that this is not appropriate because we misuse XML structure and introduce a new XML level just to establish pretty printing.
I will give you a different solution in a few minutes.

Please consider https://github.com/RUB-NDS/ModifiableVariable/tree/prettyXml2
What do you think?

I agree. I'd prefer your solution, too. Adding a ByteArrayXmlType is not so nice


Done Button should appear on last screen of whatsnew

Description
LEARNER-2491

What's New - 'Done' button should not appears on every screen

Codecov Report

Merging #1004 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #1004      +/-   ##
==========================================
- Coverage   45.75%   45.74%   -0.01%
==========================================
  Files         407      407
  Lines       27071    27075       +4
==========================================
  Hits        12385    12385
- Misses      14686    14690       +4

Impacted Files
Coverage Δ

Source/WhatsNewViewController.swift
65.33% <0%> (-1.79%)
:arrow_down:

Continue to review full report at Codecov.

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

@saeedbashir I have fixed the comment. Thanks


Lines are replaced by some Vim commands

I want to format a file, this line:
build-depends:      base, hspec, QuickCheck, rangit, AC-Angle, HUnit, utility-ht

should be:
build-depends:      base
                  , hspec
                  , QuickCheck
                  , rangit
                    ...

I tried this: 0f,v<C-n>…<C-n>I<CR>
Result: :call <SNR>68_apply_user_input_next('i') (in each new line)
I also tried this: 0f,<C-v><C-n>…<C-n>I<CR>
Same result.
I also tried insert with i (lower case): cannot be replayed at 3 curser positions
What am I doing wrong?

Creating multiple cursors leaves you in vim's visual block mode, not in vim's normal mode. Pressing i in visual block mode in vim does nothing. To get to insert mode properly, you'll need to press v first to switch from visual-block to normal, e.g. something like
<C-n>...<C-n>vi<CR>.

That works. Thank you!
I still do not understand why capital I does not work. It usually does in Vim's visual block mode.
Also I would find it incredibly useful if the Vim command sequence was written below each GIF in the README. It took me a while to find out that I first have to press v on the comma to be able to use <C-n> (like in the GIF). I can try to make a patch for the README.

The lack of I is bug, #55 which I've never been able to figure out. PRs to improve the README would be very welcome!


[Spike] Investigate a security threat model for devfiles org

Which area this user story is related to?
/area api
/area library
/area registry
/area alizer
/area landing-page
Issue description
As part of our security policy, recommended by the CLO Monitor best practices, we could implement a security threat model so we can understand better threats and mitigations within the devfiles org. A useful resource shared by cncf.io is https://www.cncf.io/blog/2023/03/16/threat-modeling-to-cloud-native-we-need-a-new-approach/.
This issue focuses only in the investigation around a potential security thread model which could be followed by the devfiles team.
Acceptance Criteria

[ ] Decide if a threat model is a requirement for the devfiles org.
[ ] If it is a requirement, the results of investigation have been shared.

After going through the existing documentation over the threat model documents, I'm leaning towards not to continue with the threat model documentation for the CNCF tasks for the devfile org.  It seems to me that this model can be applied better when the model is describing a tree for a whole system (e.g for a platform like openshift or maybe RHTAP).
My main thought is that the majority of the repos are services/tools used by other architectures/platforms etc and their use cases might not even be connected. So each case might need to have a different threat-model. For example we might need a different threat model for cases like odo and che as they are using different tools libraries/features inside the devfiles org.
That, said I think for now is better to focus on the Security.md side which will describe a process of how someone can report a vulnerability found for the devfiles org.
cc @michael-valdron @Jdubrick wdyt?

Closing the investigation item, feel free to re-open if you think a threat-model is needed for the devfiles org.


Use Algolia Crawler based index

It turns out wowchemy doesn't support Algolia Netflify Plugin
https://www.algolia.com/doc/tools/crawler/netlify-plugin/quick-start/


Elasticsearch 6.* trouble with include_type_name

After last upgrade capability of use older elasticsearch ( 6.2.3) in my case is throublesome
I followed all instructions with no werid stuff and got error:
   Elasticsearch\Common\Exceptions\BadRequest400Exception  :
  {"error":{"root_cause":
  [{"type":"illegal_argument_exception","reason":"request
  [/test_rs_user_write/_mapping/test_rs_users] contains unrecognized parameter:
  [include_type_name]"}],"type":"illegal_argument_exception","reason":"request
  [/test_rs_user_write/_mapping/test_rs_users] contains unrecognized parameter:
  [include_type_name]"},"status":400}

Apartntly include_type_name was added recently. Shouldn't it be back compaiible?

Sorry to bother. I noticed that elasticsearch package is 7.0.0 when switching from 3.10 to 3.11

hey @shortcodes, actually you are right and this is my fault - if it's not back compatible, I had to release v4.
It's kind of late to do that, so I'll try to make it clear in the README file.

@babenkoivan What are the steps to go back? Just replace the compose.json to 3.10?

Hi guys, sorry for the inconvenience. We decided to revert ES7 breaking changes in the new v3.12 and release ES7 support in v4.0. I'll need to run composer update to fix the issue.

Just released v3.12.0, please update the package and open the new thread if if you have any issues.


Incompatibility with Istio 1.1

With Istio 1.1 none of the available istio-mixer images (https://console.cloud.google.com/gcr/images/apigee-api-management-istio/GLOBAL/istio-mixer) work, even the one that is tagged as 1.1.0-test, which should theoretically work with Istio 1.1.x.
The mixer container fails to start up with the following error:
Error: unknown flag: --useAdapterCRDs
Usage:
  mixs server [flags]

Hey Carlos,
You are correct, there are no images appropriate for use in Istio 1.1 - and this is intentional. The old model of providing a custom mixer image for adapters has been deprecated in favor of Istio 1.1's new ability to work with adapters running as external gRPC services.
With Istio 1.1 being nearly ready, I've been testing against the latest builds and preparing for a new release of Apigee Mixer Adapter. I'll be adding more complete documentation and cutting a 1.1 release for this as soon as Istio 1.1 ships, but if you'd like to try it out as a kind of pre-release, you can take a look here. Everything should work with the existing 1.0.6 release apigee-istio binary and you should be able to apply these files in Istio 1.1 without re-provisioning Apigee. If you decide try it, let me know how it goes!

Thanks a lot, I hadn't noticed the grpc folder under samples.
I got it to work without much hassle but one thing I couldn't really figure out is why the following errors are logged every 7 and 3 seconds, like the following:
2019-03-04T22:30:05.616627Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:12.881231Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:15.613596Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:22.882602Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:25.632588Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:32.889118Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:35.615322Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:42.897009Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:45.617869Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:52.883491Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2019-03-04T22:30:55.617090Z	info	transport: loopyWriter.run returning. connection error: desc = "transport is closing"

I noticed the same thing in two clusters where I applied this but I can't see anything that's failing because of these errors either.

Thanks, Carlos. I believe this is because of K8s health checks, it shouldn't affect operation. I'll look into it.

Hey Carlos, I haven't been able to resolve this logging issue so I suggest you just remove the probes for now. Example: https://github.com/apigee/istio-mixer-adapter/blob/1.1.0-prep/samples/apigee/grpc/apigee-adapter.yaml. I'll open a separate issue to track longer term.


Connection pool fills up without releasing connections

I have an express server written in typescript where I'm providing a global instance of the connection pool through a module:
const DB_RECONNECT_TIMEOUT = 10000;

const DbConnection = mysql.createPool(DatabaseConf);

// Ping database to check for common exception errors.
const ConnectionPing = () => DbConnection.getConnection((err, connection) => {
  ...
});

ConnectionPing();

export default DbConnection;

I have multiple interfaces that query the database through a Pool | PoolConnection object. When the Pool is directly used a single query is performed through the whole request/response lifecycle, otherwise a connection is requested and released as shown in this example:
return new Promise((resolve, reject) => {
    DbConnection.getConnection((err, connection) => {
        if(err) return reject(new DatabaseError(err));
        AuthDbInterface.getEmailTokenByToken(connection, emailToken)
            .then(token => UserDbInterface.setUserVerifiedByEmail(connection, token.email, 1))
            .then(res => AuthDbInterface.deleteEmailTokenByToken(connection, emailToken))
            .then(res => resolve())
            .catch(reject)
            .finally(connection.release);
    });
});

By monitoring the connections on the database side I can see the connection count increase until the connection pool reaches its limit, and at that point every further request to the server that goes through a DB connection will hang indefinitely.
Initially the pool size was of 50 but I also tried 10 and the only difference I found is that it takes only 10 connections to hang up the server.
I suppose the connection pool should reuse the connections when they are released, so if there are 10 concurrent requests then 10 connections are created but when some of them are released, any further request should use one of the free connections in the pool.
This is not my case though since the connection count will increase even if the requests are spaced in time, and they are never dropped, forcing me to restart the app to get it working again.

Are you sure you are actually releasing the connections back to the pool? Your code provided so far would not do that, as there is a simple javascript mistake that would keep it from happening:
.finally(connection.release)

Needs to be written as either .finally(connection.release.bind(connection)) or .finally(() => connection.release())

Omg, I suppose that switching between java and javascript/typescript without reviewing the basics has its (avoidable) consequences! Thank you very much for the heads-up.


Remove and fix some TODOs that exist in the code

Problem
Some TODOs exist in our code that are not helpful or are not consistently labeled.
This is coming from my large refactoring PR in an attempt to break it down into smaller pieces
Why this is important
It creates confusion and inconsistency
Solution
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01329374af863b4abc
Upwork Job ID:<PHONE_NUMBER>816800768
Last Price Increase: 2023-10-18

We don't need a C+ for this since it won't change any functional code. Removing @cubuspl42

This was done internally so there are no payments.


Inexistent Address Validation

NFH-01S: Inexistent Address Validation

Type
Severity
Location

Input Sanitization
Minor
NFTHolderCondition.sol:L33-L52

Description:
The input address arguments are not properly sanitized against the zero-address.
Example:
function initialize(
    address _owner,
    address _conditionStoreManagerAddress,
    address _didRegistryAddress
)
    external
    initializer()
{
    require(
        _didRegistryAddress != address(0) &&
        _conditionStoreManagerAddress != address(0),
        'Invalid address'
    );
    OwnableUpgradeable.__Ownable_init();
    transferOwnership(_owner);
    conditionStoreManager = ConditionStoreManager(
        _conditionStoreManagerAddress
    );
    nftRegistry = ERC1155BurnableUpgradeable(_didRegistryAddress);
}

Recommendation:
We advise such validation to be introduced to avoid misconfiguration of the system.

fixed


typo programs_database.py

Can you add issues?
I wonder how to stop this program if I run it under nohup @jianghoy ?

Will do tomorrow. I'll find some time to test nohup this weekend as well
Eric Rubiel @.***> 于2024年4月5日周五 10:42写道：

Can you add issues?
I wonder how to stop this program if I run it under nohup @jianghoy
https://github.com/jianghoy ?
You can view, comment on, or merge this pull request online at:
https://github.com/jianghoy/funsearch/pull/2
Commit Summary

36d5a79
https://github.com/jianghoy/funsearch/pull/2/commits/36d5a791fd672ed46541fe249f1db16dbc49d34b
typo programs_database.py

File Changes
(1 file https://github.com/jianghoy/funsearch/pull/2/files)

M implementation/programs_database.py
https://github.com/jianghoy/funsearch/pull/2/files#diff-1dc3c52b972478a3e5d6fdd81561535054e65e7fafd0bf8afea42c2c14aec665
(2)

Patch Links:

https://github.com/jianghoy/funsearch/pull/2.patch
https://github.com/jianghoy/funsearch/pull/2.diff

—
Reply to this email directly, view it on GitHub
https://github.com/jianghoy/funsearch/pull/2, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIIWBJISFE4HBMJK6XS3ATLY32Z3VAVCNFSM6AAAAABFZI6FTGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGIZDQMJZHA4TKNA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Merged. To answer your question:

After you use nohup, you need to find the pid and kill it: https://www.digitalocean.com/community/tutorials/nohup-command-in-linux
Depends on how you kill it, kill can pass in SIGTERM or SIGINT into Python, you can refer to this for a potential way to handle exit gracefully: https://chat.openai.com/share/89567605-346c-4e3c-93c2-fcfeab1ed16f
In terms of actual graceful exiting, I would say this is where the producer(llm sampler) and consumer(llm evaluator) connect, if you just pass in the sentinel value aka None after your receive SIGTERM (see step 2), then you should be fine. Of course this will still take a while, but this I believe is the cleanest option. Since funsearch will also create a lot of long-running nonsense python algos being evaluated in Docker,you probably want to let it handle them gracefully (already built in and kill container with timeout, but of course if you just kill the process without doing anything then you're likely end up with them).


Make Rfloat, Rint, and friends ToVectorValue.

Fixes #592
This PR does two things:

Makes Rints, &Rints, Rfloat, and &Rfloat  as ToVectorValue, as these are wrapped Rust types
that are safe to assume would translate to R. Moreover Rbool and &Rbool were already ToVectorValue,
so it could have been a slight oversight

We are increasingly promoting Integers, Logicals, Doubles, and Complexes as the better way
to extract vectors from R. Thus to make these more easier to work with, I've added TryFrom<Vec<RustNative>> for all of them. This was previously accomplished with from_values,
but I think these are intuitive interface for these as well.

Alright, except some more polish, I believe this is ready for review. Pinging @josiahParry, @daniellga and @Ilia-Kosenkov for reviews / opinions.

@CGMossa thank you so much for making this PR! My naive eyes think its looks okay but im not even close to an expert here :P

@CGMossa thanks for adding extra tests and comments! Looks good to my novice eyes!

@CGMossa there's one cargo fmt ci issue :/ Otherwise looks good and quite handy!


Updating the vendor override CNVS defaults

The 6000+ removals are the white spaces

retest this please

retest this please


golint should not require concrete implementations of interface methods to also be commented

Example:
// Person is a human being.
type Person interface {
  // Name returns the English language name of this Person.
  Name() string
}

// PersonImpl is a concrete implementation of the Person interface.
type PersonImpl struct {
  name string
}

// I should **NOT** have to also document this to satisfy golint as I already documented
// it in the Person interface.  However, if I don't document it, I'll get the golint warning
// "exported method Name should have a comment or be unexported".
func (p *PersonImpl) Name() string {
  return p.name
}

The golint warning "exported method Name should have a comment or be unexported" is false and misleading IMHO because Name was already documented in the Person interface.  By forcing me to also document it in PersonImpl, golint is actually making it harder to keep comments and style consistent in my code because now I'd have to maintain the same identical Name method header comment line in two places and keep them consistent.  This will be error-prone and cumbersome.
I shouldn't have to resort to gometalint and a bunch of // nolint directives to handle this simple caase.  :-)
Thoughts?
Thanks!

My method to deal with this nicely is to put a comment which acts as an annotation.
// Name satisfies Person interface
func (p *PersonImpl) Name() string {
  return p.name
}

The benefit of this is that when people looked at the code could see that they need to look elsewhere for documentation about the method. And if another programmer, or ourselves in the future, want to touch the method, we'll get reminded that the method is there to satisfies an interface so we can be careful about breaking it.

but this comments is useless,  or this func need't  comments.

The solution I am using now fix this question.
this is my vscode settings
    "go.lintFlags": [
        "--exclude='should have comment'",
        "--exclude='should be of the form'",
    ],
    "go.lintTool": "golint",

golint is requesting comments because
type PersonImpl struct {}
is exported, if
type personImpl struct {}
is not exported then golint will not ask for any comments.

Leaving this here. I know there are tons of issues in this repo about comments. Perhaps this can help:
https://www.youtube.com/watch?v=2a_ytyt9sf8&t=1885s

Leaving this here. I know there are tons of issues in this repo about comments. Perhaps this can help:
https://www.youtube.com/watch?v=2a_ytyt9sf8&t=1885s


Live UI: If user not registered, bid button should say register to bid

We determine most of this state based on whether we get a bidderID from metaphysics, perhaps they are now always coming in?

I understand now, a bidderID is per-user, so you can have a bidder ID from having registered at another auction.

#1638 should fix this

done for now. Individual updates will be tackled with new issues/epics


Adding timeout to middleware request

Proposed Changes

Added a timeout setting for middleware requests with default to 20 seconds

Associated Issue

#2237

Merge Checklist

[ ] Tests added/fixed
[ ] Update docs in /docs
[ ] Linting Complete
[ ] Any other necessary step

Only PR's with test cases included and passing lint and test pipelines will be reviewed
@ohcnetwork/care-backend-maintainers @ohcnetwork/care-backend-admins

closing as created this branch from wrong branch


Finding All the Articulation Points in a Graph

Description
I want to Implement an Algorithm to find all the Articulation Points (single points whose failure would split the network into 2 or more components) in a given Graph.
Domain
Algorithm
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

I would like to work on this issue under Gssoc22.

I would like to work on this issue under GSSOC'22. Can you assign this to me?


Feature Request: Support creating a shared library

I'm using this header only library under Linux running on arm64 and the memory use greatly increases compile time on the board. While it's possible to cross-compile, just having a library to link to would solve the problem.
Has this been considered?

You're talking about having a library that you can download from here, on github?
I don't believe that there's really any plans to do this, since the number of possible platforms that would need to be compiled for by this project could get quite large, especially considering the various libc implementations that the different embedded platforms target, not to mention compatibility with different boost library versions, shared linking versus static linking, and so on.
Ultimately it gets nuts really fast.
What could be done is set up a CMake target that creates the shared library for you on your system, and then you can link against that.
A fairly straight forward way to do this is to define some header file
#include <your list of mqtt_cpp headers here>
extern template *the various types you want compiled into your shared library here*

and then have a cpp file that explicitly instantiates the types that you defined as an extern template.
Then include your new header file so that the compiler knows you want to use your definition of the template types from the shared library, instead of from your current translation unit.
I'm sure that if you wanted to create a pull request that adds this as an optional (e.g., only happens if cmake is given option to turn it on) feature, that it would be something @redboltz is interested in.

What you describe is exactly what I'm looking for. I have no interest in downloadable libraries, just to build them from the mqtt_cpp source, and then link to them in the usual way.
Unfortunately, I don't quite follow your advice on how to do it. I'm just learning CMake. Can you give me a few more breadcrumbs? I have a strong interest in this project and would like to use it in more memory constrained environments like Raspberry Pi. Not embedded environments, but Linux based single board computers. They are fast enough to simply use, but typically have about 1G of main memory, so compiling with this header library hits the swap file immediately.
I don't mind helping, but will need a bit more guidance to get started. I work in commercial building automation, and having access to an MQTT library committed modern C++ and built on boost was a fantastic find!

I'm using this project on a Linux board that has under 1GB of ram, and runs OpenWRT.
But I'm using a cross compiler environment to build for it, so my constraints are slightly different.
How familiar are you with C++? Do you know how template instantiation works, and how the linker handles things when combining multiple different .o files?

I started off with C++ many years ago, but have only recently come back to it. I've been writing cloud and mobile apps since around 2008, so mainly Java and Objective-C (iOS), and recently Dart/Flutter. I somehow missed the incredible additions to C++ that happened in 2011 until only recently. So when an opportunity to work again in C++ came up, I jumped on it. I'm loving it, but you are correct in your thoughts that I have significant gaps in my knowledge--I'm working on them though.
I understand templates in a generic programming sense, but not how they would relate to how a linker would handle the object code the compiler would generate. I'm currently using clang++ if that's important.
As an aside, do you know a good primer on how to setup a cross compiler? I've found a few "magic" how-tos, but nothing that has details. I know clang has built in capabilities, but setting it all up in cmake is complex--that is if you don't already know how. I'm currently targeting arm64 (Ubuntu 19.04 on Raspberry Pi 3Bs).

Actually, I don't really know anything about how to set up a cross compiler.
I'm using the OpenWRT build root, which has all the "magic" built in already, so I didn't have to do any configuration (lucky me!)
My advice in terms of setting up CMake to do things in more "chunks" (Saving on the ram needed for each part of the compile process) is that you can use "extern templates", which was a language level feature that was added in C++11.
Imagine you have a C++ template (function, class, whatever) defined in some header file X.h
Normally, any place where you use the template you defined in X.h will cause the compiler to instantiate the template with the various template parameters you provide.
With extern templates, you would define your template type like normal, and then immediately after, declare the template type as "extern".
E.g.
template<typename T>
class Foo { };

extern template class Foo<int>;

Then, in some C++ file (e.g. X.cpp), you must explicitly instantiate the type that you declared extern.
#include <X.h> // for the declaration of Foo<T>
template class Foo<int> // Explicitly force instantiation, ignoring the `extern` keyword from X.h

Note also that you must do this same dance for each specific version of the template you want instantiated. If you want Foo and also Foo you must do both separately, which really isn't a big deal since it's only about 2 lines of code for each additional extern template variation you want.
What this basically boils down to is:

I, the programmer, do solemnly swear, that this template type will exist at link time, and therefore you, the compiler, shall not instantiate this template type in this translation unit, unless I explicitly tell you to.

Which, well, prevents the compiler from instantiating the template type, even though you're using it, and therefore, the compiler does less work, and thusly uses less ram.
If you don't have a cpp file (which gets compiled into a .o file, of course, and then linked like normal) that explicitly instantiates the template type, then you've lied to your compiler and your program won't link (undefined symbols referenced by blahblahblah...)
Do note: The majority of stack overflow posts about this subject explicitly show the extern template keywords being used in the cpp file that uses your .h file, meaning that you would need to opt in for every single cpp file you have.  Either every instance of the type should be extern (save the explicit instantiation you provide) or none of them. Mixing and matching just results in the compiler doing a lot of work that the linker will throw away.
So you can take advantage of this behavior to create an optional CMake feature for this project, where when the feature in question is enabled, extern template will be used for the various template types defined by mqtt_cpp (or at least the big ones), and a new shared library (Maybe a static library would be a better call?) will be created by CMake that's made up of one or more cpp files that explicitly instantiate the template types that were declared as extern templates.
I can provide some minor CMake examples on how to create a new library target, but my CMake foo is not very strong either, so it might be a case of the blind leading the blind.

That is an amazing feature of C++11! Thank you very much for taking the time to explain it. I am studying the latest Stroustrup, but I might never have caught on to that feature of templates.
Okay, I must try this... I'll take whatever CMake foo your willing to suggest and take it from there. I have two CMake books on my "read now" list as well. I'm really impressed with CMake, but I'm a neophyte.

Well, here's a trivial example that links against the mqtt_cpp "library". You can use that to get started.
Other libraries can link against this one by doing:
TARGET_LINK_LIBRARIES(myproject_myprogram myproject::mqtt)
PROJECT(myproject_mqtt)

MESSAGE(STATUS "Configuring ${PROJECT_NAME}")

FILE(GLOB SRC "*.cpp")

ADD_LIBRARY(myproject_mqtt ${SRC})
ADD_LIBRARY(myproject::mqtt ALIAS myproject_mqtt)

TARGET_INCLUDE_DIRECTORIES(myproject_mqtt PUBLIC /path/to/my/includes/)

TARGET_LINK_LIBRARIES(myproject_mqtt myproject::core myproject::log mqtt_cpp_iface Boost::system OpenSSL::SSL nlohmann_json::nlohmann_json )

IF(SOME CONDITION)
    ADD_SUBDIRECTORY(test EXCLUDE_FROM_ALL)
ENDIF()

Thank you! This helps.

This article is interesting and describes exactly what we're talking about: a library that offers static, dynamic, and header only options.
https://steveire.wordpress.com/2016/08/09/opt-in-header-only-libraries-with-cmake/

@redboltz Note also that improvements to this situation may also make the project's CI run faster.
I notice that a full run of Travis CI currently takes > 30 minutes, because a lot of the same code is being compiled over and over again.
Setting up precompiled headers (even if just for continuous integration), and having optional shared libraries would speed Travis CI and AzurePipelines up a lot.

I used to try cotire https://github.com/sakra/cotire and ccache. However no significant speed up is observed at that time. Basically I don't want to change source code for this kinds of feature, but updating build tree is no problem. Maybe when I tried that, I might be missing something.
I'm not sure how PCH like mechanism work well template base library especially function template infer based one. So I choose every time compile. At least this approach introduce no troubles except compile speed.
If someone try this again and send PR, it is welcome.

I am still very interested in working on this features as my compile times are almost prohibitive on Raspberry Pi 3B+. I've been quiet lately because I'm moving from Australia to the U.S., but I'm willing to chip in on this in a month or so when the move is over.

@Radagan , your contribution is always very welcome :)
BTW, you can cross-compile your application that includes header-only mqtt_cpp.
Here is example of RaspberryPI cross compiler building files:
https://github.com/kikairoya/raspi-tools
It works on Arch Linux.

I just googled docker environment and found https://github.com/sdt/docker-raspberry-pi-cross-compiler.

@Radagan
I rewrote a lot of the cmake configuration recently.
Did that make the problem any better for you?

@jonesmz
Thank you. I've been relocating from Australia to the U.S. the past couple of months and haven't been able to work on this project again yet. But I will try a compile very soon. My office equipment made it in yesterday and I'm sorting it all out. Will definitely let you know!


Trailing comma in if statement results in True

I made a simple test case to reproduce an issue that caused a semi major outage for our team today.
Expected Behavior
An error (TemplateException) should be thrown
Actual Behavior
Statement evaluates to True
foo:
    bar
bar:
    bar

Template Code
foo:
    bar

{%- if False or False , %}
bar:
    bar
{%- endif %}

Your Environment

Python version: 2.7.15
Jinja version: 2.10

Most likely False, is being interpreted as a 1-tuple. This doesn't look like a syntax error, just a logic error.

I noticed the same thing, but I do think that this is a parsing error.
For instance in just vanilla python
if False or False , :
    print("fail")

Will result in a syntax error

Jinja syntax is close to, but not exactly, Python. There are no colons in block statements in Jinja, so this seems acceptable.

Ok. I see what you are saying. I guess that makes sense. I think our team is going to try and make a linting script to try and catch this kind of bug in our production code.
Thanks for the fast response!

It would be cool to see a linter/formatter for Jinja, I'm not aware of any so far.


Execution of arbitrary Python code via the Jython extension: vulnerability?

step 1：Locate one or more files on your computer to upload

step 2:

Because of the way python and others can invoke system commands. Attackers can access unauthorized project files to execute code on the server, thereby paralyzing user services
step 3:

I am a security engineer, and I hope that products will become more and more secure.

all version

Hi @Enoki-web, thanks for reporting this!
You are correct that we let users execute arbitrary Python code via the Jython extension. Because OpenRefine is designed to be run locally and for a single user, this is not a Remote Code Execution (RCE) vulnerability.
It could still generally make sense to have a bit more sandboxing around this feature, perhaps in a configurable way. Jython, the Java implementation of Python we use, has no support for that.
We are considering migrating to other libraries to support Python 3, and we could potentially have more control with those: #2249.
In any case, it is not clear to me what we would want to allow or forbid exactly. People use it to spawn other processes, to call web services, to access files, all in intuitively legitimate ways.

I wonder if there are actual use cases for OS-level operations among OR users? Maybe we could otherwise find a way to block import of such modules? There is, however, a lot of them.

你好@Enoki-web，感谢您报告此事！
您是对的，我们让用户通过 Jython 扩展执行任意 Python 代码。由于 OpenRefine 旨在为单个用户在本地运行，因此这不是远程代码执行 (RCE) 漏洞。
围绕此功能进行更多的沙盒处理通常仍然有意义，也许是以一种可配置的方式。Jython，我们使用的 Python 的 Java 实现，不支持它。 我们正在考虑迁移到其他库以支持 Python 3，我们可能会对这些库进行更多控制：#2249。 无论如何，我不清楚我们究竟希望允许或禁止什么。人们用它来生成其他进程、调用 Web 服务、访问文件，所有这些都以直观合法的方式进行。

Service doesn't look like it's running in a sandbox

So it is harmful, whether it is a hacker as a springboard or an intrusion into the user, it provides convenience. It is equivalent to a loophole in executing commands.

我想知道在 OR 用户中是否存在操作系统级操作的实际用例？也许我们可以找到一种方法来阻止导入此类模块？但是，其中有很多。
Business and loopholes are mutually accomplished and closely related. Therefore, more consideration needs to be given to the risk at the user level. This can be said to be a vulnerability, because it can indeed be attacked, even if it is the function of the product itself. We all know that bugs are born from product features

我想知道在 OR 用户中是否存在操作系统级操作的实际用例？也许我们可以找到一种方法来阻止导入此类模块？但是，其中有很多。

Can't stop a programming language, or a virus that works.

你好@Enoki-web，感谢您报告此事！
您是对的，我们让用户通过Jython扩展执行任意Python代码。由于OpenRefine先为单个用户在本地运行，因此这不是远程代码整理(RCE执行)。
围绕功能多的处理通常有有意义，也许也许有以以以一一种种种种可可可可配置配置配置配置配置配置配置的的的的方式方式方式方式方式方式方式。。。。。。。，＃2249。无论多：的方式进行。

服务看起来不像是在沙箱中运行

Hope to get a CVE number

Piped command access through Python is a very useful thing to have in multiple scenarios with OpenRefine especially when used as a local ETL tool in many aspects.  I have Jython in various ways with system access for instance to iterate through JSON files based on OpenRefine cell values and pluck out ID's and concat them with other dataset values in columns.
As @wetneb stated, there are many uses.  Certainly, we cannot prevent a user that grabs some Python code off the internet and just runs it in our expression editor, but that is no different from them doing the same thing with their own Python interpreter.
OpenRefine is a power tool and we allow users full control of what access they might already have at their system level.  For instance, if an institution doesn't want a user to be able to access some local system resources, then they should do due diligence in creating a sandboxed environment for that user.  We, as an application, do not want nor do we need to be the ones responsible for creating sandboxed environments.  We, as an application are certainly responsible for addressing any remote code execution pathways, however.
And Remote Code Execution is an entirely different matter, and for that we rely on the Browser vendors, Java, and our dependencies(which we keep up to date) to perform their due diligence regarding security towards remote exploits.
@Enoki-web There are other areas of OpenRefine that certainly could use very good security eyes when it comes to data privacy:

Fetching URLs - and ensuring no unnecessary data is egressed unintentionally.
and several of our other operations and commands that access the internet through OpenRefine.

I would encourage you to spend your efforts in those areas, rather than within local system access from OpenRefine.  I.E. the other way around


ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)

I have a problem like this, please help me :(
Traceback (most recent call last):
File "echobot.py", line 4, in
line = LINE('My Email', 'My Password')
File "/usr/local/lib/python3.5/site-packages/linepy/client.py", line 18, in init
self.loginWithCredential(_id=idOrAuthToken, passwd=passwd, certificate=certificate, systemName=systemName, appName=appName, keepLoggedIn=keepLoggedIn)
File "/usr/local/lib/python3.5/site-packages/linepy/auth.py", line 73, in loginWithCredential
rsaKey = self.tauth.getRSAKeyInfo(self.provider)
File "/usr/local/lib/python3.5/site-packages/akad/TalkService.py", line 5109, in getRSAKeyInfo
self.send_getRSAKeyInfo(provider)
File "/usr/local/lib/python3.5/site-packages/akad/TalkService.py", line 5118, in send_getRSAKeyInfo
self._oprot.trans.flush()
File "/usr/local/lib/python3.5/site-packages/thrift/transport/THttpClient.py", line 141, in _f
result = f(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/thrift/transport/THttpClient.py", line 181, in flush
self.__http.endheaders()
File "/usr/local/lib/python3.5/http/client.py", line 1102, in endheaders
self._send_output(message_body)
File "/usr/local/lib/python3.5/http/client.py", line 934, in _send_output
self.send(msg)
File "/usr/local/lib/python3.5/http/client.py", line 877, in send
self.connect()
File "/usr/local/lib/python3.5/http/client.py", line 1260, in connect
server_hostname=server_hostname)
File "/usr/local/lib/python3.5/ssl.py", line 377, in wrap_socket
_context=self)
File "/usr/local/lib/python3.5/ssl.py", line 752, in init
self.do_handshake()
File "/usr/local/lib/python3.5/ssl.py", line 988, in do_handshake
self._sslobj.do_handshake()
File "/usr/local/lib/python3.5/ssl.py", line 633, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)

me,too


Update Container.php

When building a singleton instance, all of its dependencies could be singleton instances too.
When forgetting a stored singleton instance, it could be desirable to dynamically forget all its stored dependencies too.
I based these new methods on the existing resolve(), build() and resolveDependencies(), which I reversed to 'destruct' them, if you will.

We're probably not going to be merging this at this time, sorry.

We're probably not going to be merging this at this time, sorry.

May I ask why not?

I don't think these methods will be useful to a majority of people. Feel free to release this as a package if you wish.

Understandable. Thank you for replying so quickly.


FCC Non-Zif cables

Excellent work! I tried to do something similar with the RI-port, but never got finished. This looks very promising. One question though: Where can a ordinary mortal get hand on such a cable?  Would this be the correct choice? https://www.digikey.com/en/products/detail/molex/0150390785/11581723

One option is to solder directly onto the PCB, but if you don't want to take the guts out of your amp here's a link:
https://www.aliexpress.com/item/32959548753.html
happy hack :)


Hard time building, not running on OS X

Great work! Unfortunately, it doesn't work on OS X (Lion)
After getting npm/mnm to use the correct library/include paths, it complains about being unable to find lib nnz11. nnz11 is NOT part of the Oracle InstantClient for OS X.
nnz10 is part of the Oracle InstantClient for OS X, however. After linking against that I get the following:
[Steven ~]$ node

require('oracle')
Segmentation fault: 11

Libraries oracle_bindings.node is linked against:
[Steven ~/node_modules/oracle/build/Release]$ otool -L oracle_bindings.node
oracle_bindings.node:
/opt/local/lib/oracle/libocci.dylib.10.1 (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/oracle/libclntsh.dylib.10.1 (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/oracle/libnnz10.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)

Turns out sqlplus itself also gives a Segmentation fault: 11. Possible the Oracle InstantClient isn't Lion-compatible yet?

Unfortunately this appears to be a problem with the 64-bit occi drivers on OSX (https://forums.oracle.com/forums/thread.jspa?threadID=2187558&tstart=0).  The 32-bit drivers may work but node is compiled 64-bit so there is a mismatch.


Remarks missing entry (not valid in 64-bit MASM)

Directive not valid in 64-bit MASM (ml64.exe).

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

ID: 85291110-4370-f27c-c3c3-cf14c9f22534
Version Independent ID: aaa74df5-1db1-0e42-ac2b-7de0724a2115
Content: .ENDIF
Content Source: docs/assembler/masm/dot-endif.md
Product: visual-cpp
Technology: cpp-masm
GitHub Login: @corob-msft
Microsoft Alias: corob

fix should appear in 1-2 days. Thanks @Player1UK !


Ignore tasks with no duration timestamp set in Tasks Duration page

Not all tasks have duration timestamp set. Task duration page throws a 500 error when it encounters such a task. One example : https://airflow.lyft.net/duration?dag_id=dag_coupa_invoice_f&days=30&root=
This dag has couple of tasks in upstream_failed state.

:eyes: @astahlman @feng-tao @youngyjd

data_platform_upgrade branch?

this is for airflow infra(EDW). I think they use master branch.

https://github.com/apache/airflow/pull/5178

Someone beat me to it :(

Closing this one and we can pick it from upstream.


Add CW audit log support to module

Adding support for CW audit logs and metrics

Thank you @dpowley for your contribution!
I'm reviewing this and will clean it up as needed.

Hey @dpowley,
Thanks again for this - I've cleaned this up a little and made sure we have examples for both Audit Log config and Metrics config (and the correct code to execute both of them).
I ran a quick test, but would love it if you could run both examples and report back.

Once tested and confirmed as working, this will be released as 1.4.0

@lucymhdavies any chance you could help in testing this?
Want to make sure this makes sense.

Unrelated to this change:
https://github.com/ksatirli/terraform-hcp-vault-cluster/blob/main/variables.tf#L135-L143
This module only accepts lowercase tier names. The provider actually accepts the uppercase version too, so worth putting a lower() around the var.tier on line 140 there.

But yeah... from my testing... this works pretty well as a slot-in replacement for defining the hcp_vault_cluster resource directly. In my case:
/*
resource "hcp_vault_cluster" "this" {
  cluster_id      = "vault-${var.name}"
  hvn_id          = hcp_hvn.vault.hvn_id
  tier            = var.tier
  public_endpoint = var.public_endpoint

  audit_log_config {
    cloudwatch_access_key_id     = var.cloudwatch_creds.key
    cloudwatch_secret_access_key = var.cloudwatch_creds.secret
    cloudwatch_region            = var.cloudwatch_creds.region
  }
}
*/

moved {
  from = hcp_vault_cluster.this
  to   = module.hcp-vault-kerim.hcp_vault_cluster.main
}

module "hcp-vault-kerim" {
  source = "github.com/ksatirli/terraform-hcp-vault-cluster?ref=748e818740bed8a2e498553145a901140f23e0a2"

  cluster_id      = "vault-${var.name}"
  hvn_id          = hcp_hvn.vault.hvn_id
  tier            = lower(var.tier)
  public_endpoint = var.public_endpoint

  audit_log_config = {
    enabled                      = true
    cloudwatch_access_key_id     = var.cloudwatch_creds.key
    cloudwatch_secret_access_key = var.cloudwatch_creds.secret
    cloudwatch_region            = var.cloudwatch_creds.region
  }
}

so happy with this as is.

Unrelated to this change: https://github.com/ksatirli/terraform-hcp-vault-cluster/blob/main/variables.tf#L135-L143
This module only accepts lowercase tier names. The provider actually accepts the uppercase version too, so worth putting a lower() around the var.tier on line 140 there.

Great call out! Added

Hey @lucymhdavies and @dpowley, thank you both for your inputs!
I've gone through the module and verified everything.
In the process, I've also updated the HCP provider to 0.78.0 (from 0.76.0) and bumped the GitHub Actions versions.
@lucymhdavies thanks for the call out on lower for var.tier - great addition!

If there are no objections, I'll go ahead and merge this as 1.4.0.


Support OpenStack clouds with Keystone Federated Authentication

Please see https://github.com/gophercloud/gophercloud/issues/966

cc @knikolla @Fedosin


Key not found: tooltip.foreground

Not sure if this is known yet, so might aswell:
Lapce Version
Nightly
System information
Windows 10
Describe the bug
Trying to open the settings, the about window, or a folder, will cause lapce to panic
Additional information
panicked at lapce-app\src\config.rs:323:32:
Key not found: tooltip.foreground

tooltip.background and tooltip.foreground are missing in the default theme https://github.com/lapce/lapce/pull/3053 @MinusGix


Color progression with time

Hi, thanks a lot fo this project, it's very useful. Btw this is more suggestion rather than an issue. So the idea is to create color progression with each coordinate to display the order at which some movement occured. It could be done for example by something like this:
#example of usage
gmap.scatter(latitudes, longitudes, '#3B0B39', size=40, marker=False, progressive=True)
#implementation in gmplot
`
def BuildColor(self, r, g, b):
newClr = "#"
for num in [r,g,b]:
newClr += (hex(num)[2:] if len(hex(num)[2:]) > 1 else "0" + hex(num)[2:])
return newClr
def scatter(self, lats, lngs, color=None, size=None, marker=True, c=None, s=None, progressive=False, **kwargs):
    color = color or c
    size = size or s or 40
    kwargs["color"] = color
    kwargs["size"] = size
    settings = self._process_kwargs(kwargs)
    print settings['color']
    counter = 0
    for lat, lng in zip(lats, lngs):
        if progressive == True:
            r = int(255.0 / float(len(lats)) * counter)
            g = int(255.0 - (255.0 / float(len(lats)) * counter))
            b = 0
            counter+=1
            settings['color'] = self.BuildColor(r,g,b)
            #print r, g, b
            #print settings['color']
        if marker:
            self.marker(lat, lng, settings['color'])
        else:
            self.circle(lat, lng, size, **settings)`

I edited the gmplot myself (I know it's not perfect :P especially that it's just "green -> red" and making the original color setting useless) but it would be cool if something like this was available in further updates.

@michalmonday with the changes made in #152, you can now control the colour of each point separately. So for your scenario, you can define a list of colours that you want (manually or with the help of a library) then just pass that into scatter():
import gmplot
import math

def build_color(r, g, b):
    color = "#"
    for num in [r, g, b]:
        color += (hex(num)[2:] if len(hex(num)[2:]) > 1 else "0" + hex(num)[2:])
    return color

def get_color_progression(start_color, end_color, num_points):
    color_delta = []
    for channel in range(3):
        delta = end_color[channel] - start_color[channel]
        if delta >= 0:
            delta = math.floor(delta)
        else:
            delta = math.ceil(delta)

        color_delta.append(int(delta / num_points))

    return [build_color(start_color[0] + color_delta[0] * i,
                        start_color[1] + color_delta[1] * i,
                        start_color[2] + color_delta[2] * i) for i in range(num_points)]

apikey = '' # (your API key here)

start_lat = 37.766956
start_lng = -122.479481
gmap = gmplot.GoogleMapPlotter(start_lat, start_lng, 13, apikey=apikey)

NUM_POINTS = 50
lats = [start_lat + 0.001 * i for i in range(NUM_POINTS)]
lngs = [start_lng + 0.001 * i for i in range(NUM_POINTS)]

start_color = (0, 255, 0)
end_color = (255, 0, 0)
color = get_color_progression(start_color, end_color, NUM_POINTS)

gmap.scatter(lats, lngs, marker=False, color=color)
gmap.draw('map.html')


Extend resources with an article on running effective O3s

Thanks! This is a good article, but it does not add a lot of value compared to the ones that are already there. I'm trying to keep the list short. Thanks again!


decompilation errors

File "main.py", line 123, in <module>
    retval = main()
  File "main.py", line 104, in main
    ljd.ast.unwarper.unwarp(ast)
  File "/tmp/ljd/ljd/ast/unwarper.py", line 36, in unwarp
    _run_step(_unwarp_ifs, node)
  File "/tmp/ljd/ast/unwarper.py", line 43, in _run_step
    statements.contents = step(statements.contents, **kargs)
  File "/tmp/ljd/ast/unwarper.py", line 153, in _unwarp_ifs
    blocks, topmost_end)
  File "/tmp/ljd/ast/unwarper.py", line 176, in _extract_if_body
    end = _find_branching_end(blocks[start_index:], topmost_end)
  File "/home/tywony/farming simulator console/lua/ljd/ljd/ast/unwarper.py", line 1070, in _find_branching_end
    assert block == end
AssertionError

I'm aware of the problems with stripped a well as not stripped bytecode. ATM I'm getting more intimate with the unwarper code, though slotworks need attention too. I decided to start with it because it's the most gentle part of ljd. Are you interensted in working with stripped bytecode?


Add pagination on pages' top

I'm thinking about changing 'username' at PaginationLinks now but I don't know how do it better.


CSV files ending with a commented line without a line-break will result in the commented line as part of the final data

Description:
CSV files ending with a commented line without a line-break will result in the commented line as part of the final data.
How to reproduce it:
Parse the example below.
x,y,z
1,2,3
4,5,6

# this is a last line comment without \n

Environment:

Version: 8.80
OS / distro: Linux

Fix should be:
Only perform mData.push_back(row)
      // Handle last line without linebreak
      if (!cell.empty() || !row.empty())
      {
        row.push_back(Unquote(Trim(cell)));
        cell.clear();
        mData.push_back(row);
        row.clear();
      }

only under the condition
!(mLineReaderParams.mSkipCommentLines && (row.at(0)[0] == mLineReaderParams.mCommentPrefix))

Hi @yoons1 - thanks for reporting the issue and proposing a fix. 👍
I can reproduce the problem and I agree with the fundamentals of the proposed fix.
I'll try push a fix for this soon.

Hi again - this issue should be fixed by above commit. Please let me know in case you're still encountering issues after the fix.


chore: Updated the dependency versions of kotlin and gradle build tools

Issue: fix warning and code cleanup #51
Fixes #51
The previous gradle build tools version 3.3.2 was causing the warning.
Changing it to 3.2.1 solved the issue

@Grandolf49 We are now closing this PR due to failing checks.

@abhijitramesh Shall we close this PR?

Closing this PR as checks are failing and have not been updated


Case when no votes exist in block

Resolving the additions to issue #245

Nice.  Thanks for the screenshot.  Code looks fine.  Will merge after we get a test from another contributor.


Fixed HTTP/2 support for the proxy middleware

http.Transport instances whose TLSClientConfig, Dial, or DialTLS field is non-nil will be configured without HTTP/2 support by default.
This PR adds the proper calls to http2.ConfigureTransport() everywhere a http.Transport is created and thus fixes HTTP/2 in the proxy middleware whenever insecure_skip_verify or keepalive is provided.

 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.

http.Transport instances whose TLSClientConfig, Dial, or DialTLS field is non-nil will be configured without HTTP/2 support by default.

Are you sure? I read:

The http package has transparent support for the HTTP/2 protocol when using HTTPS. Programs that must disable HTTP/2 can do so by setting Transport.TLSNextProto (for clients) or Server.TLSNextProto (for servers) to a non-nil, empty map.
...
// If TLSNextProto is nil, HTTP/2 support is enabled automatically.

(net/http docs)
To me this says that unless we specify TLSNextProto manually to something that doesn't include "h2", http/2 will be enabled automatically.

To me this says that unless we specify TLSNextProto manually to something that doesn't include "h2", http/2 will be enabled automatically.

Yes 100% sure. That statement is not true anymore since Go 1.7 due to https://github.com/golang/go/issues/14275.
I noticed this bug, because I was trying to proxy gRPC calls, which for some reason simply didn't work. At all. I then used GODEBUG=http2debug=1 and realized that no HTTP2 connections where made and found thus found this bug.

@mholt One more thing: Shouldn't we also possibly switch from using (*net.Dialer).Dial to the newer (*net.Dialer).DialContext? The former one is deprecated and doesn't support context.Context, which might get useful sooner or later I imagine…

Oh wow, I hadn't seen that code change. Thanks for finding that. I guess the docs are lagging behind a little bit (Caddy's do too, so ... haha oh well).

One more thing (partially off topic): Shouldn't we also possibly switch from using (*net.Dialer).Dial to the newer (*net.Dialer).DialContext? The former one is deprecated and doesn't support context.Context, which might get useful sooner or later I imagine…

I don't see that Dial() is deprecated, but I do plan on introducing Context to Caddy very soon, like for identifying HTTP requests. I think we could switch to using DialContext any time to just have the context available, I'm okay with that.

Is there an easy way to test HTTP/2 is working? In the proxy tests, we have a "fake" upstream that responds to requests (like this one) -- we could add a test case that checks the protocol on the request to make sure that it's HTTP/2 I think. If that's doable, would you please add that to this PR? Then I'll merge it in.

wendigo and others added some commits 24 minutes ago

Holy... What the heck is that? I did not fetch upstream commits into my fork and still... There they are. My fork contains 2 new commits from you guys I've never seen before. How did you do that @mholt? Or was that "GitHub's" doing?

Anyways: I modified the proxy test accordingly. It took me far too long to figure out why my modifications to that "httptest" package don't work/apply, until I noticed that "httptest" is a Go-package. 😐 I thus added a simple wrapper which overwrites the NextProtos field.

Sorry, I've updated your branch with upstream changes via Github "Update branch" (out of habit)

@mholt I fear I might have broken something inadvertently. Since connections are now made using HTTP/2, WebSockets won't work anymore.
In my case my backend logs:
http2: server: error reading preface from client <IP_ADDRESS>:21052: bogus greeting "GET /..."

I thought I did it correctly, because for WebSockets your code calls newConnHijackerTransport right? I didn't add the call to http2.ConfigureTransport() due to that, but it seems it it still uses HTTP/2.
Or was this broken before too?

@lhecker Strange, the tests are passing... what kind of configuration breaks web sockets?

@mholt None of your WebSocket proxy tests use a HTTP/2 enabled backend, which is why the tests pass. You can try it yourself by replacing all occurrences of httptest.NewServer with newTLSServer in proxy_test.go.
I'm going to try and find the cause for this now, but since I'm mostly unfamiliar with caddy I'm not sure if I'll be able to solve it by myself.

@lhecker I can perhaps help guide you :) The first step would be to get the tests to fail, as you've explained how to do (add a test case instead of replacing one, though).
I just remembered there's a -http2 command line flag that your code currently does not obey. See this line of code in the HTTP server which disables HTTP/2 (if disabled with the flag) for client connections. You simply need to not configure HTTP2 if that flag is set to false for upstream connections.
However, this'll disable HTTP/2 entirely but users may want HTTP/2 for client connections still. You'll need to find a way to disable HTTP/2 for the ReverseProxy for websocket connections. Maybe the websocket preset needs to set one more (new) configuration parameter. Does that make sense?

Hm… I'm not entirely sure if I understood that… @mholt

So you basically want a (e.g.) http2 configuration parameter for proxy, which defaults to the -http2 CLI flag, right?
I don't think websocket should set the http2 parameter to false. IMO that would just make proxying HTTP/2-only connections (e.g. gRPC) and HTTP/1-only connections (WebSockets) more cumbersome than necessary. I think WebSockets should just continue working as they do now (by checking the HTTP request headers), but transparently creating an unpooled HTTP/1.1 connection regardless of the http2 setting.

The -http2 flag should forcefully disable HTTP/2 entirely, including in upstream connections.
I agree with you on the second point, as long as it obeys the -http2 flag.

@mholt Alright I figured out how to modify the fake WS upstream to proxy a self-signed wss:// stream. And it does fail with the above http2 bogus greeting error! I hope I'll be done by tomorrow.

@mholt I'm stuck again. I added support for switching off HTTP/2 using -http2=false, before fixing bigger issue. When testing it I noticed that connections to the wss:// backend still fail! I believe I hit #1292.
The error is (only the first dozen or so bytes consistently stay the same though):
websocket.Dial wss://<IP_ADDRESS>:60244: malformed HTTP response "\x16\x03\x03\x001\x02\x00\x00-\x03\x03>\x91\xbct\xfc\x851\xdcr\x81A\x95\x0f\xd3d]*.\x19,\xee'\x90\xa6O\xda\xf7\xf4\x90\r6S\x00\xc0/\x00\x00\x05\xff\x01\x00\x01\x00\x16\x03\x03\x02!\v\x00\x02\x1d\x00\x02\x1a\x00\x02\x170\x82\x02\x130\x82\x01|\xa0\x03\x02\x01\x02\x02\x100\x83\x02\x84\xc2ƭ\x1f\x90\xbed/\xa7\x00\x14\xeb0\r\x06\t*\x86H\x86\xf7\r\x01\x01\v\x05\x000\x121\x100\x0e\x06\x03U\x04"

To me this looks like a raw TLS 1.2 handshake from the wss: backend is wrapped in and proxied as the HTTPS response. I guess this is at fault?

Ahh, you may be right! Can you investigate that further and see if you can find a simple change to fix it? (And if you come to my neck of the woods sometime, lunch is on me.)

@mholt Thanks! 🙂
I didn't make any further progress today though… As far as I understand this it's trying to cleverly "replay" the response (headers) from the backend to the client, right? I can't for my life figure out why it doesn't properly handle the TLS data though.
If you have some time left today it'd be nice if you could take a look ¹, since it proved to be a bit more complex for me personally than I thought initially (I'm new to Go! 😭). Otherwise I'll try to further debug it in the coming days, but of course I don't know how much time I can spend on it (due to Christmas).
¹ You can check out the new quick & dirty wss: test case as a PoC in my fork in the proxy folder using go test -run=TestWebSocketReverseProxyFromWSSClient.

@lhecker Sorry, been a bit occupied with the holidays as well. :) Hope you're having a Merry Christmas!
Yes, your understanding of the replay seems right, I think. The replay is there to avoid multiple/duplicate connections to the websocket backend. See https://github.com/mholt/caddy/issues/763 and #987.
I'll take a look after the holidays as well, thanks so much for looking at this! I think you're making great progress. Definitely faster than I would have...

@mholt After I submitted my other comment just now I immediately had a hunch how to solve this one. It's now fixed. lol
This is at fault. If we use the baseTransport.TLSClientConfig instance we forget to explicitly make sure that NextProtos does not contain h2! I'm now simply setting NextProtos to nil, causing Go to not use HTTP/2 for the hijacker. It works! 🙂
A PR is coming soon.


fix: wrong redirect url for oidc requests #1909

This resolves the issue discussed in #1909
I replaced the NEXTAUTH_URL with AUTH_TRUST_HOST as the following piece of code only constructs the correct url when either VERCEL or AUTH_TRUST_HOST is set:
https://github.com/nextauthjs/next-auth/blob/494d16e54dd137d1b685a04f6aa8b5ba5e1121b0/packages/next-auth/src/utils/detect-origin.ts
Tested it on my site and also was validated by @rkj that it works for him

Be sure to document this in the docs 1.0 PR :)

Don't merge, the rabbit hole seems to continue


[run-length-encoding] test case conflicts with description

The description of the run-length-encoding exercise says:

For simplicity, you can assume that the unencoded string will only contain the letters A through Z.

However, there is one test case that contains spaces and lowercase letters.
I believe the test case should be changed to something like OEJJJJJXAAPPPL, the intent being that all of the test cases deal with strings containing only uppercase letters. I could make a PR to fix this test case, if you'd like?

Thanks @daveyarwood for pointing this out!
I added that description trying to fix #238, but as you pointed out my description was not complete. I think the correct thing to do would be to update the description to say something like:
"only letters A through Z (upper and lower case) as well as white space".

I wonder if that would create more work for the individual language repos? The example solutions would all need to be updated to handle spaces in the input.

Tracks that have already implemented this exercise should have been taking the existing whitespace into account (assuming that they're following the canonical data). Therefore, I think it makes more sense to not modify the canonical data and to update the description.

Ah, that's a good point. 👍

If you'd like to send a PR with an updated description go right ahead, otherwise let me know and I'll give it another shot.

I'm happy to take a stab at it.
Question, though: what about the lowercase z's? Are we considering valid input to be only uppercase letters and whitespace?

My understanding, given the current canonical data, is that we're accepting all ASCII characters except for the numbers, although the tests only test A through Z both upper and lowercase.
Here's another attempt (tell me what you think):

For simplicity, you can assume that the unencoded string only contains whitespace and the letters A through Z both upper and lowercase.

That sounds good to me 👍
I'll make a PR soon to update the description when I have a little bit of free time.


Remove error message for 'make perf-test' & 'make test'

Test scripts generate errors due to unknown location of llvm_wasm marked with line below.

exe=llvm_wasm

The two lines in test paths are prefixed with '${PWD}/' for clarification.

LGTM


convert pytorch to caffe

Platform (like ubuntu 16.04/win10):
macos
Python version:
python2.7
Source framework with version (like Tensorflow 1.4.1 with GPU):
pytorch with cpu
Destination framework with version (like CNTK 2.3 with GPU):
pytorch with cpu
Is there any tutorial of  converting pytorch model to caffe model?

Hi @knsong ,here are the Pytorch README and Caffe README.

Thanks, in fact this saves my day. It's more detailed!


Make the scheme optional for domain and topLevelDomain function

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
Category (leave one):

Bug Fix

Short description (up to few sentences):
The functions domain and topLevelDomain returned an empty string when we send an URL without a scheme. For example send 'www.yandex.com' or 'yandex.com' were not valid argument and returned an empty string. So user didn't have any choice to do an external operation with adding // or a full protocol.

Let's wait for performance tests to run (we have performance/url/url_hits.xml for these functions).

Stateful tests should be updated.

Stateful tests should be updated.

I'll do it.

Now it gives somewhat wrong result for firstSignificantSubdomain('magnet:yandex.abc').
It is considered to be Ok.

It is definitely not the expected behaviour:
SELECT
    domain(URL) AS domain,
    URL
FROM test.hits
WHERE (URL NOT LIKE '%://%') AND (domain != '')
LIMIT 10

┌─domain─┬─URL─────────┐
│ about  │ about:blank │
│ about  │ about:blank │
└────────┴─────────────┘
┌─domain─┬─URL───────────┐
│ tel    │ tel:904 53 00 │
└────────┴───────────────┘
┌─domain─────┬─URL─────────────────────────────────┐
│ mailto     │<EMAIL_ADDRESS>│
│ mailto     │<EMAIL_ADDRESS>      │
│ javascript │ javascript:this.name                │
│ javascript │ javascript:this.name                │
│ javascript │ javascript:this.name                │
│ javascript │ javascript:this.name                │
│ about      │ about:blank                         │
└────────────┴─────────────────────────────────────┘

It should give correct results for both:
https://yandex.ru/ -> yandex.ru
yandex.ru:80 -> yandex.ru
mailto:hello@world ->
magnet:test.test ->

Ok thanks, I applied a patch for the required fix and up to date the tests.
I just have few updates, 5 tests with the SELECT ... test.hits have a match.
https_edit.do?res=5&uinfo=ww-980-wh-660-fps-v-krasnoyaroslavy-ispytyvat-i-table_key=5&has_photelnoe => https_edit.do
http-www-1349-wh-957-fw-1038-03-28.0395806813113 => http-www-1349-wh-957-fw-1038-03-28.0395806813113
http-www-1349-wh-957-fw-1038-03-28.0395806813113 => http-www-1349-wh-957-fw-1038-03-28.0395806813113```

For this 4 tests, I cannot do that much things without doing a TLD lookup, should we also check the TLD here too ?

Also have an another case

```https_edit.do?id=1882117.jpg","can  => https_edit.do```

Should we also refuse this one due to some invalid characters ?

Otherwise the test case without an url seem to work now

Now the tests queries became 30% slower:
https://clickhouse-test-reports.s3.yandex.net/5045/8b0dda39e4e268af282e77c2d24f89f04b3f64c6/performance_test/comparison_min_time_gcc_8.html
I have to either do some magic or just feel fine about it.

@YiuRULE
https_edit.do?res=5&uinfo=ww-980-wh-660-fps-v-krasnoyaroslavy-ispytyvat-i-table_key=5&has_photelnoe => https_edit.do
http-www-1349-wh-957-fw-1038-03-28.0395806813113 => http-www-1349-wh-957-fw-1038-03-28.0395806813113
http-www-1349-wh-957-fw-1038-03-28.0395806813113 => http-www-1349-wh-957-fw-1038-03-28.0395806813113

These results are Ok. We should not check the TLD.
These are fabricated URLs and current behaviour is totally fine (garbage in -> garbage out).

Does this fix cutToFirstSignificantSubdomain() etc? Assuming the other functions call this one, having some tests for those too would be great (and if not we should fix those too maybe as a separate issue)
We have cutToFirstSignificantSubdomain(concatAssumeInjective('https://',domain)) in our queries right now, looking forward to removing.

@geldot Yep, the patch fix also your case, I forget to add test and just added some test for the function cutToFirstSignificantSubdomain, thanks !

Does we need to make other changes ? would be glad to assist if needed :)

Any news concerning this PR ?

Any news concerning this PR ?

We are currently working on this PR, trying to squeeze missing bits of performance. Results are optimistic.


kill queue failure

Exception in thread "Process timeout killer" java.util.ConcurrentModificationException
	at java.base/java.util.WeakHashMap$HashIterator.nextEntry(WeakHashMap.java:809)
	at java.base/java.util.WeakHashMap$EntryIterator.next(WeakHashMap.java:848)
	at java.base/java.util.WeakHashMap$EntryIterator.next(WeakHashMap.java:846)
	at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:335)
	at java.base/java.util.HashSet.<init>(HashSet.java:121)
	at com.telenav.cactus.process.KillQueue.leastInterval(KillQueue.java:87)
	at com.telenav.cactus.process.KillQueue.killLoop(KillQueue.java:108)
	at java.base/java.lang.Thread.run(Thread.java:833)

Hrm, what this needs is a ConcurrentWeakHashMap<ProcessControl<?, ?>, Long>, and there is no such beast unless we want to depend on Guava or Caffeine.
I'll come up with a different data structure that still avoids a strong reference to the ProcessControl (and thus everything associated with the process, which, if it has disappeared, has already exited and can't possibly need killing - that is the common case).  DelayQueue<SomeSortOfPairOf<WeakReference<ProcessControl<?,?>>, Long>> would do it.

That said, this is probably lower priority - while it means the kill-on-timeout thread is dead, in the common case, that's not going to interfere with a build completing.

Fixed, with tests.


Remove docker entry point info from config

Right now this is hand specified in the config.  Think we can clean this out and deal consistently with all images using the --entrypoint docker run option.

Fixed in #199


morphir-elm make fails with Rule API in sdk package.

Exception I got when I tried to create simple rule and rule set
2021-06-15T09:43:35.385Z] Parsed sources: 4
[2021-06-15T09:43:35.413Z] Inferring types for RuleDemo.upperLimit of size: 13
[2021-06-15T09:43:35.419Z] Generated constraints: 15
[2021-06-15T09:43:35.424Z] Generated solutions: 0
[2021-06-15T09:43:35.425Z] Inferring types for RuleDemo.ruleSet2 of size: 7
[2021-06-15T09:43:35.426Z] Generated constraints: 9
[2021-06-15T09:43:35.455Z] RangeError: Maximum call stack size exceeded
at _Utils_cmp (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:709:17)
at Function.f (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:728:10)
at A2 (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:56:28)
at Function.f (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:14644:15)
at A2 (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:56:28)
at Function.f (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:16700:13)
at A2 (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:56:28)
at Function.f (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:16710:10)
at A2 (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:56:28)
at Function.f (C:\Users\deiveega\AppData\Roaming\npm-global\node_modules\morphir-elm\cli\Morphir.Elm.CLI.js:16714:7)

Moved to https://github.com/finos/morphir-elm/issues/448

Moved to finos/morphir-elm#448

Thx I was just going to recreate this in morphir-elm.


Changed needs_new_cache_change to _needs_new_cache_change in dp_event…

…_loop.rs, discovery.rs, and constant.rs to get rid of an unused variable warning.
The warning said to suppress the fact that #[warn(unused_variables)] is on by default by renaming it to _needs_new_cache_change so I did. That's what this PR is. Also my Rust VSCode extension wants me to open the root directory containing Cargo.toml so I excluded my .vscode directory in .gitignore.

Thanks for the patch.
The annoying warning about the unused variable was left there on purpose, because adding the underscore to silence the warning is a temporary fix anyway.
That variable is either useful or it is not. If it is, it should be used, eliminating the warning. If not, it should be removed altogether. I am not yet sure which one it is.
@nime88 , can you comment on this?

That cache change variable exist for correct updating of cache changes for writer and reader proxies (and no unnecessary updates are done, such as sending unnecessary or incorrect AckNacks). I haven't looked if recent changes actually make this unnecessary. Might need to check with wireshark, so there are no duplicates or incorrect increase of sequence numbers.


New AC model: Mitsubishi Electric MSZ-HR25VF

Hi! I found out that my AC is missing in the list.
I create a new file with all codes for it "Mitsubishi Electric MSZ-HR25VF".
Hope this would help. I've tested it and it works fine now with my model.
I had to change the file to *.txt.
*.json was not allowed to send it on this issue. Hope that would help to make the list for this great integration a little bigger an better.
Mitsubishi Electric MSZ-HR25VF.txt
Thank you,

You need to set the temperatures for dry and fan_only modes.

Hi!
My AACC doesn't have temperatures for these two modes. When you set dry mode or fan_only, temperature set number dissappears.
Thank you

You should open a pull request by providing the json file. For this reason this issue will be closed. However, we have saved your file and depending on our workload we may add it in the future. Thanks for your valuable input.


[BUG] example.py marshmallow not found

Describe the bug
clean install
ran example.com
Traceback (most recent call last):
  File "/content/swarms/example.py", line 1, in <module>
    from swarms.models import OpenAIChat
  File "/content/swarms/swarms/__init__.py", line 10, in <module>
    from swarms.swarms import *  # noqa: E402, F403
  File "/content/swarms/swarms/swarms/__init__.py", line 2, in <module>
    from swarms.swarms.autoscaler import AutoScaler
  File "/content/swarms/swarms/swarms/autoscaler.py", line 5, in <module>
    from swarms.structs.flow import Flow
  File "/content/swarms/swarms/structs/__init__.py", line 1, in <module>
    from swarms.structs.workflow import Workflow
  File "/content/swarms/swarms/structs/workflow.py", line 6, in <module>
    from swarms.structs.task import Task
  File "/content/swarms/swarms/structs/task.py", line 12, in <module>
    from swarms.artifacts.error_artifact import ErrorArtifact
  File "/content/swarms/swarms/artifacts/error_artifact.py", line 3, in <module>
    from swarms.artifacts.base import BaseArtifact
  File "/content/swarms/swarms/artifacts/base.py", line 6, in <module>
    from marshmallow import class_registry
ModuleNotFoundError: No module named 'marshmallow'

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

Likely fix, adding marshmallow to dependencies pyproject.toml, and swarms/swarms/artifacts init.py

After adding pip install marshmallow, the error changes to:
Installing collected packages: marshmallow
Successfully installed marshmallow-3.20.1
Traceback (most recent call last):
  File "/content/swarms/example.py", line 1, in <module>
    from swarms.models import OpenAIChat
  File "/content/swarms/swarms/__init__.py", line 10, in <module>
    from swarms.swarms import *  # noqa: E402, F403
  File "/content/swarms/swarms/swarms/__init__.py", line 3, in <module>
    from swarms.swarms.orchestrate import Orchestrator
  File "/content/swarms/swarms/swarms/orchestrate.py", line 8, in <module>
    import chromadb
ModuleNotFoundError: No module named 'chromadb'

I was testing with this notebook, doing a poetry install.
Had to add 'pip install chromadb'
example.py produces no output, but it runs.
!git clone https://github.com/kyegomez/swarms
%cd /content/swarms
!pip install poetry
!poetry install

!pip install marshmallow
!pip install chromadb

import os
os.environ['OPENAI_API_KEY'] = "  "

!python3 example.py

@evelynmitchell thanks for reporting these issues, I've fixed the marshmellow and chromadb by adding it into requirements and pyproejct.toml and the example.py does not run because OPENAI changed their api, so it will not work unless we update the api, until then try a different model!


feat(*) add travis-ci integration

Adds Travis CI integration to this repository.

How do we plan to keep the script updated in future?
One idea I had was to simply clone kong and use the script from there directly; that way there is only one source of truth.

@james-callahan, we will need to update it when something in kong repo changes, or when we have new release for OpenResty. Though when new release of OpenResty comes we need to add patches too, so bumping .ci could be done the same time.
I though about reusing the script of Kong repo directly, but decided to skip it for now. I think we need to come up with more modular travis-ci integration to make it truly reusable in different contexts. I thought about using this too: https://github.com/Kong/kong-ci (but that is already lacking behind what is in Kong repo, e.g. doesn't apply patches etc.), and it was more geared to plugin testing. @hutchic might want to have his say about that?
Yes, I am bit worried about having yet another repo copy-pasting scripts from other repo and then slightly modifying them. But well, this repo is rather static compared to other repos. So let's start with what I have here now, and maybe take a broader view of this issue later.


Slider component

Any thought on adding a slider component ? something similar to https://material-ui.com/lab/slider/
I'd be happy to contribute if there is a place for this type of component :)

@IcanDivideBy0 of course! Feel free to add it ;)

Unfortunately it will not happen! v11 is a complete rewrite, maybe maybe not, anyway I close it.


Update the document to highlight some words

Signed-off-by: xichengliudui<EMAIL_ADDRESS>What this PR does / why we need it:
Update the document to highlight some words
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

Hello contributor, thanks for submitting a PR for this project!
I am the bot who triggers "standard-CI" builds for this project.
As a security measure, I will not run automated tests on PRs that are not from white-listed contributors.
In order to allow automated tests to run, please ask one of the project maintainers to review the code and then do one of the following:

Type ci test please on this PR to trigger automated tests for it.
Type ci add to whitelist on this PR to trigger automated tests for it and also add you to the contributor white-list so that your future PRs will be tested automatically. ( keep in mind this list might be overwritten if the job XML is refreshed, for permanent whitelisting, please follow #3 option )
If you are planning to contribute to more than one project, maybe it's better to ask them to add you to the project organization, so you'll be able to run tests for all the organization's projects.


Wrong link in Phase 5

Describe the bug
Wrong link in Phase 5 on Thunder CTF line
To Reproduce
Steps to reproduce the behavior:

Go to https://learntocloud.guide/docs/phase5/
Scroll down to Resources
Click on ThunderCTF
It leads to AWS training site

Expected behavior
i assume that link should lead to https://thunder-ctf.cloud

opened a PR - #132


Crunchyroll Updates

Requires yt-dlp nightly build to work. yt-dlp >=2<IP_ADDRESS>749.dev0
Only works with login auth.
I'm using a filter language your crunchyroll_audio_language config value and extractor crunchyrollbeta:hardsub=your crunchyroll_subtitle_language config value to get a version with one language and subs embedded
To avoid constant rewriting of the strm files, a file called last_episode.txt is generated in the series directory, it contains the playlist position of the last strm downloaded, this will only generate strm for new episodes.
Patch yt-dlp if Crunchyroll not works https://github.com/yt-dlp/yt-dlp/issues/7442#issuecomment-1637748442
mutate_values.json A particular file for this plugin. Overwrites the value of a specified field. For example, in cases where the season given by yt-dlp - season_number does not correspond to the actual season of the series. The available fields are as follows: season_number, season, episode_number, and episode.
direct mode. On Crunchyroll, the direct mode inherits the functionality of the download mode.
bridge mode. Given the latest updates, it is necessary to obtain the audio and video streams separately, redirect their output, and remux both tracks to finally serve them over HTTP. Experimental, sometimes it may fail to start playback and you need to try playing it again. There is no timestamp and it is not possible to navigate through the video's timeline.
With download mode, the audio and video streams will be downloaded separately, and after downloading, they will be remuxed to finally serve a final video/mp4 file. The files will be downloaded to ./temp/ and their lifespan will be 24 hours. This is configurable in config.json -> ytdlp2strm_temp_file_duration. The Crunchyroll plugin in download mode will automatically download the latest discovered episode of each series declared in channel_list.json.
In the config.json file, and specifically for the Crunchyroll plugin, there are 4 parameters: jellyfin_preload_last_episode, jellyfin_base_url, jellyfin_user_id, and jellyfin_api_key. When configured with their correct values, they allow detecting if an episode is being played and pre-downloading the next one to achieve a seamless playback flow without interruptions.

Quick question! :)
I don't suppose there's any way of correcting bad season names withh mutated_values.json?
For example, there's some nonsense about Demon Slayer:

Iep, you can edit the mutated_values.json ex:
{
"https://www.crunchyroll.com/es/series/GY5P48XEY/demon-slayer-kimetsu-no-yaiba" : [
{ "field" : "season_number", "value" : "53", "replace" : "02" },
{ "field" : "season", "value" : "Demon Slayer Kimetsy no Yaiba", "replace" : "New season name" }
]
}
Each {...} object is a "mutation" you can add more and you can work with these fields: season_number, season, episode_number, and episode


Precision loss in terrain generation due to floats

Minecraft version: 1.12.2
Galacticraft version: 281
Single player (SP)
Any Galacticraft add-ons installed? Please list all of them: Yes and no; issue can be reproduced in both base galacticraft with no other mods and with addons which use the same terrain generator for other planets
Please provide screenshots / videos / full modlist as needed
Please state the site that you downloaded Galacticraft from: micdoodle site
It seems as though the terrain generator used for the moon/mars uses floats for some reason, rather than integers or a double. This isn't much of an issue at the exact center of the world, bu tteleporting out far enough results in prominent artifacts in terrain generation, resulting in terrain becoming far more blocky than it should be.

Since blocks can only exist on integer coordinates, I don't see the point in using a float - vanilla's dimensions as well as Venus all use integers for their terrain generators and do not have this issue.

they use floats for the Gradient style generation.

they use floats for the Gradient style generation.

If it's an issue with floats and integers can't be used, would using doubles instead provide enough precision for all valid world chunk?

If it's an issue with floats and integers can't be used, would using doubles instead provide enough precision for all valid world chunk?

If it's an issue with floats and integers can't be used, would using doubles instead provide enough precision for all valid world chunks?

Honestly, will need to look into it further. doubles do provide a higher precision (approx. 2x) but I wouldn't be able to say it would change anything.

If it's an issue with floats and integers can't be used, would using doubles instead provide enough precision for all valid world chunks?

Honestly, will need to look into it further. doubles do provide a higher precision (approx. 2x) but I wouldn't be able to say it would change anything.

@muzikbike See if this can be reproduced with the builds in mods.zip
mods.zip

Confirmed fixed with the provided builds.

Fixed in latest commit


API for Recovered and Death data

Can we place an API for recovered and death data?
or can we simply place a column from confirmed cases with remarks of recovered or death?

It’s supposed to be the status field but the data from the DOH ArcGIS is missing right now for the local confirmed cases.
I’m still looking for a primary source to fill this up or I might rely on secondary sources and mark it as such.

It has an API for COVID statistics ready, i already use it on my applications,

@imlyrrad I'm currently working on the confirmed and PUI counts per hospital right now. What @salemcoe was referring to is the status of confirmed cases (i.e. recovered, deceased, stable), which is a totally different thing.

Dates and status for recovered and deceased cases are now available in the latest version of the API.


'webViewDidFinishLoad' did not call when use "webViewDelegate:self" as documented

There is not error any more. Webview load url completely but not trigger call webViewDidFinishLoad
System: IOS7, iPhone4s
DetailViewController.h
#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController<UIWebViewDelegate>

@property (strong, nonatomic) id detailId;
@property (strong, nonatomic) id detailTitle;

@property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel;

@end

DetailViewController.m

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"Hide loading animation");
    [MBProgressHUD hideHUDForView:self.view animated:YES];
}

- (void)viewDidLoad
{
    UIWebView *webView = [viewController webView];
    [[webView scrollView] setBounces:NO];
    [WebViewJavascriptBridge enableLogging];
    WebViewJavascriptBridge* bridge = [WebViewJavascriptBridge bridgeForWebView:webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) {
        NSLog(@"Received message from javascript: %@", data);
        if (responseCallback) {
            responseCallback(@"Right back atcha");
        }
    }];
}

Hey @giver So how did you solve this problem?


Setup basic files for Quarto repository

Hi @EstherPlomp,
I setup the basic repository structure on this branch, including:

a .gitignore file
an R project file (in case you also use R projects - I do but certainly not required)
the main Quarto file, index.qmd (index.qmd so that the rendered HTML is shown as the main GitHub page)
renv for a reproducible computational environment in R (currently empty as no other packages are used)
a configuration file for GitHub actions for continuous deployment of the rendered slides on the website, which is already online at https://lennartwittkuhn.com/dra-fair-teaching. the automated deployment via GitHub Actions seems to work fine. I changed it so that the CI only runs on pushes to main.

let me know if you think anything else is missing for the initial setup (e.g., a license, see #1). otherwise I think we could merge this PR first to then start working on the actual contents. thanks!

Great, thanks for your feedback. I will go on and merge this then.


Feature Request: GitHub diff language format

I'm using Atlantis to put my plans in GH PRs, and it would be great if landscape could better support the diff language format. Just a flag that would put the -/+ operators always at the start of the line.
Current:
Switched to workspace "test".

~ aws_ecs_service.webapp
    task_definition:   "redacted_webapp:64" => "${aws_ecs_task_definition.webapp.family}:${max("${aws_ecs_task_definition.webapp.revision}", "${aws_ecs_task_definition.webapp.revision}")}"

-/+ aws_ecs_task_definition.webapp (new resource required)
    id:                      "redacted_webapp" => "<computed>" (forces new resource)
    arn:                     "arn:aws:ecs:redacted:redacted:task-definition/redacted_webapp:64" => "<computed>"
    container_definitions:   "name": "MAIL_PROTOCOL",
                                      "value": "smtp"
                                    }
                                  ],
                                  "essential": true,
                             -    "image": "redacted.dkr.ecr.redacted.amazonaws.com/redacted:82bd2bb",
                             +    "image": "redacted.dkr.ecr.redacted.amazonaws.com/redacted:124c156",
                                  "logConfiguration": {
                                    "logDriver": "awslogs",
                                    "options": {
                                      "awslogs-create-group": "true",
                                      "awslogs-group": "php-logs-test",
                                  ],
                                  "environment": [

                                  ],
                                  "essential": true,
                             -    "image": "redacted.dkr.ecr.redacted.amazonaws.com/nginx:82bd2bb",
                             +    "image": "redacted.dkr.ecr.redacted.amazonaws.com/nginx:124c156",
                                  "links": [
                                    "redacted"
                                  ],
                                  "logConfiguration": {
                                    "logDriver": "awslogs", (forces new resource)
    network_mode:            "" => "<computed>"
    revision:                "64" => "<computed>"

Plan: 1 to add, 1 to change, 1 to destroy.

Proposed:
Switched to workspace "test".

~ aws_ecs_service.webapp
    task_definition:   "redacted_webapp:64" => "${aws_ecs_task_definition.webapp.family}:${max("${aws_ecs_task_definition.webapp.revision}", "${aws_ecs_task_definition.webapp.revision}")}"

-/+ aws_ecs_task_definition.webapp (new resource required)
    id:                      "redacted_webapp" => "<computed>" (forces new resource)
    arn:                     "arn:aws:ecs:redacted:redacted:task-definition/redacted_webapp:64" => "<computed>"
    container_definitions:   "name": "MAIL_PROTOCOL",
                                      "value": "smtp"
                                    }
                                  ],
                                  "essential": true,
-                                 "image": "redacted.dkr.ecr.redacted.amazonaws.com/redacted:82bd2bb",
+                                 "image": "redacted.dkr.ecr.redacted.amazonaws.com/redacted:124c156",
                                  "logConfiguration": {
                                    "logDriver": "awslogs",
                                    "options": {
                                      "awslogs-create-group": "true",
                                      "awslogs-group": "php-logs-test",
                                  ],
                                  "environment": [

                                  ],
                                  "essential": true,
-                                 "image": "redacted.dkr.ecr.redacted.amazonaws.com/nginx:82bd2bb",
+                                 "image": "redacted.dkr.ecr.redacted.amazonaws.com/nginx:124c156",
                                  "links": [
                                    "redacted"
                                  ],
                                  "logConfiguration": {
                                    "logDriver": "awslogs", (forces new resource)
    network_mode:            "" => "<computed>"
    revision:                "64" => "<computed>"

Plan: 1 to add, 1 to change, 1 to destroy.

Open to a pull request adding this functionality.

I would but I've never used Ruby. I looked through the code a bit but couldn't quite grok what I'd need to change where.


Library Not Working In IBM Cloud Foundry

The library installs chromium package in node modules but can not access it.
The error message is:
/home/vcap/deps/0/node_modules/puppeteer/.local-chromium/linux-800071/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
When we used IBM cloud foundry SSH we were able to locate the above path and file but somehow the library is denied the access to it.

I agree with this guy, I am also getting the same error message

I agree with this guy, I am also getting the same error message

same here

Any solution?


chore: Update all @polkadot/* packages

Yeah, thanks! I just tried running locally, it works too.
Can you give a green check & merge?


Dylib not loading into the simulator with arm64 (and it doesn't compile with x86_64)

Okay so I have the same error as #46 and #35 however neither solutions seems to work. When I compile with ARCHS = arm64 it does compile, but it won't load into the simulator. It says:
[simject] simject.xm:102 ERROR: Couldn't inject /opt/simject/Snapper2.dylib into com.apple.springboard:
dlopen(/opt/simject/Snapper2.dylib, 9): no suitable image found.  Did find:
	/opt/simject/Snapper2.dylib: no matching architecture in universal wrapper.

When I look at the dyblib itself it has, predictably, this:
Snapper2.dylib: Mach-O universal binary with 1 architecture: [arm64:Mach-O 64-bit dynamically linked shared library arm64]
Snapper2.dylib (for architecture arm64):	Mach-O 64-bit dynamically linked shared library arm64

While the simject.dylib has:
simject.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [i386:Mach-O dynamically linked shared library i386]
simject.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
simject.dylib (for architecture i386):	Mach-O dynamically linked shared library i386

My guess was that I definitely need x86_64 to make it work, but since #35 said he got it to work with arm64 I am not sure what else I can try.
Thanks

Nevermind, I didn't read literally the only other open issue currently (#47) which points to #49 which says:

You should not specify SDKVERSION and SYSROOT while you are building tweaks for iOS simulators as they will point to the native iOS SDK.
You should specify it like TARGET=simulator:clang:latest:8.0, for example.

Removing my SDKVERSION and SYSROOT made this work. Thanks


Update readme

Add sections for the following

[ ] a short description
[ ] links to the site and other relavent documents (contributing.md, licenses, etc)
[ ] technologies used
[ ] lessons learned
[ ] installation instructions

@20jasper can you assign me this issue


[Test-2995][e2e] run workflow and timing testCase

#2995

e2e Test failure？

please resolve e2e Test fail

Codecov Report

Merging #3201 into dev will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #3201      +/-   ##
============================================
- Coverage     33.79%   33.78%   -0.01%
+ Complexity     2405     2404       -1
============================================
  Files           442      442
  Lines         20603    20603
  Branches       2524     2524
============================================
- Hits           6962     6960       -2
- Misses        12980    12982       +2
  Partials        661      661

Impacted Files
Coverage Δ
Complexity Δ

...he/dolphinscheduler/api/service/LoggerService.java
82.60% <0.00%> (-8.70%)
9.00% <0.00%> (-1.00%)

Continue to review full report at Codecov.

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