Is a passphrase needed?

Using the Houston Client, notifications are sent without providing a passphrase, but when using
connection = Houston::Connection.new(Houston::APPLE_DEVELOPMENT_GATEWAY_URI, certificate, passphrase)
a passphrase is needed.
Why? Is it needed? I see code of various projects that some provide a passphrase and some don't...

If your certificate is protected by a passphrase, you need to pass it here. Otherwise, you can pass nil for the passphrase, which seems to be the case for you.
Houston::Connection.new(apns_gateway, apns_cert_file, nil)


Is it only me, to see, that this is not list of "static" services?

I am sorry, but this list is misleading.

It's a list of services for static websites.


[Do not merge] Move to new CI

This PR introduces the necessary changes to switch to the new CI. After this PR has been merged, the old CI will stop working and start throwing errors. Due to this fact, make sure that this PR is only getting merged while I'm ready for the handover.
Key changes:

Switch to Ubuntu16.04 and CUDA 8 due to the fact that CUDA 8 is supported on most GPU platforms
Split Jenkins-jobs into CPU and GPU tasks
Add debug output to Perl-tests
Disabled one documented flaky test

Most of the work is not part of this PR but rather all the infrastructure setup which we're maintaining in a different repository.

@mli It would be great if you could review my PR


Prepare for DAG based workflows

Working towards full DAG base workflows https://github.com/lalitpagaria/obsei/issues/8
Following things are part of these Epic -

[ ] Introduce generic node structure
[ ] Introduce different types of node structure (Observer, Informer, Analyzer, Preprocessor, Router etc)
[ ] Constraint Each Node should be stateless, hence each incoming request will bring Node config with it (be it either via incoming payload, file, DB, Cache etc)
[ ] Constraint Each Node should have reproducible properties ie avoid procedure call. Hence anyone can create setup locally or remotely.
[ ] Unify input/output payload (first part if done in this ticket https://github.com/lalitpagaria/obsei/issues/144)
[ ] Optional Payload should able to accept text, image, vectors, audio, file etc.
[ ] Introduce payload convertor
[ ] Introduce channel structure
[ ] Introduce different types of channel structure (Local, Rest, Messaging, Binary Protocol, etc)
[ ] Each channel will receive/emit payload and can have a payload convertor. Payload convertor stage will be based on where channel is used ie input or output. For example if listening to Kafka events then payload convertor stage will sit after consumer and if sending payload via Rest then convertor will sit before Rest call.
[ ] Each Node can have multiple incoming and outgoing channels. For example analyzer node can receive payload from http request, events or locally via procedure call and similarly it can sent payload to multiple http endpoints.

@GirishPatel @shahrukhx01 @sanjaybharkatiya
It is not compressive list, but let's list out the points.

Let's plan first version for release v0.1. This release will have many breaking changes hence better to increase minor version.
If we can leverage UI of https://github.com/orchest/orchest then it will be nice addition to Obsei.

@lalitpagaria https://github.com/orchest/orchest are using typescript, we need to make a decision about how we want to proceed with the UI. We may have to do some changes to adapt Orchest, that may avert our focus on Obsei itself. Second option is either continue with streamlit or use Justpy. Drag and drop interfaces are possible with Justpy and tailwind, for instance this example can easily be replicated with Justpy https://github.com/ananikets18/Drag-and-Drop-card-using-HTML-TailwindCSS-

@shahrukhx01 I agree that UI is not top priority for platform point of view. But I feel it will be good for user adoption point of view (I my view, but I might be wrong).
In past I experiment with streamlit but it did not clicked. Yes one point is to host demo on our own server (Now it is possible using Oracle cloud), with proper rate limiting to prevent users from abusing demo.
I also tried to build demo using Justpy but I felt it too complex. It could be due to that fact that front end is not my strong area. If you have experience, is it possible to prepare drag and drop based workflow creator? Main idea to generate workflow yaml for user. For first version we can support 1 time execution.

@lalitpagaria I can try creating a simple UI demo using Justpy once I get time. Meanwhile, we can decide how we want to design our backend codebase since that's more important.

Above issue for backend codebase only. For UI let's create separate issue :)

@lalitpagaria sure you can assign me that.

For creating architecture diagram we can use Archimate.
We can use PlantUML for create diagram.


  Even if they are just there as read-only attributes on the primary_entity, it would be useful for debugging and also improve device detection if the rest of the dps were added to the config.
The following page might be useful in identifying what the other dps are:
https://www.zigbee2mqtt.io/advanced/support-new-devices/03_find_tuya_data_points.html

I don't know how to create read-only string/number attributes. Could you please help me?
Ex. battery level.

I made some changes to what I think are the read-only attributes.
I am not sure about "Alarm notification", so I left that as a switch.


MD318 with MD103's wifi moudle,can't connect to 5G wifi router

sorry for my poor English.
before activation, the wifi moudle can connect to my router's 5G wifi hotspot,after activation cannot connect to the 5G hotspot, only 2.4G works fine

Recheck all your router settings. It seems CAT resets many systems

Hi, it may be related to a 5Ghz country setting issue due to the usage of new Wi-Fi drivers by CAT
See here for more details: https://github.com/dokterdok/Continuity-Activation-Tool/issues/24#issuecomment-61448729


Table view in explore v1 generates corrupted query

Steps to reproduce:

open long_lat table in the table view
query generated:

SELECT
FROM long_lat
WHERE date >= STR_TO_DATE('2017-01-06 13:08:40', '%%Y-%%m-%%d %%H:%%i:%%s')
  AND date <= STR_TO_DATE('2017-01-13 13:08:40', '%%Y-%%m-%%d %%H:%%i:%%s') LIMIT 50000

screenshot:

this screenshot looks like v1. does the issue happen in v2 as well?

this is failing in v2 as well

Notice: this issue has been closed because it has been inactive for 464 days. Feel free to comment and request for this issue to be reopened.


Error upgrading to ODFES 1.8 deb package

I'm getting an error upgrading ODFES 1.7 to 1.8 on ubuntu18 nodes:
# apt --fix-broken install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  opendistro-anomaly-detection
The following packages will be REMOVED:
  opendistro-anomaly-detector
The following NEW packages will be installed:
  opendistro-anomaly-detection
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
8 not fully installed or removed.
Need to get 0 B/6,119 kB of archives.
After this operation, 41.0 kB of additional disk space will be used.
Do you want to continue? [Y/n]
(Reading database ... 136999 files and directories currently installed.)
Preparing to unpack .../opendistro-anomaly-detection_<IP_ADDRESS>-1_amd64.deb ...
Unpacking opendistro-anomaly-detection (<IP_ADDRESS>-1) ...
dpkg: error processing archive /var/cache/apt/archives/opendistro-anomaly-detection_<IP_ADDRESS>-1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/elasticsearch/plugins/opendistro-anomaly-detection/commons-lang-2.6.jar', which is also in package opendistro-anomaly-detector <IP_ADDRESS>-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/opendistro-anomaly-detection_<IP_ADDRESS>-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
#

All packages did the upgrade well except "opendistro-anomaly-detector":
# dpkg -l | grep opend
iU  opendistro-alerting                    <IP_ADDRESS>-1                                       amd64        Open Distro for Elasticsearch Alerting.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
ii  opendistro-anomaly-detector            <IP_ADDRESS>-1                                       amd64        Anomaly Detection plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
iU  opendistro-index-management            <IP_ADDRESS>-1                                       amd64        Open Distro for Elasticsearch Index Management.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
iU  opendistro-job-scheduler               <IP_ADDRESS>-1                                       amd64        JobScheduler plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
iU  opendistro-knn                         <IP_ADDRESS>-1                                       amd64        KNN plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
iU  opendistro-performance-analyzer        <IP_ADDRESS>-1                                       amd64        Performance Analyzer plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
iU  opendistro-security                    <IP_ADDRESS>-0                                       amd64        Security plugin for OpenDistro for Elasticsearch.  Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
iU  opendistro-sql                         <IP_ADDRESS>-1                                       amd64        SQL plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
iU  opendistroforelasticsearch             1.8.0-1                                         amd64        OpenDistro for Elasticsearch.  Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
#

This might be related to package name changes of anomaly detection plugin.
@fbarbeira one workaround can be tried:
sudo apt remove opendistro-anomaly-detector
sudo apt install opendistro-anomaly-detection

@kaituo could you help to take a look at this issue? I think it's related to package name change

yes, it is related to debian/rpm name change

Hi, in this case it was not enough to remove the package "opendistro-anomaly-detector":
# apt remove opendistro-anomaly-detector
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 opendistroforelasticsearch : Depends: opendistro-anomaly-detection (>= 1.8.0) but it is not going to be installed
                              Depends: opendistro-anomaly-detection (< 1.8.1) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
~#

Instead of that, you must remove the package "opendistroforelasticsearch" as well:
# apt remove opendistro-anomaly-detector opendistroforelasticsearch
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  opendistro-alerting opendistro-index-management opendistro-job-scheduler opendistro-knn opendistro-security opendistro-sql
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  opendistro-anomaly-detector opendistroforelasticsearch
0 upgraded, 0 newly installed, 2 to remove and 2 not upgraded.
8 not fully installed or removed.
After this operation, 6,749 kB disk space will be freed.
Do you want to continue? [Y/n]
(Reading database ... 136999 files and directories currently installed.)
Removing opendistroforelasticsearch (1.8.0-1) ...
Removing opendistro-anomaly-detector (<IP_ADDRESS>-1) ...
Setting up opendistro-performance-analyzer (<IP_ADDRESS>-1) ...
Setting up opendistro-job-scheduler (<IP_ADDRESS>-1) ...
Setting up opendistro-alerting (<IP_ADDRESS>-1) ...
Setting up opendistro-security (<IP_ADDRESS>-0) ...
OpenDistro for Elasticsearch Security Demo Installer
 ** Warning: Do not use on production or public reachable systems **
Basedir: /usr/share/elasticsearch
This script maybe require your root password for 'sudo' privileges
Elasticsearch install type: rpm/deb on DISTRIB_ID=Ubuntu
Elasticsearch config dir: /etc/elasticsearch
Elasticsearch config file: /etc/elasticsearch/elasticsearch.yml
Elasticsearch bin dir: /usr/share/elasticsearch/bin
Elasticsearch plugins dir: /usr/share/elasticsearch/plugins
Elasticsearch lib dir: /usr/share/elasticsearch/lib
Detected Elasticsearch Version: x-content-7.7.0
Detected Open Distro Security Version: <IP_ADDRESS>
/etc/elasticsearch/elasticsearch.yml seems to be already configured for Security. Quit.
Setting up opendistro-sql (<IP_ADDRESS>-1) ...
Setting up opendistro-index-management (<IP_ADDRESS>-1) ...
Setting up opendistro-knn (<IP_ADDRESS>-1) ...
#

And then install "opendistroforelasticsearch" package wich already includes a dependency for the package "opendistro-anomaly-detection":
# apt install opendistroforelasticsearch
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  opendistro-anomaly-detection
The following NEW packages will be installed:
  opendistro-anomaly-detection opendistroforelasticsearch
0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
Need to get 0 B/6,120 kB of archives.
After this operation, 6,790 kB of additional disk space will be used.
Do you want to continue? [Y/n]
(Reading database ... 136984 files and directories currently installed.)
Preparing to unpack .../opendistro-anomaly-detection_<IP_ADDRESS>-1_amd64.deb ...
Unpacking opendistro-anomaly-detection (<IP_ADDRESS>-1) ...
Selecting previously unselected package opendistroforelasticsearch.
Preparing to unpack .../opendistroforelasticsearch_1.8.0-1_amd64.deb ...
Fetching kNN library
--2020-06-04 07:31:16--  https://d3g5vo6xdbdb9a.cloudfront.net/downloads/k-NN-lib/libKNNIndexV1_7_3_6.zip
Resolving d3g5vo6xdbdb9a.cloudfront.net (d3g5vo6xdbdb9a.cloudfront.net)... <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, ...
Connecting to d3g5vo6xdbdb9a.cloudfront.net (d3g5vo6xdbdb9a.cloudfront.net)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1401803 (1.3M) [application/zip]
Saving to: ‘libKNNIndexV1_7_3_6.zip’

libKNNIndexV1_7_3_6.zip                                         100%[====================================================================================================================================================>]   1.34M  2.34MB/s    in 0.6s

2020-06-04 07:31:17 (2.34 MB/s) - ‘libKNNIndexV1_7_3_6.zip’ saved [1401803/1401803]

Archive:  libKNNIndexV1_7_3_6.zip
  inflating: libKNNIndexV1_7_3_6.so
Unpacking opendistroforelasticsearch (1.8.0-1) ...
Setting up opendistro-anomaly-detection (<IP_ADDRESS>-1) ...
Setting up opendistroforelasticsearch (1.8.0-1) ...
#

After that, everything seems ok:
# dpkg -l | grep opendistro
ii  opendistro-alerting                    <IP_ADDRESS>-1                                       amd64        Open Distro for Elasticsearch Alerting.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
ii  opendistro-anomaly-detection           <IP_ADDRESS>-1                                       amd64        Anomaly Detection plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
ii  opendistro-index-management            <IP_ADDRESS>-1                                       amd64        Open Distro for Elasticsearch Index Management.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
ii  opendistro-job-scheduler               <IP_ADDRESS>-1                                       amd64        JobScheduler plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
ii  opendistro-knn                         <IP_ADDRESS>-1                                       amd64        KNN plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
ii  opendistro-performance-analyzer        <IP_ADDRESS>-1                                       amd64        Performance Analyzer plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
ii  opendistro-security                    <IP_ADDRESS>-0                                       amd64        Security plugin for OpenDistro for Elasticsearch.  Reference documentation can be found at https://opendistro.github.io/elasticsearch/docs.
ii  opendistro-sql                         <IP_ADDRESS>-1                                       amd64        SQL plugin for OpenDistro for Elasticsearch.      Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
ii  opendistroforelasticsearch             1.8.0-1                                         amd64        OpenDistro for Elasticsearch.  Reference documentation can be found at https://opendistro.github.io/for-elasticsearch-docs/.
#

@fbarbeira thanks to share the updates.


Remove redundant 'outFiles' declaration for test debugging.

I'm reverting this as there's no redundancy at all. I missed to see it when accepted the PR.

I'm reverting this as there's no redundancy at all. I missed to see it when accepted the PR.

Can you explain to me why the test debugging needs reference to src folder?

Can you explain to me why the test debugging needs reference to src folder?

You shouldn't be doing this. If the src code of the build process is wrong, you should be debugging it with another Launch config.
Launch Tests should only be for the tests.
Just my opinion.

You shouldn't be doing this. If the src code of the build process is wrong, you should be debugging it with another Launch config.
Launch Tests should only be for the tests.
Just my opinion.

I agree with @JimiC

I agree with @JimiC

Sorry but I don't agree. What's wrong with it? Don't you step into your code in your C# unit tests out of the box? If you're referencing code from the src it's licit to step in if you want. Is not that the case o a test, to test some external functionality? What's the use of the debugger if I cannot step into any function but the ones generated in my tests as stubs, mocks or whatever?

Sorry but I don't agree. What's wrong with it? Don't you step into your code in your C# unit tests out of the box? If you're referencing code from the src it's licit to step in if you want. Is not that the case o a test, to test some external functionality? What's the use of the debugger if I cannot step into any function but the ones generated in my tests as stubs, mocks or whatever?

@robertohuertasm The thing is that currently we have 3 major sections.

The extension code.
The icons json build code.
The tests code.

Now, ideally the tests shouldn't call into the build code directly but, they should mock the functionality of the build process. As I'm not so familiar with mocking in JS I took the easy way when I wrote the test cases.
Never the less, for me it's no big deal if you want to keep them this way. Works for me.

@robertohuertasm The thing is that currently we have 3 major sections.

The extension code.
The icons json build code.
The tests code.

Now, ideally the tests shouldn't call into the build code directly but, they should mock the functionality of the build process. As I'm not so familiar with mocking in JS I took the easy way when I wrote the test cases.
Never the less, for me it's no big deal if you want to keep them this way. Works for me.

@JimiC, if you are testing some build code it's normal to call your build code and mock only whatever  you're not testing. Tests can call anything they want to test, be it something in the build code or any other piece of code that we have.

@JimiC, if you are testing some build code it's normal to call your build code and mock only whatever  you're not testing. Tests can call anything they want to test, be it something in the build code or any other piece of code that we have.


Array shape bug when using jax.lax.scan

I encountered what seems to be a bug in jax.lax.scan in my experiments with JAX. The following is a simple example to reproduce the bug:
import jax
import jax.numpy as jnp

group_description = jnp.array([0], dtype=jnp.int32)
connections_description = jnp.array([[0, 0]], dtype=jnp.int32)
connections_to_groups = jnp.array([[0]], dtype=jnp.int32)
arr = jnp.zeros((2, 2, 2))

def process_connection(carry, connection_idx):
    idx0, idx1 = connections_description[connection_idx]
    print(arr[idx0, :, connections_to_groups[idx1]].shape)
    return carry, None

jax.lax.scan(process_connection, None, group_description)
for connection_idx in group_description:
    process_connection(None, connection_idx)

Running the above script gives the output
(1, 2)
(2, 1)

But the result should be the same with/without jax.lax.scan.
This is on Ubuntu 18.04, python 3.7 with jax==0.1.75 and https://storage.googleapis.com/jax-releases/cuda101/jaxlib-0.1.52-cp37-none-manylinux2010_x86_64.whl

Hi @StannisZhou
The latest versions(0.4.0+) of jax/jaxlib address this and the above script gives the same output with/without jax.lax.scan.


List saved games

Task consists of next steps:

Implement routine to read persistent with game files.
Implement command .games.list.

Команда mkdir how хочу взяти цей таск

Assigned

I'll take this issue

Closed #261


Question regarding Ida-gen branch

Are there plans to support generating ida type definitions, or typelibs?

The current branch was made as an experiment. At the moment it is not a priority, but as soon as we have time, we will do it. But there is no ETA

Elaborating further, at some point, we gave up on keeping the ida-gen branch up2date, and as of now, it lacks a lot of fixes/other stuff. While implementing all the things that would be needed for IDA generation, some functionalities were stripped and implemented in a very sketchy way(it was intended to be a POC after all). There are a lot of improvements that could(should) be made within the current codebase, at some point we will design a proper way how to opt the generator and will add the IDA support there.


[Docker] Tensorflow 2.4.4 images are missing from docker hub

Tensorflow 2.4.4 has been released 25 days ago, but it appears that the docker images have not made their way to docker hub yet.
Would it be possible to investigate the problem and push the images to docker hub?
Thanks!

Hi @sanatmpa1! Could you please look at this issue?

Hi @tomzx !
Have you checked 2.8.0 docker image yet ?

I do not have a need for this image, I was only letting you know it's unavailable.
Feel free to close if there's no plan to release 2.4.4 on docker hub.

@tomzx ! Thanks for responding . Closing this issue now.


Add Windows ARM64 support

There are new items added in IIS ARM64, so this tool needs an upgrade to support those.

13.0.19 added experimental ARM64 support and was tested on Windows 11 ARM64 with IIS Express.
Next, more investigation is needed with IIS.

13.0.20 allows x64 IIS Express worker process to launch on Windows 11 ARM64.

13.0.21 resolved site status query and shutdown. IIS Express support is ready.
Will move focus to IIS integration.


Add feature: skip compressed file if it's larger than or equal to original

This PR adds the option to skip outputting the compressed file if it is larger than or equal to the original file.
This is on by default, but can be disabled using option skipIfLargerOrEqual: false.
Reason for adding this:
Compressing assets is to reduce site traffic (amount) which improves load time in turn. However, if the compressed file is larger than (or equal to) the original file, there is no benefit, so skipping seems more appropriate then.
(Oh, and I fixed a typo)

If you need a file to test this functionality, I used a .woff2 web font file from Nunito on Google Fonts.

LGTM. I'll let the tests run before merging the code

I set skipIfLargerOrEqual as false. When we set true as default it will break most of test case :(

@vHeemstra  cc

I set skipIfLargerOrEqual as false. When we set true as default it will break most of test case :(

That's fine too.
Maybe it breaks the test cases because their compressed output is larger than or equal to the original content?

The v0.10.0 has been released


Not able to Implement Rate Limit

I am trying to implement rate limiting in fast-gateway but I am not able to use it since it expects the req.ip object which I believe is not available with fast-gateway. Does that mean I need to import express and create app just to do rate-limiting?
It'd be great if someone pointed out some examples to get me started.
Just used the sample code to get started:
require('dotenv').config();
const gateway = require('fast-gateway')
const PORT = process.env.PORT || 9090

const service = gateway({
  middlewares: [
    require('cors')(),
    require('helmet')(),
  ],
  // Can add routes here!
  routes: [{
    prefix: '/verify',
    target: process.env.VERIFICATION_API
  }]
});

service.start(PORT).then(server => {
  	console.log(`API Gateway listening on ${PORT} port!`)
})

Hi @rajkumarpb thanks for asking.
You don't need to use express in order to populate the user remote IP address, instead, I would recommend you just extend fast-gateway by adding a custom middleware like:
const requestIp = require('request-ip');

middlewares: [
    (req, res, next) => {
        req.ip = requestIp.getClientIp(req);
        next()
    },
    require('cors')(),
    require('helmet')(),
],

Using express on a performance critical component is not a good idea, fast-gateway is also not compatible with it.

You can read more about fast-gateway HTTP server performance here: https://medium.com/sharenowtech/node-js-api-gateway-a-developer-perspective-8defe575ed21
Thanks

Implemented request-ip as you mentioned. Now trying to implement express-rate-limiter and used below code.
require('dotenv').config();
const gateway = require('fast-gateway')
const requestIp = require('request-ip');
const PORT = process.env.PORT || 9090
const rateLimit = require('express-rate-limit');

const service = gateway({
  middlewares: [
  	(req, res, next) => {
        req.ip = requestIp.getClientIp(req) // you might need to check the expected ip object format here...
        next()
    },
    require('cors')(),
    require('helmet')(),
  ],
  // Can add routes here!
  routes: [{
    prefix: '/authapi',
    target: process.env.AUTH_API
  }]
});

service.use(
	rateLimit({
	  windowMs: 1 * 60 * 1000, // 1 minutes
	  max: 60, // limit each IP to 60 requests per windowMs
	}),
);

service.start(PORT).then(server => {
  	console.log(`API Gateway listening on ${PORT} port!`)
})

If i use loadtest tool to send 100 requests, it works fine. But if I increase it to more than 100, I am getting below error. Any idea why am I getting this error? I am using the same package in my other project and it works just fine. Please help me out!
(node:5129) UnhandledPromiseRejectionWarning: TypeError: res.status is not a function
    at Object.handler (/opt/nestws/api-gateway/node_modules/express-rate-limit/lib/express-rate-limit.js:22:13)
    at /opt/nestws/api-gateway/node_modules/express-rate-limit/lib/express-rate-limit.js:131:28

I will provide you more feedback here ASAP

Hi @rajkumarpb, next I describe a full example:
const gateway = require('../index')
const rateLimit = require('express-rate-limit')
const requestIp = require('request-ip')

gateway({
  middlewares: [
    // acquire request IP
    (req, res, next) => {
      req.ip = requestIp.getClientIp(req)
      return next()
    },
    // rate limiter
    rateLimit({
      windowMs: 1 * 60 * 1000, // 1 minutes
      max: 60, // limit each IP to 60 requests per windowMs
      handler: (req, res) => {
        res.send('Too many requests, please try again later.', 429)
      }
    })
  ],
  routes: [{
    prefix: '/public',
    target: 'http://localhost:3000'
  }]
}).start(8080).then(() => console.log('API Gateway listening on 8080 port!'))

const service = require('restana')({})
service
  .get('/hi', (req, res) => res.send('Hello World!'))
  .start(3000).then(() => console.log('Public service listening on 3000 port!'))

Please let me know if it works for you now?
Regards

@jkyberneees Yeah, it's working fine now. Before this I tried the same way but without handler in rateLimit method. Thanks again for the help. It would be great if you could add this in documentation as this is common scenario for any gateway and having it in official documentation would be helpful for many like me. Once again, thanks for the quick help!

hi @rajkumarpb, thanks.
You are right, I will refer to this feature in the main documentation.
Do not hesitate to reach back again if you find any blocker.


Broken in OpenShift 4.5

We were using this wonderful operator to automatically inject TLS certs generated by cert- manager into routes, but after upgrade to 4.5 we started noticing the following errors in the logs:
E0729 15:30:02.323442       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.2/tools/cache/reflector.go:125: Failed to list *v1.APIService: apiservices.apiregistration.k8s.io is forbidden: User "system:serviceaccount:cert-utils-operator:cert-utils-operator" cannot list resource "apiservices" in API group "apiregistration.k8s.io" at the cluster scope
E0729 15:30:23.831148       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.2/tools/cache/reflector.go:125: Failed to list *v1.APIService: apiservices.apiregistration.k8s.io is forbidden: User "system:serviceaccount:cert-utils-operator:cert-utils-operator" cannot list resource "apiservices" in API group "apiregistration.k8s.io" at the cluster scope

We install the operator using Helm chart, I think it's missing the following rules in the clusterrole:
- apiGroups:
  - apiregistration.k8s.io
  resources:
  - apiservices
  verbs:
  - '*'

Possibly with fine-tuned verbs.

Did you update your deployment chart to use the updates located here https://github.com/redhat-cop/cert-utils-operator/blob/1059e69aec371e3ff80b9cf30b6c0a4baaea8e0d/deploy/role.yaml#L35
I see that the updated requirements are included under the deploy folder.

I actually misspoke, it looks like we did not propagate the changes into the helm chart also for role.  Would you be interested in creating a pull request with the addition?

The rules seem to be in the default branch already, where how do you folks maintain your Helm chart? I'm happy to open a PR indeed once I know where I can find it

Thank you for looking to contribute, the chart and specifically where the role file is in the chart is located here
https://github.com/redhat-cop/cert-utils-operator/blob/master/charts/cert-utils-operator/templates/role.yaml

Oh :-) I must've gone blind. Thanks, will open a PR in a minute!


⚠ DesiTorrents has degraded performance

In ec7b21d, DesiTorrents ($DST) experienced degraded performance:

HTTP code: 200
Response time: 4958 ms

Resolved: DesiTorrents performance has improved in e5342bb.


would there be any release of the react source version code anytime soon ?

🚨 The issue tracker is not for implementation questions 🚨

[Question]

Hi @moxched , please reopen if you have more details.
Thanks! -Dave

hi @cwhitten  about the options, updating the ReactWebChat without rerendering the whole component, for instance i need to hide the send box when an button action is demanded i managed to do so through javascript css change and the option activityMiddleware but it would be great not having to depend on javascript to do so just instruct my component to rerender its behavior if one of the style Option input is changed


Extended Crafting recipes not showing

For Extended Crafting: Nomifactory Edition
The recipes do not appear until I manually reload all the recipes every time I open Minecraft again. After that, all the recipes work fine, it's just that they're not there when I join the world for the first time each relaunch.
My script with EC recipes:
https://gist.github.com/Sereath/6593e93def1319d05b52fa7fdea9a67c
This is what I added on top of it for the reloading to work as shown above:
#loader extendedcrafting reloadable
And it worked, but after that on every new launch recipes would remain hidden until a manual reload happened.
For a different script with just craftingtable recipes I have this:
#loader crafttweaker reloadable
And everything works fine.
Log for when recipes are hidden:
https://gist.github.com/Sereath/06001492d8243e39e5a22ef924258aa2
Log for when I deleted the #loader line in the script, recipes no longer hidden:
https://gist.github.com/Sereath/6fd8920767b430f69c79a049070b400e
Edit:
Likely that I'm misusing the loaders, sorry about that in advance.

You confused #loader and #modloaded preprocessor. https://docs.blamejared.com/1.12/en/AdvancedFunctions/Preprocessors/LoaderPreprocessor
https://docs.blamejared.com/1.12/en/AdvancedFunctions/Preprocessors/ModLoadedPreprocessor
tl;dr: don't use #loader extendedcrafting reloadable
#reloadable
#modloaded extendedcrafting

// Your code about extendedcrafting recipe modification

Thank you, I was mislead by the plugin I use showing #loader as just a comment.


Fix MessageFormatter for PHP7

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

Tests pass?
yes

Fixed issues
#11528

We need a changelog line and a test case to verify this behavior. Could you do it, please?

IntlException does not exist in PHP5.4 and the fix also does not seem to work this way on HHVM.

OK. Then general exception should be used.

@SilverFire @samdark I could fix it, are you fine with assigning it to me?

Applied a slightly different fix, thanks!


tests: add missing for median_heap

This PR:

adds tests covering these lines:

https://github.com/TheAlgorithms/Lua/blob/c026a97849183c232929bdabd278e01f7f5f6c62/src/data_structures/median_heap.lua#L29
https://github.com/TheAlgorithms/Lua/blob/c026a97849183c232929bdabd278e01f7f5f6c62/src/data_structures/median_heap.lua#L49

reorganizes existing tests.

Thanks


Dask metadata updated in loop after job definition

What happened: Dask seems to update the metadata information in the task graph if a mutable object (dictionary) is passed, even though the dictionary itself is not updated. This seems unexpected, that a changed loop variable used in the dictionary can influence the metadata in the task graph.
In my minimum working example, I'm looping over a dictionary, updating the definition (task graph) of the dask dataframe. In my metadata dictionary, I reference col_name from the loop, however dask.dataframe.compute() does not work anymore, as the value seems to be updated in the loop in the meantime.

Output & Stacktrace
Checking c in dataframe start
Column name: a
Checking c in dataframe end
Checking c in dataframe start
Column name: b
Checking c in dataframe end
Checking c in dataframe start
    assert "c" in ddf.compute().columns
  File "/usr/local/lib/python3.10/site-packages/dask/base.py", line 315, in compute
    (result,) = compute(self, traverse=False, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/dask/base.py", line 600, in compute
    results = schedule(dsk, keys, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/dask/threaded.py", line 89, in get
    results = get_async(
  File "/usr/local/lib/python3.10/site-packages/dask/local.py", line 511, in get_async
    raise_exception(exc, tb)
  File "/usr/local/lib/python3.10/site-packages/dask/local.py", line 319, in reraise
    raise exc
  File "/usr/local/lib/python3.10/site-packages/dask/local.py", line 224, in execute_task
    result = _execute_task(task, data)
  File "/usr/local/lib/python3.10/site-packages/dask/core.py", line 119, in _execute_task
    return func(*(_execute_task(a, cache) for a in args))
  File "/usr/local/lib/python3.10/site-packages/dask/optimization.py", line 990, in __call__
    return core.get(self.dsk, self.outkey, dict(zip(self.inkeys, args)))
  File "/usr/local/lib/python3.10/site-packages/dask/core.py", line 149, in get
    result = _execute_task(task, cache)
  File "/usr/local/lib/python3.10/site-packages/dask/core.py", line 119, in _execute_task
    return func(*(_execute_task(a, cache) for a in args))
  File "/usr/local/lib/python3.10/site-packages/dask/utils.py", line 71, in apply
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/dask/dataframe/core.py", line 6800, in apply_and_enforce
    check_matching_columns(meta, df)
  File "/usr/local/lib/python3.10/site-packages/dask/dataframe/utils.py", line 429, in check_matching_columns
    raise ValueError(
ValueError: The columns in the computed data do not match the columns in the provided metadata
  Extra:   ['c']
  Missing: ['b']

A workaround is to use persist() in the loop.
What you expected to happen: That the definition of the task graph does not depend on updating variables in the function scope.
Minimal Complete Verifiable Example:
import enum

import dask.dataframe as dd
import numpy as np
import pandas as pd

DELIMITER = "___"

def normalize_df(df: pd.DataFrame, sort_cols: list[str]):
    return df.sort_values(sort_cols).reset_index(drop=True)

class FillNaMethod(enum.Enum):
    ZEROS = enum.auto()
    INTERPOLATE = enum.auto()

def interpolate_index_series(
        df: pd.DataFrame, time_column: str, column: str) -> pd.DataFrame:
    # if I return temp (as in pandas example), I get a failure that a Series
    # object does not have a columns attribute, hence return results "packaged"
    # in a dataframe
    temp = df.sort_values(time_column).set_index(
        time_column)[column].interpolate(how="time")
    ret_df = pd.DataFrame({time_column: temp.index, column: temp.values})
    return ret_df

def generate_dummy_data() -> (pd.DataFrame, dd.DataFrame):
    df1 = pd.DataFrame(
        {
            "date": pd.date_range("2020-01-01", "2020-07-01", freq="MS"),
            "a": [1, 2, None, None, 5, None, 7],
            "b": [11, 12, None, None, 15, None, 17],
            "c": [21, 22, None, None, 25, None, 27]})
    df1["group"] = "1"
    df2 = pd.DataFrame(
        {
            "date": pd.date_range("2021-01-01", "2021-06-01", freq="MS"),
            "a": [4, 5, None, 6, 7, None],
            "b": [14, 15, None, 16, 17, None],
            "c": [24, 25, None, 26, 27, None]})
    df2["group"] = "2"
    df_pd = pd.concat([df1, df2])
    df = dd.from_pandas(df_pd, npartitions=3)
    return df_pd, df

def interpolate_time_grid(
        df: pd.DataFrame, time_column: str, column: str,
        idx_col_name: str) -> pd.DataFrame:
    dates = df[time_column].values
    sort_index_array = np.argsort(dates)
    values = df.set_index(time_column).sort_values(
        time_column)[column].interpolate(
            how="time", limit_direction="both").values
    # apply the inverse sort to ensure the order of the rows is preserved
    inverse_sort_index_array = np.argsort(sort_index_array)
    return pd.DataFrame(
        {
            column: values[inverse_sort_index_array],
            idx_col_name: df[idx_col_name]})

def main():
    df, ddf = generate_dummy_data()
    interpolation = {
        "a": FillNaMethod.ZEROS,
        "b": FillNaMethod.INTERPOLATE,
        "c": FillNaMethod.ZEROS}
    groupby_columns = ["group"]
    date_column = "date"
    unique_cols = groupby_columns + [date_column]
    idx_col_name = DELIMITER.join(unique_cols)
    ddf[idx_col_name] = ddf.apply(
        lambda x: DELIMITER.join(
            [str(x[c]) for c in groupby_columns] + [
                x[date_column].strftime("%Y-%m-%d")]),
        axis=1,
        meta=(idx_col_name, "str"))
    for col_name, interpol_method in interpolation.items():
        print("Checking c in dataframe start")
        assert "c" in ddf.compute().columns
        print(f"Column name: {col_name}")
        if interpol_method is FillNaMethod.ZEROS:
            df[col_name] = df[col_name].fillna(0)
            ddf[col_name] = ddf[col_name].fillna(0)
        elif interpol_method is FillNaMethod.INTERPOLATE:
            merge_df = df.groupby(groupby_columns).apply(
                lambda x: x.sort_values(date_column).set_index(
                    date_column)[col_name].interpolate(
                        how="time", limit_direction="both")).reset_index()
            df = df.drop(col_name, axis=1).merge(merge_df, on=unique_cols)
            merge_ddf = ddf.groupby(
                groupby_columns, group_keys=False).apply(
                    lambda group_df: interpolate_time_grid(
                        group_df,
                        time_column=date_column,
                        column=col_name,
                        idx_col_name=idx_col_name),
                    meta={
                        col_name: "f8",
                        idx_col_name: "str"})
            merge_ddf = merge_ddf.set_index(idx_col_name)
            ddf = ddf.set_index(idx_col_name)
            ddf = ddf.drop(col_name, axis=1).merge(merge_ddf)
            # below seems to be a quickfix, as due to persist() the graph is
            # computed up to this point, bypassing lazy evaluation and the bug
            # ddf = ddf.drop(col_name, axis=1).merge(merge_ddf).persist()
        print("Checking c in dataframe end")
        assert "c" in ddf.compute().columns
    dask_result = ddf.compute()
    print(dask_result)
    print(df)
    pd.testing.assert_frame_equal(
        normalize_df(dask_result, unique_cols), normalize_df(df, unique_cols))

if __name__ == '__main__':
    main()

Anything else we need to know?:
Environment:

Dask version: 2022.9.1
Pandas version: 1.5.0
Python version: 3.10
Operating System: Ubuntu
Install method (conda, pip, source): pip

Actually the whole messy interpolation logic from above (which is actually similar to #9492) is not really necessary to reproduce, maybe it is easier to have a look at this example:
import enum

import dask.dataframe as dd
import pandas as pd

class FillNaMethod(enum.Enum):
    ZEROS = enum.auto()
    INTERPOLATE = enum.auto()

def generate_dummy_data() -> dd.DataFrame:
    df1 = pd.DataFrame(
        {
            "date": pd.date_range("2020-01-01", "2020-07-01", freq="MS"),
            "a": [1, 2, None, None, 5, None, 7],
            "b": [11, 12, None, None, 15, None, 17],
            "c": [21, 22, None, None, 25, None, 27]})
    df1["group"] = "1"
    df2 = pd.DataFrame(
        {
            "date": pd.date_range("2021-01-01", "2021-06-01", freq="MS"),
            "a": [4, 5, None, 6, 7, None],
            "b": [14, 15, None, 16, 17, None],
            "c": [24, 25, None, 26, 27, None]})
    df2["group"] = "2"
    df_pd = pd.concat([df1, df2])
    df = dd.from_pandas(df_pd, npartitions=3)
    return df

def main():
    ddf = generate_dummy_data()
    interpolation = {
        "a": FillNaMethod.ZEROS,
        "b": FillNaMethod.INTERPOLATE,
        "c": FillNaMethod.ZEROS}
    groupby_columns = ["group"]
    date_column = "date"
    unique_cols = groupby_columns + [date_column]
    for col_name, interpol_method in interpolation.items():
        print("Checking c in dataframe start")
        assert "c" in ddf.compute().columns
        print(f"Column name: {col_name}")
        if interpol_method is FillNaMethod.ZEROS:
            ddf[col_name] = ddf[col_name].fillna(0)
        elif interpol_method is FillNaMethod.INTERPOLATE:
            meta_dict = {k: "str" for k in groupby_columns}
            meta_dict.update({date_column: "datetime64[ns]", col_name: "f8"})
            merge_ddf = ddf.groupby(
                groupby_columns, group_keys=False).apply(
                    lambda group_df: group_df[unique_cols + [col_name]],
                    # col_name from loop seems to be updated in meta even though
                    # dictionary is not mutated or redefined (if-branch is only hit once)
                    meta=meta_dict)
            ddf = ddf.drop(col_name, axis=1).merge(merge_ddf, on=unique_cols)
            # below seems to be a quickfix, as due to persist() the graph is
            # computed up to this point, bypassing lazy evaluation and the bug
            # ddf = ddf.drop(col_name, axis=1).merge(merge_ddf).persist()
        print("Checking c in dataframe end")
        assert "c" in ddf.compute().columns

if __name__ == '__main__':
    main()


Two VMs are WS2022 & WS2022/WS2019

Two VMs are not Windows Server 2019 VM. Those are Windows Server 2022 on Azure and Window Server 2022/Windows Server 2019 in on-premises.

@tksh164 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Grub load error

Hi. I tried the latest stable version of this script from your custom iso. The EFI install did not create any boot entries, so I tried a BIOS install and receive a 'Grub load error' message.
The install appeared to work correctly (and I checked the integrity of the USB), although it did mention some dracut modules would not be installed due to missing files, so is that the problem?

Hi. I tried the latest stable version of this script from your custom iso. The EFI install did not create any boot entries, so I tried a BIOS install and receive a 'Grub load error' message.

This is interesting to me, as I've successfully bootstrapped the latest stable version of vv using vbox several times over, see: testing matrix.
The only thing that immediately comes to mind regarding this matter is that voidvault-1.10.0 switched to using zstd btrfs compression: zstd compression on /boot is incompatible with grub versions earlier than 2.04.
I last updated my custom iso over six months before grub-2.04 shipped in void. If for some reason vv is not using or installing the latest version of grub during the bootstrap, this error may result.
However, I don't know why vv wouldn't be updating its grub during installation, given the code explicitly updates grub as a dependency during the bootstrap: https://github.com/atweiden/voidvault/blob/362e86eed0de2242790b816da289f82b11e1a563/lib/Voidvault/Bootstrap.pm6#L83.
If you could, please try bootstrapping again using the official iso just to be sure this issue is not being caused by a corner case with my aging custom iso. I test vv using the official isos. The official isos should work. Just be sure to add rd.live.overlay.overlayfs=1 to the kernel command line on livecd boot up per the documentation, and then proceed as normal.
I apologize for any inconvenience.

The EFI install did not create any boot entries, so I tried a BIOS install and receive a 'Grub load error' message.

Also, could you clarify what you mean by this? Note there is no BIOS install mode or EFI install mode in vv; it installs both grub bios and efi support simultaneously. Are you bootstrapping void using voidvault new without modifying the source code?

Just thought of the other, more likely, possibility:
If you're using the voidvault source code shipped with my aging custom iso, which it sounds like you are and which is highly inadvisable, that version of voidvault does not specify cryptsetup luksFormat --types luks1 (see: https://github.com/atweiden/voidvault/commit/718488a85cd8cac9bc96d445d80f21c861eca0f5). Not specifying this cryptsetup option worked perfectly well prior to cryptsetup-2.1.0. In cryptsetup-2.1.0 and later, cryptsetup began to default to --types luks2, which is incompatible with Grub, including recent versions of Grub.
Please ensure you're using the latest stable version of voidvault, which is 1.10.0. Use it from the official isos, and you should be fine. vv-1.10.0 should also work fine from my custom void iso though, just make sure you grab that version and don't use something from 2018.

Hi. I already tried using the official ISO you link in the README.md, with the same problems. I'll try to log more output.

If you're using the voidvault source code shipped with my aging custom iso

I've always used curl to get the 1.10.0 sourcecode as instructed.

Also, could you clarify what you mean by this? Note there is no BIOS install mode or EFI install mode in vv; it installs both grub bios and efi support simultaneously. Are you bootstrapping void using voidvault new without modifying the source code?

Yes I'm running things unmodified following all the instructions. I only meant that I tried installing once with my BIOS set for UEFI and once with it set for CSM compatibility mode.
I've also tried mounting the EFI partition to change the location of the .efi file to see if my BIOS picks it up as suggested here .
Thanks for the help.

I've successfully installed voidvault on another computer, so it is probably a problem with the BIOS implementation on my Lenovo g505s laptop. I will post back when I get to the bottom of it.
On another note, are the following messages in the successful install anything to worry about?

dracut: Executing: /usr/bin/dracut --force --kver 5.3.18_1
dracut: dracut module 'bootchart' will not be installed, because command '/sbin/bootchartd' could not be found!
dracut: dracut module 'modsign' will not be installed, because command 'keyctl' could not be found!
dracut: dracut module 'busybox' will not be installed, because command 'busybox' could not be found!
dracut: dracut module 'plymouth' will not be installed, because it's in the list to be omitted!
dracut: dracut module 'lvmmerge' will not be installed, because command 'lvm' could not be found!
dracut: dracut module 'dmraid' will not be installed, because command 'dmraid' could not be found!
dracut: dracut module 'dmsquash-live-ntfs' will not be installed, because command 'ntfs-3g' could not be found!
dracut: dracut module 'lvm' will not be installed, because command 'lvm' could not be found!
dracut: dracut module 'mdraid' will not be installed, because command 'mdadm' could not be found!
dracut: dracut module 'multipath' will not be installed, because command 'multipath' could not be found!
dracut: dracut module 'stratis' will not be installed, because command 'stratisd-init' could not be found!
dracut: dracut module 'stratis' will not be installed, because command 'thin_check' could not be found!
dracut: dracut module 'stratis' will not be installed, because command 'thin_repair' could not be found!
dracut: dracut module 'crypt-gpg' will not be installed, because command 'gpg' could not be found!
dracut: dracut module 'cifs' will not be installed, because command 'mount.cifs' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'dcbtool' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'fipvlan' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'lldpad' could not be found!
dracut: dracut module 'biosdevname' will not be installed, because command 'biosdevname' could not be found!
dracut: dracut module 'usrmount' will not be installed, because it's in the list to be omitted!

I've successfully installed voidvault on another computer, so it is probably a problem with the BIOS implementation on my Lenovo g505s laptop. I will post back when I get to the bottom of it.

It very well could be the case your particular 64-bit laptop requires a 32-bit GRUB installation.
I've intentionally excluded support for such hardware to this date.
I would not object to a pull request implementing a flag handling this edge case for the completely haywire machines requiring it, but depending on how much of an eye-sore it inflicts on the CLI, I may or may not merge it.
Sorry.
The dracut output is fine.

So I unscrewed the SSD holding the voidvault installation from the secondary bay caddy in the laptop to put it back in the primary slot and voidvault booted. Laptop BIOS must not be able to boot properly from a secondary drive. Sorry to waste your time, and I am now enjoying the voidvault installation on two computers.

Sounds like a more generally applicable case than I expected. I'll test this if/when I obtain the requisite hardware. Apologies for any hassle caused.


If user is already authenticated, redirects them to dashboard state

If on the login state and already logged in, posting credentials returns a 302.  Documentation for $http states "A response status code between 200 and 299 is considered a success status and will result in the success callback being called."  This commit introduces an "isAuthenticated" call prior to submitting credentials.
No image necessary as no views modified.
closes #939
@chriskacerguis this should solve the issue, lemme know if not.

I'm not convinced this will resolve the issue described in #939. It also does not resolve the issue of the server sending 302s when a user appears logged in.

Seems like the issue would be with the cookies?  Perhaps the cookie domain?

In the case of the dev and test servers that's exactly what it sounds like is happening.

Roger that, digging in.

Ok, would like to propose that cookies are fine, the original issue was not reproducible following the below steps:

clear all jellyfish cookies
start up rails s -e development log in on localhost:3000/login - results in success, then logout
kill rails s -e development
start up rails s -e test log in on localhost:3000/login - results in success

That being said, if one logsin on either test or development), skips logging out, then attempts to login again, while the _jellyfish_core_session attribute lastAccessed is updated, a 302 is thrown back (which to angular $http != success) and we are not redirected to the dashboard state.
Could use a bit of guidance on  how to resolve the 302 issue experienced when a logged in user attempts to log in again (some sorta conditional in block starting at 16 of sessions_controller.rb?)

A 302 is being sent back because of the before_action for the action in the SessionsController.


Add how to

Create or migrate existing how-to.

@gregLibert Does this issue still relevant ?

Nope, you're right.


Mujoco MATLAB integration

Hi,
For some years I was using the Mujoco Haptix version, which comes with a precompiled MATLAB interface library. The version is not available on your web page or git, therefore I am curious if there are any plans for the future, for the MATLAB interface library to be available as open-source for Mujoco?
Thank you for the reply in advance!

Hi,
We do not use Matlab ourselves, but we could certainly consider open-sourcing the plug-in.
Would you be open to maintaining it as an open-source contributor, or do you just want to use it?

Hi gain, thank you for your reply, just to make it clear, is there a Matlab plug-in that can be used with Mujoco (not Haptix)? I personally would be interested in using it, but I will check with my colleague if he would be interested in maintaining it because he is very involved with the Matlab development.
Br.

A Matlab mex plug-in is available for MuJoCo 2.0 for Windows (mjx.cpp in the sample/ directory) and can be found in the roboti.us legacy downloads page. We currently do not support this plug-in, but we could consider helping external maintainers who wish to support it.

Hi,
Let us know if you've made any progress with this, we'd be happy to help.
Closing this issue in the meantime.


Update ARM crossbuild image

We are currently using microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-0cd4667-20172211042239.  This image is missing clang-5.0, now required by CoreCLR.  Once I installed clang-5.0 manually, I started running into https://github.com/dotnet/source-build/issues/514, so it seems like the LLVMgold requirement may apply for all builds now, or there may be another switch we have to turn off - this will require either another change to the image or a change to our flags in repos/coreclr.proj.

[Triage] Closing as obsolete.


Numeric aliases insert '0' in input after clearing if there was fraction part

Small inconvinience, see here: https://jsfiddle.net/sdy342wd/

Write '123' into the input.

Select all data in input (with Ctrl+A, for example) and press Delete.

Input has nothing - right.

Write '123.123' into the input.

Select all data in input and press Delete.

Input has '0' instead of empty - wrong.

After that you can press Delete again and erase '0'.

Further to this issue, in this demo https://jsfiddle.net/sdy342wd/2/ if you select the text then enter any one number or . (period), it will insert 2 periods.


Added support for satellite graphs

Also added two new graph (cluster) option parameters:

replicationFactor
writeConcern

See: https://www.arangodb.com/docs/stable/http/gharial-management.html#create-a-graph
Simple example:
from pyArango.connection import *
from pyArango.collection import Collection, Edges, Field
from pyArango.graph import Graph, EdgeDefinition

databaseName = "satellite_graph_db"

conn = Connection()

# Cleanup (if needed)
try:
    conn.createDatabase(name=databaseName)
except Exception:
    pass

# Select our "satellite_graph_db" database
db = conn[databaseName] # all databases are loaded automatically into the connection and are accessible in this fashion

# Define our vertex to use
class Humans(Collection):
    _fields = {
        "name": Field()
    }

# Define our edge to use
class Friend(Edges):
    _fields = {
        "lifetime": Field()
    }

# Here's how you define a Satellite Graph
class MySatelliteGraph(Graph) :
    _edgeDefinitions = [EdgeDefinition("Friend", fromCollections=["Humans"], toCollections=["Humans"])]
    _orphanedCollections = []

theSatelliteGraph = db.createSatelliteGraph("MySatelliteGraph")

@hkernbach Do you want to add the example from the description to the readme or is that too much detail?

@joerg84 I think that would be nice, but keep in mind that 3.7 is not released yet

Codecov Report

Merging #175 into master will decrease coverage by 0.05%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master     #175      +/-   ##
==========================================
- Coverage   78.13%   78.08%   -0.06%
==========================================
  Files          17       17
  Lines        2946     2952       +6
==========================================
+ Hits         2302     2305       +3
- Misses        644      647       +3

Impacted Files
Coverage Δ

pyArango/database.py
56.04% <57.14%> (-0.14%)
: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 4eae333...c7c82fd. Read the comment docs.

Besides the writeConcern fixed at None, I don't see anything wrong with this PR. It's pretty cool.

Ups, writeConcern can be fully removed as a parameter in the new function. It will be set internally by the server automatically. The parameter will be ignored anyway.

@tariqdaouda Can we merge this?


Add a new javascript project

Project  :-  QR Code generator

Great Project Update the project number as project number 50 has already been added to the repo. Add the screenshot of your project also in the assets folder.

Done 👍🏼


move sources to top dir and user go modules

would be fine merge this after dhcp and routes

supersedes #22

blocking by #23

needs wait, when libovsdb have go.mod

@softwarejl can you check and merge prs in libovsdb repo in Ebay and release new version? i want to pin to specific version

i'm rebase and push, @softwarejl

now all tests passed


Increase the maximum length of identity raw data values from 32 bytes

The identity is now generic and configured in the runtime. Generally not sure we need a RFC for such a change. I think it is fine to just do this as a pr and convincing of the maintainers.
CC @joepetrowski

I think Joe is OOO, but currently we re-use this Data type in the new Rococo people config and partly in Polkadot.
It should be enough to make that 32 there generic as Get<u32>.

Yeah I agree with @ggwpez and @bkchr , should be a PR to polkadot-sdk to make that value configurable and then we can propose the change in the pallet config.

@ltfschoen are you okay with the proposed steps?

@ltfschoen are you okay with the proposed steps?

yes i agree with @ggwpez, @joepetrowski, and yourself

So this can be closed?

Closed and replaced with Polkadot SDK issue https://github.com/paritytech/polkadot-sdk/issues/3977


update hive.py

The missing semicolon prevents to run hive command in local environment.

Description
The missing semicolon was preventing the hive command task to run in the local environment while checking for partition.
Motivation and Context
This change is required because due to this people making use of Luigi spends too much time debugging this error and I feel should be fixed in the Luigi repo. it self

Have you tested this? If so, how?

"I ran my jobs with this code and it works for me."

LGTM. Could you please add a test case to cover the change? Thanks for your contribution!


feat(headwind): add support for sorting classes with custom prefix

Closes #29
Although I'm not entirely sure about the possible implications.

Nah. Just realised it won't properly work with variations and screens: it will confuse md:mt-5 with mt-5.


Question - (possible solution) - How can client code set the button disabled based on business logic?

First of all, I apologize for creating issues spam.
I am evaluating spin-buttons for our project. Among all the alternatives, ember-spin-button offers the closest functionality and more structured approach.
My only problem so far is handling disabled state of button. It is defined as a read-only computed property.  Consider a usual scenario where the button remains disabled until all form elements pass validations.
I can propose a solution that I used somewhere else. Change binding of disabled attributed to a new computed property _isDisabled. This new _isDisabled property can be simply defined as:
_isDisabled: Ember.computed('disabled', 'inFlight', function(){
     return this.get('disabled') || this.get('inFlight')
})

I can send a pull request once my previous one is merged.

Sorry, closed accidentally


Add deterministic PrivateKey generation function for tests

In our thrive on making tests 100% deterministic PrivateKey::new function that uses make_true_rng should be replaced with something that uses make_seedable_rng. Otherwise resulting PublicKey can affect hashes of transactions and blocks.

The PR is merged so I think this could be closed now.


feature(spring-mvc): detect endpoint methods with either protected or package-private visibility

This methods are valid Spring endpoints, so they should be correctly detected

Requires #168


[Feature Request] Support for gh .chart DoubleGuitar, DoubleRhythm, DoubleBass

Please Select the game mode your feature request is about.
gh
Is your feature request related to a problem?
The gh .chart parser can only parse gh-solo ("Single") and gh-bass (the first "Double" chart that appears in the file, regardless if it's DoubleGuitar, DoubleBass, or DoubleRhythm).
It cannot parse DoubleGuitar into gh-solo, or DoubleRhythm into gh-rhythm.
Describe the solution you'd like
The .chart parser should parse all guitar instruments available in .chart for gh:

Single --> gh-solo
DoubleGuitar --> gh-solo
DoubleBass --> gh-bass
DoubleRhythm --> gh-rhythm

There may be rare cases where a .chart contains both valid Single and DoubleGuitar charts. For such cases, a dedicated "gh-coop" style for DoubleGuitar might be a good idea (and the .mid parser updated to support it too).
Describe alternatives you've considered
No response
Additional context
Support for these .chart styles would make it easier to chart for Project Serenity, specifically "CRUSH THE DEVIL"

Test .chart with DoubleGuitar, DoubleRhythm, DoubleBass styles
GH Double Style Test.zip
Test .chart with Single, DoubleGuitar, DoubleRhythm, DoubleBass styles
GH Single & Double Style Test.zip


Update to Support Library 26.0.2

[x] I have verified there are no duplicate active or recent bugs, questions, or requests
[X] I have verified that I am using the latest version of Material Dialogs.
[X] I have given my issue a non-generic title.
[X] I have read over the documentation (before asking questions on how to do something).

Include the following:

Material Dialogs version: <IP_ADDRESS>

I have this issue too

Looks like this issue is cause by another old library
https://github.com/DreaminginCodeZH/MaterialProgressBar/blob/master/library/build.gradle

this issue can have more info from @farsiad and @pooya1366
I say because I don't have a problem, I using
support-v4:26.0.2 and support-v13:26.0.2
and only using material-dialogs for progress dialogs.
So extra info from what is the problem and how it happens, will probably help.

I'm getting the same issue. I'm using support libraries version 26.0.2.  When syncing Gradle, I get the following error:
Error:Execution failed for task ':app:processDebugManifest'.

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.2) from [com.android.support:preference-v14:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.android.support:support-v13:26.0.1] AndroidManifest.xml:28:13-35 value=(26.0.1).
Suggestion: add 'tools:replace="android:value"' to  element at AndroidManifest.xml:23:9-25:38 to override.

As a followup, if I change the tag to the latest commit, it works. Did you create a new release when you made the latest changes and commit?  if not, jitpack won't compile and package any changes.
Here's the last jitpack log:
Build starting...
Start: Thu Aug 17 16:44:32 UTC 2017
Git:
<IP_ADDRESS>
commit a29c038520970fb3d1336e1ac5d534c61305f283
Author: Aidan Follestad
Date:   Thu Aug 17 10:54:17 2017 -0500
<IP_ADDRESS>

Notice it shows Aug. 17 for the build, which means it hasn't packaged any of your commits to a new aar since that date.

Well, you shouldn't really be using JitPack.

But yes, this is expected. Your app has to use the same version of the Support libs that this library does.

Yeah see, here's the thing,  Here's my repositories, in order:
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
maven { url 'https://maven.google.com' }
maven { url 'https://jitpack.io' }
}
Even using jcenter first, I still get this error:

@DesigningKnights yep, again, that's expected. Dependencies merge their manifests with your app, the two support library versions are trying to merge a value in your app manifest that have different values.

Ah, here's the problem.  Look at the date at jcenter.
Version Publication Date Version Badge
Released Aug 17, 2017
It doesn't show anything updated, so it's still pulling the old version from jcenter.

You can exclude sub-dependencies from a dependency in your build.gradle file.

yes, true, but it would be better if jcenter was actually distributing the current build, would it not?
maven-metadata.xml | 22 days ago | 971 B |
-- | -- | -- | --
maven-metadata.xml.md5 | 22 days ago | 32 B

@DesigningKnights I have not published a new release to jcenter. The current release as listed in the README is `<IP_ADDRESS>, https://github.com/afollestad/material-dialogs/releases/tag/<IP_ADDRESS>.

That explains the problem then.

Now I understand way this did not cause problem on one of my apps... as I use support-v4 and support-v13 for others things the build error/warning is not present. But on another app of my I don't use support-vX and get the error if I update others support related as "appcompat, cardview or recyclerview"
adding
api 'com.android.support:support-v4:26.0.2'
api 'com.android.support:support-v13:26.0.2'

to  gradle dependencies fix the problem, did not notice any size difference on the apk, probably because proguard.
So minor workaround may help someone to use latest support libs, particularly I don't see a problem on dialogs or anywhere in the app
:+1:

latest support is 26.1.0 now.

I have same problem now:
`Error:Execution failed for task ':app:processDebugManifest'.

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.1.0) from [com.android.support:design:26.1.0] AndroidManifest.xml:28:13-35
is also present at [com.android.support:support-v13:26.0.1] AndroidManifest.xml:28:13-35 value=(26.0.1).
Suggestion: add 'tools:replace="android:value"' to  element at AndroidManifest.xml:26:9-28:38 to override.`

That's expected.

So, no have solution?

yes the solution is described on the issue, just add/compile the dependency even if you don't use it, so all are on the same version, at least it works for me as I post before.

Oh now i see. Thank so much.

I'm so sorry, but I still can't get this to work.
I'm using v26.1.0 of appcompat etc. but still get the error.
You say "just add/compile the dependency even if you don't use it..."
Where? Which dependency?
Sorry, I'm lost...

@firestormza
just read it all
https://github.com/afollestad/material-dialogs/issues/1451#issuecomment-328670297

because library had  v13  ,I just import a newest version,    resolved
implementation "com.android.support:support-v13:26.1.0"

Until material-dialogs support libs are updated to v26.1.0, just try something like this:
With ./gradlew -q dependencies app:dependencies --configuration compile you see all dependencies of all packages, e.g.
|    +--- com.afollestad.material-dialogs:core:<IP_ADDRESS>
|    |    +--- com.android.support:support-annotations:26.0.1 -> 26.1.0
|    |    +--- com.android.support:support-v13:26.0.1
|    |    |    +--- com.android.support:support-annotations:26.0.1 -> 26.1.0
|    |    |    \--- com.android.support:support-v4:26.0.1 -> 26.1.0 (*)
|    |    +--- com.android.support:appcompat-v7:26.0.1 -> 26.1.0 (*)
|    |    +--- com.android.support:recyclerview-v7:26.0.1 -> 26.1.0 (*)
|    |    \--- me.zhanghai.android.materialprogressbar:library:1.4.1
|    |         +--- com.android.support:appcompat-v7:25.3.1 -> 26.1.0 (*)
|    |         \--- com.android.support:support-annotations:25.3.1 -> 26.1.0

Just add the top level dependencies from "com.afollestad.material-dialogs" and  "me.zhanghai.android.materialprogressbar" manually:
compile 'com.android.support:support-annotations::26.1.0'
compile 'com.android.support:support-v13:26.1.0'
...

compile('com.afollestad.material-dialogs:core:<IP_ADDRESS>') {
    transitive = false
}
compile('me.zhanghai.android.materialprogressbar:library:1.4.1') {
    transitive = false
}

However, errors may be caused ;)

I had the same issue with Manifest Merging but when I downgraded to
 implementation 'com.afollestad.material-dialogs:core:<IP_ADDRESS>'
all the problems solved completely. i think it's an issue with the new version (<IP_ADDRESS>);

I solved with making downgrade.

@P-Zenker It's working solution but to keep transitive dependencies (and to avoid an explicit dependency on me.zhanghai.android.materialprogressbar:library:1.4.1) you can use the following approach:
implementation("com.afollestad.material-dialogs:core:<IP_ADDRESS>") {
    exclude group: 'com.android.support', module: 'support-v13'
}

@vnidens Yes, that is a smart approach

If you want to use the latest library version while running the latest android support library version (since <IP_ADDRESS> uses android support library 26.0.1), put this in your build.gradle file
    final MATERIAL_DIALOG_LIB_VERSION = '<IP_ADDRESS>'
    compile ("com.afollestad.material-dialogs:core:$MATERIAL_DIALOG_LIB_VERSION") {
        exclude group: 'com.android.support'
    }

The goal should be to just update the support library dependencies in material-dialogs, not downgrading the app's support lib version or making other workarounds.
For now I guess the right way as described in the gradle docs is not to use exclude but to work around it usinng a resolution strategy like this:
configurations.all {
    resolutionStrategy.force 'com.android.support:support-v13:26.1.0'
}

That'll resolve the dependency conflict but doesn't exclude the whole support-v13 dependency from the classpath. Instead it loads the correct version.
Anyway, looking forward to material-dialogs being updated to support lib 26.1.0!

I'm doing it this way and it's working.
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:support-compat:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
// ... other dependencies here
compile ('com.afollestad.material-dialogs:commons:<IP_ADDRESS>') {
    exclude group: 'com.android.support'
}

https://github.com/afollestad/material-dialogs/releases/tag/<IP_ADDRESS>

if i use the support library ,don't use AndroidX,so i can't use material-dialogs?

@aloneSingingStar nope - the Support Library is deprecated by Google.


Change installation guide

I suggest to change installation guide. It is simpler and faster to use Composer command line to install dependencies than adding them to composer.json manually.

Thanks @piotros! :)


region persistence between relaunches

Hey Tomasz,
thanks for the cool plugin. I was wondering if regions persist between relaunches as described here:
https://developer.apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html
"In this case, the options dictionary passed to the application:didFinishLaunchingWithOptions: method of your app delegate contains the key UIApplicationLaunchOptionsLocationKey to indicate that your app was launched because of a location-related event."
thanks a lot,
max

Hey @maxpli , sorry for not answering. Is something not working?

hey Tomasz, i am currently using another geofence plugin, which seems to have a problem with region persistence. so i was wondering if this is an issue in your plugin as well before switching. thanks for your help. max

On iOS number of regions is limited to 20. Maybe this is the problem. I haven't tested that though. There were no issues about persisting regions, but I cannot guarantee. iOS implementation is nothing special so far, just using CLLocationManager.

thanks Tomasz


Is it possible to set canvas size?

Is it possible to set canvas size so it will generate conditioning for any other aspect ratio besides square?

It is auto resized to the canvas size you are using. You can read more about how the grid system works in the original omost repo


Refactor APIStatusError Import for Better Readability

Change the import statement for APIStatusError from using a relative path with '_exceptions' to a direct import, enhancing code readability and consistency.

[x] I understand that this repository is auto-generated and my pull request may not be merged

Changes being requested
Additional context & links

I don't believe we'd want this change. Thank you though.


delete files after use

Delete test outputs after the test.

Coverage remained the same at 25.0% when pulling dd3647215da8159a2ff8b870707ae636b2d49abc on CountReadsCleanup into b3ef3e174205d8ef0b31ea12430f961d412853ab on CountReadsTest3.

This looks good.  Merge it when ever you are ready.
Note that there are alternate approaches to creating a temp dir and cleaning up so that it does not need to be done in each individual test.  Failsafe hooks into the pre- and post-integration-test maven phases and some logic can be added there.  Another alternative, though less tidy than making use of the maven phases, is to number all integration tests so that they run in a particular order (e.g., have an setup integration test that starts with "000"  and a teardown that runs in "999").

Coverage remained the same at 25.0% when pulling f0797dec018eae2d414e19edc49c5e9982b34744 on CountReadsCleanup into b3ef3e174205d8ef0b31ea12430f961d412853ab on CountReadsTest3.

@deflaux true, we could do that. It's a matter of taste I suppose: I like deleting only the specific file created (and have each test use a different file) because (i) unlike the "delete every file in the folder" approach, it's robust to having multiple tests running in parallel and (ii) if we need to inspect the output, having each test output to its own file makes that easier - just delete the corresponding delete. And generally I like to have paired operations near each other, so if each test creates a file I prefer to have it deleted in the same function. But I agree that there are also advantages to the approach of using a dedicated folder and nuking it afterwards.

@googlebot, you're slowing us down. Have some coffee!

@jean-philippe-martin :)

merged manually.


DRILL-4201 : Allow partial filter to be pushed down project for bette…

…r performance.
Partial filter pushdown has performance benefits because:

enable partition pruning, if the pushed down involves partitioning columns,
allow the filter to be applied in upper stream.

@amansinha100 , could you please review the patch for DRILL-4201? Thanks!

+1 LGTM.


athena: add prefix param to listDataDirectory

Would using something like https://docs.python.org/3/library/glob.html be more efficient since it doesn't require walking the tree in python?

Would using something like https://docs.python.org/3/library/glob.html be more efficient since it doesn't require walking the tree in python?

maybe I am missing something, but it looks to me like glob will walk the entire tree if you search recursively (we would need to use ** to support partial directory name matches)
since this only supports a prefix I should be able to build something simple that uses scandir() more intelligently

I assumed glob would talk directly to the os/filesystem, but's basically what you implemented but then with a regex. So disregard!

should be good to merge once tests pass


Upgrade dependencies to versions which use ASM 6.0.0+

Motivation:
We need to upgrade our dependencies to versions which use ASM 6.0.0+ to support compiling on java9.
Modifications:
Update animal-sniffer-maven-plugin and maven-shade-plugin.
Result:
Fixes https://github.com/netty/netty/issues/6100

@normanmaurer shall I rebase on 4.0?

Cherry-picked into 4.1 (f301edfb9d91fedcdde63468eccde266efb05e50) and 4.0 (78a0699ef8c48edba760e82d84e31827490eaceb)


Optimize nonlocal Hamiltonian version of VUMPS

Start to address the performance issue from #55.
Timings for the Hubbard model example, with these parameters:
maxdim = 30 # Maximum bond dimension
cutoff = 1e-6 # Singular value cutoff when increasing the bond dimension
max_vumps_iters = 200 # Maximum number of iterations of the VUMPS algorithm at each bond dimension
outer_iters = 5 # Number of times to increase the bond dimension
localham_type = MPO # or ITensor

model_params = (t=1.0, U=10.0, V=0.0)

The timing results I get for the old VUMPS implementation (InfiniteSum{ITensor}) are:
 21.846960 seconds (269.77 M allocations: 25.508 GiB, 18.09% gc time, 0.02% compilation time)

With this PR, the timing of the new VUMPS implementation (InfiniteSum{MPO}) gives:
 21.031708 seconds (296.70 M allocations: 28.086 GiB, 17.55% gc time, 0.11% compilation time)

Before this PR, the timing for the new VUMPS implementation (InfiniteSum{MPO}) was:
 36.917972 seconds (473.90 M allocations: 41.024 GiB, 16.59% gc time, 0.01% compilation time)

@LHerviou

@LHerviou there may be some other optimizations to make but the timing is very close to the old local Hamiltonian version now.


Update the vendor SDK for spring-cloud

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

This change is

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/metacpp/azure-cli-extensions.git@asc-sdk-update#subdirectory=src/$EXT&egg=$EXT"

spring-cloud


CI: Integrate Kubernetes testing in the CI flow

With these changes, k8s will be tested with the jenkins
jobs instead of using localCI.
Fixes #928.
Signed-off-by: Salvador Fuentes<EMAIL_ADDRESS>

lgtm

LGTM


Missing of headers support on UMF messages affecting hydra-router response on legacy environments

Hydra stands on the UMF message spec for req/res as well as for real-time messaging. UMF messages does not consider possible HTTP headers except 'Content-Type' and 'Authorization'. On legacy environments, to integrate the hydra can suppose a problem because HTTP headers are heavily used.
As an example, let's analyze the response headers of an app built with hapi.js:

http://localhost:3000/echo/hello

Connection →keep-alive
Date →Wed, 19 Apr 2017 08:26:40 GMT
Transfer-Encoding →chunked
cache-control →no-cache
content-encoding →gzip
content-type →application/json; charset=utf-8
vary →accept-encoding

Now the response through the hydra-router:

http://localhost:5353/hapi-service-test/v1/welcome

Connection →keep-alive
Date →Wed, 19 Apr 2017 08:27:09 GMT
Transfer-Encoding →chunked
X-Hydra-Tracer →1lkglmzk4pn

As a result, the response from the router is unreadable because there are missing headers like content*
In my opinion, limiting the HTTP headers support on the hydra-router->hydra->UMF will limit the capabilities of the hydra ecosystem as well, at least on existing environments who want to get boosted by using hydra.
Here, I would suggest to introduce a "headers" field on the UMF spec, that could be used for communication headers like HTTP, in consequence it would make hydra-* more compatible on legacy environments.
Looking forward to your feedback.
Regards, Rolando.

@jkyberneees I'm doing some cleanup on Hydra-Router that will make this an easier conversation to have. Specifically, the HydraRouter routeRequest function is too large and in need of refactoring. Feedback on your points above to follow...

Great, I keep an eye on this.

@jkyberneees please see if hydra-router 1.3.1 addresses this issue. Also requires that the service themselves using the latest hydra / hydra-express as updates are in makeAPIRequest.

@cjus Hi Carlos, thanks for taking care of the issue/feature/suggestion.
I reviewed the code and I see that you inject the request headers and consider the response too, however I don't understand this exclusion: https://github.com/flywheelsports/hydra/blob/master/index.js#L1103
Unfortunately, the feature is not yet working as expected, since hapi services are still not properly routed ;(
Let me know if you need more details to reproduce.
Best Regards, Rolando

@jkyberneees the line you referenced checks whether instanceList.length is zero - if that's the case then there are no more service instances to try so a service unavailable response is necessary.  The 1.3.1 release was found to have problems - please see if the issue is resolved in hydra-router:1.3.8


generate missing builders

Generates the following builders:

Gtk.AdjustmentBuilder
Gtk.CellRendererBuilder
Gtk.IconViewBuilder
Gtk.ShortcutLabelBuilder
Gtk.ShortcutsWindowBuilder

There are still some builders to be generated, but I think they don't make sense

Gtk.WidgetBuilder base class
Gtk.ArrowBuilder deprecated
Gtk.MiscBuilder base class
Gtk.ContainerBuilder base class
Gtk.BuilderBuilder I'm not sure about this one?
Gtk.CellAreaBuilder base class
Gtk.CellAreaContextBuilder base class
Gtk.EventControllerBuilder base class
Gtk.IMContextBuilder no idea
Gtk.NativeDialogBuilder I don't think anyone creates a NativeDialog other than a Gtk.NativeFileChooser
Gtk.GestureBuilder base class
Gtk.GestureSingleBuilder base class
Gtk.MenuShellBuilder base class
Gtk.SettingsBuilder I'm not sure about this one, most of the time you use the default settings, but it could be useful if you're writing lower level stuff with Rust & GTK
Gtk.RangeBuilder base class
Gtk.TreeModelFilterBuilder no idea
Gtk.TreeModelSortBuilder no idea
Gtk.TreeSelectionBuilder no idea

@bilelmoussaoui Please fix order https://travis-ci.org/github/gtk-rs/gtk/jobs/698999324#L970

@bilelmoussaoui Thanks. 👍

Travis CI won't pass because of examples. Fixed them in https://github.com/gtk-rs/lgpl-docs/pull/74.
Thanks @bilelmoussaoui !


Sanitize post titles for Insights (and other endpoints)

Fixes: #377
Sanitizes the post titles coming back from the API when used in stats. This follows roughly the same method used in WPiOS. Added a unit test to ensure the fix was proper.
Sample return data from the API:
{
  "found": 16,
  "posts": [
    {
      "ID": 58,
      "date": "2016-01-21T14:46:42+00:00",
      "title": "This “has” special & characters",
      "URL": "https://ardwptest1.wordpress.com/2016/01/21/this-has-special-characters/"
    }
  ]
}

And the fixed output:

Needs Review: @aerych

Yeah I thought about that. I'll extract it out to a method in the remote service class at a minimum.

@aerych Ready for another review. I'm not happy with the #import hack for the Swift class but it's something I have to do for now until I have the time to figure out how to configure CocoaPods right :smile:

Works great and all tests pass.
:shipit:

Really appreciate the review, @aerych!


Invoke gofmt with simplify-code flag

Enables code simplification checks of gofmt.
Related to #2462
cc @jonboulle @s-urbaniak

no objections, LGTM

LGTM on green.

Not green though: gofmt checking failed

@alban I've checked the errors and those files need to be fixed, I'll submit another PR with the fixes, then we can merge this


Questions: Why stacknet performance bad in Zillow Competition

Hi dear stacknet developers and the author Mr.@kaz-Anova
I am new to kaggle, and i found stacknet a COOL tool to use. However it is not as GOOD as i expected using the default parameter.... I tried tuning/adding features.. but none of them give me any improvment yet. So that's why i post this passage, hopefully someone can guide me how to tune a BETTER stacknet (paramaters, folds, regressors, etc) for Zillow Competition.
As far as the doc said:
https://github.com/kaz-Anova/StackNet/tree/master/example/zillow_regression_sparse
the performance of StackeNet alone ONLY achieve around 0.0647 on LB, which is not good, comparing with other kernels. Some kernels can achieve a high score with a single model (lightgbm alone up to 0.0644). And there are also Kernels that use a 2-layer traditional-way stacking that achieve 0.0645 (https://www.kaggle.com/wangsg/ensemble-stacking-lb-0-644/comments), which is much better than stacknet as far as the LeaderBoard concerned.
So my question is that, why stacknet is not working very well on LB in Zillow competition?
1.Is it the problem of default parameter or regressors?
If so, could @kaz-Anova please help update the paramater and regressors in the example so that the performance can gets better? (i tried a lot, but not imporved) . If so, more people (especially freshman like me) will be more happy to use StackNet.
2. Is it a problem of reusable K-fold metrics?
( As far as i tried, my 5-fold LightGBM average works much worse than my 1-time Lightgbm.)
In my opinion, the Zillow LeaderBoard test data is evaluated on 2016.10 ~ 2016.12 . However, the data between 2016.10~2016.12 are very few in the training set. So , a K-FOLD may be is a bad ways to do the competition.
If so, would it be possible that StackedNet will **  in the future support a DIFFERENT out-of-bag metrics, not just KFOLD**, so that more flexible blending(i.e. devided data into two parts. Then only use history data to train, predict on future data, and use the future data to do stacking) or sliding window algorithm would be supported( you know, especially for time-related problem, sometimes it is bad to leak the future into the past with K-fold or reusable K-fold)
3.Some other questions about the Zillow Competition using StackNet.
to Mr.@kaz-Anova: Sincerely congrats on the high score that you and your team achieve. However, considering the bad performance of Stacknet now, I am very curious if you are still using the StackNet in the competition as a strong predictor (instead as a weak model for averaging..)
Apologize for my rudeness (if that is the case) and  surely I know that one can achieve better LB scoring just by combing with other kernels... .But my question is, the baseline of Stackenet now is so far away from other kernels. Are there any practical methods(or tricks) that you would like to share in order to make stacknet works better?
p.s. I am now a fan of stacknet, i want to express gratitude to Mr.@kaz-Anova for the converience that powerful stacknet brings us. I wish it could be even BETTER in the future.
Sincerely

@iFe1er
Thank you for the detailed feedback.

I did not tune the parameters for long . I only gave this example as a starting point . It is not in the spirit of the competition to put very good parameters  - people should try themselves to play with them and try and get a better score. I thought I put enough to make people want to try it. However you are right that the default parameters of StackNet are in principle not very good - I have not done much work in this area as I personally like to tune the models myself. At the same time, better parameters do not always mean better stacking. You are indeed looking for good models , BUT you are also looking for diversity and in many occasions even bad models add value. Nothing stops you from creating the same data and run the same lightgbm through StackNet.  If you feel more comfortable with python , you could use the pythongeneric module to add your own models. I will not change the parameters at this point. Also there is an element of over-fitting for the public scripts.  I believe you underestimate (and therefore you need to take into account) that the public scripts  have been tuned heavily on the public leader board and are likely not to generalise well in new data.

You can add your own folds. Look here for data_prefix.  There is an example using it here .  To answer your question though, yes in the future there will be more options out of the box.

Performance of StackNet even in the example I shared is not bad and as you see it blends well with other approaches.  I cannot say what my team uses right now because I am not alone in this
.  For sure it does not use only one approach.

You could try adding all these kernels into stacknet  (as in create the data files used in the kernels and make new stacks) and run multiple of them.
As general tips, you need to create modelling diversity with StackNet. There are 2 main ways to generate this :
Diversity based on algorithms:

2-3 gradient boosted trees
2-3 Neural nets
1-2 ExtraTrees/Random Forest
1-2 linear models as in logistic/ridge regression, linear svm
1 knn model
1 Factorization machine (libfm)

Diversity based on input data via making different transformations :

Categorical features: One hot, label encoding, target encoding, frequency
Numerical features: outliers, binning, derivatives, percentiles, scaling
Interactions : col1*/+-col2, groupby, unsupervised

The tuning may take time . I normally create a smaller training set and try to find good parameters changing one at a time. I do this for multiple algorithms one by one. Once I finish with one, I move on to the next. I do this until I create many , then I put them all together and run again with the full data.
Hope this helps a bit.

@kaz-Anova  Thank you very much for the very detailed, inspiring and super helpful answers. I will give stacknet a shot and try some different methods that you generously share.
And you are right, as a freshman i might have indeed under-estimated the performance and the flexibility of stacknet. And i agree on your saying that spirit of stacknet, is to always think out of the box and try new things, and dig more interesting facts out of the data.
Thank you again for your generous help and enlightening answers, wish you good luck with the competition! (and wish for myself too, haha!)

@kaz-Anova follow up on the data_prefix part. In the example of the amazon competition, you wrote

The second part will use the data per fold 5. Execute from the command line : java -Xmx3048m -jar StackNet.jar train task=classification data_prefix=amazon_counts test_file=amazon_counts_test.txt pred_file=amazon_count_pred.csv verbose=true Threads=1 folds=5 seed=1 metric=auc

I see you set up the prefix, but you did not specify the pairs of train/cv data sets. How does this work exactly? Should i set the train_file=[[train_0.txt,cv0.txt],[train_1.txt,cv1.txt],[train.txt]] for specifying the pairs of datastet or is there other ways to approach this?
Thanks a lot for this great tool!

hI @cks1001652  .  It is exactly as you pointed out. You need to add the indices at the of the files yourself (e.g. 0 or 1 or more if folds>2)

Could I ask two more detailed questions?

If you have multiple important parameters for one model, will you do a grid search or search by experience? How do you know the hyper-parameter is good enough and go to another model?
For multiple layer StackNet, how do you tune models on the second or even higher layer?


Filter on multiple columns

Sorry if i am missing this feature, but is there any ability to apply filtering across multiple columns or even all columns?  Thanks in advance.

Hi,
Going through old issues so late reply...
It's not possible using the component interface, I think the easiest thing you could do is to have some Textfields that alter a query you send in to the IEnumerable to the table.

how to filter multi-column by  FilterByColumnName in matblazor!!


Fix AUR link in docs

Hmm maybe we should simplify the arch section because most people who use arch probably know how to install a package from the AUR.
### Arch Linux AUR

You can install [lazydocker from the AUR](https://aur.archlinux.org/packages/lazydocker)

Also the arch section is now a bit confusing as it gives the impression there is a different package for the development version while the url points to the same package as installed in the example above it

Fair enough, I just wanted something to grab and copy paste.

Maybe we can include the yay example as it's a commonly used package manager for arch

Sounds good to me. I think most Arch users would be happy with the yay example

Thanks


baseclasses triggers and autocasting

let's make sure we treat the users gently if they pass something like on or t, y, yes'.. to boolean field and treat it as True and f, no, off as False

[x] expose triggers (via events)
[ ] improve docs

Added events (for triggers).

For fields, we now support this auto-casting.

verifying

supported types


[REQUEST] Refresh button similar to U-Block origin

Is your feature request related to a problem? Please describe.
To solve the brave compatibility issue regarding previous issue.
Describe the solution you'd like
Add a refresh button similar to U-Block origin?
Describe alternatives you've considered
Add a quick toggle to reload the extension, instead of manually having to do so within the browser manager.

Issue #28 may be fixed in the next release.
I found a way to make the extension work without DeclarativeNetRequests, but its less reliable as it needs to be loaded before the map.js script gets the chance to do its setup phase.
So I making DNR a option (enable by default) so if somebody's browser doesn't support it or has a buggy implementation they can disable it.
But making DNR optional also means I have to dynamically load the DNR rules which in my test cases also fixes the brave issue not loading the rules.
I still added the reload button though, its a useful feature if other bugs like that show up.

Feature is added in the latest release.
If something does not seem right or isn't working you can always reopen this or post a new issue.


Unable to get Molecule from Smile

Description:

RDKit Version: 2016.03.5
Platform: Python 2.7 on Ubuntu 18.04

from rdkit import Chem
In [32]: m=Chem.MolFromSmiles('[NH2]=C(N)c1ncnn1')
[12:00:21] Explicit valence for atom # 0 N, 4, is greater than permitted
RDKit ERROR: [12:00:21] Explicit valence for atom # 0 N, 4, is greater than permitted

I am trying to obtain a molecule from a SMILE. The SMILES are obtained from the QM9 data set. I run into the above error for some of the molecules.
How can I resolve this issue?

That molecule is not chemically reasonable: N #0 (the first atom) is neutral and four valent, this violates the octet rule.
The aromatic ring is also going to cause problems: none of the heteroatoms in the ring have an indication of implicit H count, so that's going to fail as well.
If you believe that this is supposed to correspond to a stable molecule, your best bet is probably to contact the group that produced the dataset and ask them to fix their SMILES-generation process.

I'm closing this because it looks like the question is answered. Please reopen if necessary.