Anyway to change an axis color?

Couldn't find anything in the documentation or code :(

The line color can be set in ChartAxisModel.


Per issue 593, append .yml to each filename used in the generated con…

…figmap. I wasn't able to see my alerts in the Prometheus UI until I did this

all of this lgtm, thanks a lot!


Guaranteed request delivery in LB mode

Implement a mechanism in the CBLT proxy to ensure guaranteed delivery of incoming requests, with failover and retry when backends fail to respond.

When a request arrives at the CBLT proxy, it should first attempt to forward the request to Backend 1.
If Backend 1 does not respond within the lb_timeout period, the proxy retries the request up to lb_retries times.
If Backend 1 is still unresponsive after the retries, the proxy forwards the request to Backend 2 based on the lb_policy algorithm.
Backend 1 is marked as down and INFO log entry should be created.
During the lb_interval period, the proxy should periodically check the status of Backend 1.
If Backend 1 responds successfully during a check, it should be marked as up and INFO log entry should be created.
If no backends are available, ERROR log entry should be created to escalate the failure.
The proxy should periodically continue checking the status of the backends.

Values

reliability by design
auto-recovery
less configuration parameters, health_uri not needed

done but not merged in main
I will merge soon


bug: image in tabs example is not working

Bug Report
Ionic version:

[x] 4.x
Current behavior:

I just installed the ionic example following the docs using "ionic start tabs" and the image in the "Get Started" section is not displayed.
Expected behavior:

It should display the image like it does in the browser
Steps to reproduce:

I tried to load the app on my android phone (Xiaomi Redmi Note 7 with miui 10, android 9) using ionic server --devapp and it is the same using ionic cordova run android --device however it is working fine   using the emulator (the image is well displayed).
Related code:

    <ion-card class="welcome-card">
      <ion-img src="/assets/shapes.svg"></ion-img>
      <ion-card-header>
        <ion-card-subtitle>Get Started</ion-card-subtitle>
        <ion-card-title>Welcome to Ionic</ion-card-title>
      </ion-card-header>
      <ion-card-content>

Now that your app has been created, you'll want to start building out features and components. Check out some of the resources below for next steps.

      </ion-card-content>
    </ion-card>

Other information:

Ionic info:

Ionic:

   Ionic CLI                     : 5.2.1 (C:\Users\thoma\AppData\Roaming\nvm\v12.6.0\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.6.0
   @angular-devkit/build-angular : 0.13.9
   @angular-devkit/schematics    : 7.3.9
   @angular/cli                  : 7.3.9
   @ionic/angular-toolkit        : 1.5.1

Cordova:

   Cordova CLI       : 9.0.0<EMAIL_ADDRESS>   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 4 other plugins)

Utility:

   cordova-res : 0.5.2
   native-run  : 0.2.7

System:

   Android SDK Tools : 26.1.1 (C:\Android\android-sdk)
   NodeJS            : v12.6.0 (C:\Program Files\nodejs\node.exe)
   npm               : 6.9.0
   OS                : Windows 10

Hi there,
I am not seeing this issue on my end. To clarify, this issue is happening on your physical device, but it is working fine on an emulator?

Hi there,
I am not seeing this issue on my end. To clarify, this issue is happening on your physical device, but it is working fine on an emulator?

Yes exactly, but I can try with another device if you want.

Are you able to post a screenshot of what the issue looks like? I've been testing on emulators and physical devices and have only been able to reproduce this once, so I can't reproduce it persistently yet.

Are you able to post a screenshot of what the issue looks like? I've been testing on emulators and physical devices and have only been able to reproduce this once, so I can't reproduce it persistently yet.

Here is the image:
https://media.discordapp.net/attachments/260166967703502849/597542180294361108/Screenshot_2019-07-07-23-38-53-325_io.ionic.devapp.png
But I also tried something else: I added the image in the code just at the top, like that:
    <ion-img src="/assets/shapes.svg"></ion-img>
    <ion-card class="welcome-card">
      <ion-img src="/assets/shapes.svg"></ion-img>
      <ion-card-header>
        <ion-card-subtitle>Get Started</ion-card-subtitle>
        <ion-card-title>Welcome to Ionic</ion-card-title>
      </ion-card-header>
      <ion-card-content>

Now that your app has been created, you'll want to start building out features and components. Check out some of the resources below for next steps.

      </ion-card-content>

The image not included into the ion-card is correctly displayed:
https://media.discordapp.net/attachments/260166967703502849/597546158239252493/Screenshot_2019-07-07-23-54-51-469_io.ionic.starter.png

@Th0rgal Do you think this issue is related to the one you are having? https://github.com/ionic-team/ionic/issues/18734

@Th0rgal Could you try to set a min-height: 1px on the <ion-img> and let me know if that causes the image to load correctly? In my case it seems to have resolved the issue:
in your global.scss:
:root {
  ion-img {
    /**
     * Bug fix for:
     * https://github.com/ionic-team/ionic/issues/18734
     */
    min-height: 1px !important;
  }
}

@Th0rgal Do you think this issue is related to the one you are having? #18734

Yeah this is possible

@Th0rgal Could you try to set a min-height: 1px on the <ion-img> and let me know if that causes the image to load correctly? In my case it seems to have resolved the issue:
in your global.scss:
:root {
  ion-img {
    /**
     * Bug fix for:
     * https://github.com/ionic-team/ionic/issues/18734
     */
    min-height: 1px !important;
  }
}

It works! Thank you very much

You're welcome!

Thanks for the issue. I am going to close this as a duplicate of https://github.com/ionic-team/ionic/issues/18734.


The download doesn't work

I tried clicking multiple times but nothing downloads

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

ID: 76771dfe-6e20-07b3-1c61-3a79d98ac90f
Version Independent ID: 4add6294-87b5-924d-5242-ba318a87a123
Content: Abstract-Azure Functions and Serverless Platform Security
Content Source: articles/security/abstract-serverless-platform-security.md
Service: security
GitHub Login: @TomShinder
Microsoft Alias: TomSh

@intrepidsoldier
Thanks for your feedback! We will investigate and update as appropriate.

@intrepidsoldier We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


details for the extension

Hello
I really appreciate your work here
and I would like to know some information about it
here I added the Nafath extension  in Keycloak

and based on this flow

I would like to know how exactly the extension will understand this flow
thanks in advance and will be glad to hear from you : )

to be more specific where should i set  api key
and the rest of configuration
can i do it in admin ui - or it should be in the java code

Hello @khalifa005,
unfortunately the package is not ready for production, I stoped working on it as I had limited time back then, I recommend to implement it within your application without keycloak, if your interested to work with me on it, please let me know

@PyKhaled
I already  developed this template to be open source
https://github.com/khalifa005/e-proc
and right now I added the keycloak to handle the authentication
and to make it more interesting I'm planning to add Nafath to it
so fore sure i will be glad to work with to to make it available to the community
then i will use it inside the template
right now i'm reading the keycloak doc to extend the server so i can have better understanding
and if there is a chance that u guide me and i will do my best to complete it
last thing why did u mention this
I recommend to implement it within your application
is there any blocking issue related to make it happen !!

Just keep in mind that Nafath has changed the api to be a MFA rather than authentication method, so we need to change the lib to to be like otp, when u navigate the documentation focus on otp and authentication flows, not authentication provider as before

@PyKhaled
I did read and developed custom auth

the key is in token exchange to have the ability to get a token for a user without having his password
would like to know ur opinion about this
https://www.linkedin.com/posts/mahmoud-khalifa-643936138_randon-activity-7145163581922217984-fPMC?utm_source=share&utm_medium=member_desktop

Hello
I really appreciate your work here and I would like to know some information about it
here I added the Nafath extension in Keycloak
and based on this flow
I would like to know how exactly the extension will understand this flow
thanks in advance and will be glad to hear from you : )

Hi @khalifa005 & @PyKhaled
any idea from where I can get the full integration document Guide, please?
Thanks


Fix read string

should be string not wstring

@binsee I have added QR code display in the latest example code，The QR code can be displayed on the console , but I still can't log in by scanning the code. The displayed QR code is invalid. Would you please check the latest code.

@binsee I have added QR code display in the latest example code，The QR code can be displayed on the console , but I still can't log in by scanning the code. The displayed QR code is invalid. Would you please check the latest code.

Fixes by #75


Rancher cannot add labels to nodes in imported local/aliyun/k3s cluster

After adding label to the host, the host page will not flash for a moment. It can be successfully added normally through the command kuberctl.

Rancher version (v2.3.2):
Cluster type (Imported):
Kubernetes version  v1.14.8-aliyun.1:
Docker version 18.9.2:

Root cause is the same with https://github.com/rancher/rancher/issues/23840

@sangeethah this was already fixed and closed in master with https://github.com/rancher/rancher/pull/24192, so this is backport to 2.3.

Verified on 2.3-head - commit id: 0da334b28
Steps:

Import a k3s cluster.
Go to Nodes page of cluster.
Edit node --> Add labels.
Labels get added on the node.
Edit node again --> Add labels --> Remove the previously added label and add a new one.
New one gets reflected on the node.


Is there a way to define a secret override for any multi-dev?

The docs mention environment overrides, which can be set for dev, test, live.
For multi-devs, is there a way to define a single override that is used in any multi-dev? or is it required to set an override for each multi-dev? (e.g. pr-1234).
I think using the value-for-multi-devs when first setting a secret, then overriding for dev, test, live envs should work as well. I just want to know what's possible in order to choose what works best for us.
Thanks!

From Drupal Slack:

The design was that the default value should be set up to be meaningful in any context where there is no override, e.g. all the multidevs. It should be possible to make an env override for the dev environment, although I realize I am not 100% sure.


how to set overlayStyle

I am trying like overlayStyle={green} but i know it is not the exact way, can you put an example here how to set it

give a overlayStyle prop seems replace this whole origin overlayStyle, not merge.
origin value of overlayStyle is
overlay: {
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: 'rgba(0,0,0,0.85)',
justifyContent: 'center',
alignItems: 'center'
},
so just replace backgroundColor with something like 'green', 'rgba(0,0,0,0.5)'


Works on Chrome mobile view, but not on iOS Safari

http://www-uat.al.com/oap_testing_blog/2017/09/testing_images.html
It seems that when I render this page on the mobile view on Chrome, the first image in the article loads correctly, taking up the full width of the screen. But when I load this in iOS Safari, it is not loading full width.
On desktop mobile view, it is loading in a 480px width image, where on mobile, it is loading in a 960px width image. Here is my image tag:
<img srcset="http://image.com/width328/img/image.jpg 328w, http://image.com/width480/img/image.jpg 480w, http://image.com/width600/img/image.jpg 600w, http://image.com/width960/img/image.jpg 960w" alt="EPCOT(M. Mouse)">
As a comparison to that first image, if you scroll down to the second article, you will find an image in the same position that is responding correctly.

@MikesBarto2002 Thanks for submitting this issue. This doesn't seem, however, to be an issue with picturefill, as iOS Safari natively supports responsive images. When that happens, picturefill doesn't even run. So this is most likely an issue with your markup, or a bug with Safari. Thanks!


Update bigint modpow documentation

This commit corrects the range for the case that modulus < 0. I know it's a small inconsequential change but it's also an easy fix, so I figured why not.

Never mind! The documentation is correct (Since modulus < 0, (modulus, 0] is actually the right range)


Disable all watchdog timers at startup by default

Use the __post_init hook to disable all watchdog timers at startup
Refactor the watchdog timer drivers to be less reliant on the embedded-hal traits, add enable functions
Update the watchdog-related examples

All examples will need updating, and I have largely completed this already (oof), however I'd like to take some time to review all the changes and make sure I haven't done anything silly, so I will save that for another PR I think)

All modified examples have been tested, and I tried a couple others as well to ensure the watchdogs were indeed disabled.

It's definitely a good change, less boilerplate is always appreciated!
Weirdly enough, though, I never had to disable TIMG0/1 WDTs. Do you happen to know why?

I'm not 100% sure to be honest, I've noticed the same thing though. Just included for completeness here. I think you may be right and there may be some configuration for that somewhere, but again not sure.

It's definitely a good change, less boilerplate is always appreciated!
Weirdly enough, though, I never had to disable TIMG0/1 WDTs. Do you happen to know why? Edit: maybe it's a bootloader thing...?

If these WDTs are enabled or not depends on whether it's an direct-boot or a esp-idf-bootloader boot (and I think for the esp-idf bootloader it might be even configurable - not sure). So to be on the safe side we just disable all the WDTs - won't hurt if they are already disabled

Looks good but it seems it breaks the rtc_watchdog example on ESP32 at least 🤔

Looks good but it seems it breaks the rtc_watchdog example on ESP32 at least 🤔

Ahh yeah my bad, misunderstood the example. I had accidentally introduced a bug, should be fixed now.


Expose config

In the need of trying to use a custom ImagePickerActivity (or an extension) I would like to be able to override ImagePicker#getIntent() and access my current config to launch the activity.
The getter is for general purpose.

That was exactly my use case. I needed to override getIntent() to use my own activity, since I needed to customize the life cycle.  Particularly:
#ImagePicker

public Intent getIntent(Context context) {
    Intent intent = new Intent(context, OnboardingImagePickerActivity.class);
    intent.putExtra(ImagePickerConfig.class.getSimpleName(), config); // <--- now protected
    return intent;
}

public class MyImagePickerActivity extends ImagePickerActivity {

    @Override
    public void onBackPressed() {
        setResult(RESULT_CANCELED);
        finish();
    }

}

@esafirm ready

@mdumrauf the visibility still public mate.
And getIntent() should be changed to
    public Intent getIntent(Context context) {
        Intent intent = new Intent(context, ImagePickerActivity.class);
        intent.putExtra(ImagePickerConfig.class.getSimpleName(), getConfig());
        return intent;
    }

Cheers!

@esafirm now ready!


Change to "what is qml" answer

Small change to potentially improve search engine visibility.

Website build
Commit: 46a3310880c0bae56a0ad35226a06bfbf2e77698
Circle build number: 600
Website zip: https://600-214003948-gh.circle-artifacts.com/0/tmp/qml_html.zip
Website url: https://600-214003948-gh.circle-artifacts.com/0/_build/html/index.html
Please double check the rendered website build to make sure everything is correct.


About page and credits

Two part discussion:

I'm not sure the about page makes any sense any more. At the very least I'd make the content DB driven, but I'd opt to just remove it entirely.
Footer credits could probably be moved or reference something more relevant like a link to the github repo page and possibly a CONTRIBUTORS file (See go/CONTRIBUTORS or gcc/MAINTAINERS) or the Contributors tab.

I agree with dropping the about page. It doesn't add anything at this point. I also agree with your second point, it should just be a link to the github page.

I spun off the Contributors file into another ticket. Feel free to take it from me if you like.


Integration with git

When there is a .git folder, autocommit on exit from the app. Track renames.

done w/o tracking renames


[PIP-165] Auto release client useless connections

Motivation
Currently, the Pulsar client keeps the connection even if no producers or consumers use this connection.
If a client produces messages to topic A and we have 3 brokers 1, 2, 3. Due to the bundle unloading(load manager)
topic ownership will change from A to B and finally to C. For now, the client-side will keep 3 connections to all 3 brokers.
We can optimize this part to reduce the broker side connections, the client should close the unused connections.
So a mechanism needs to be added to release unwanted connections.
Why are there idle connections?
1.When configuration maxConnectionsPerHosts  is not set to 0, the connection is not closed at all.
The design is to hold a fixed number of connections per Host, avoiding frequent closing and creation.
https://github.com/apache/pulsar/blob/72349117c4fd9825adaaf16d3588a695e8a9dd27/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConnectionPool.java#L325-L335
2-1. When clients receive command-close, will reconnect immediately.
It's designed to make it possible to reconnect, rebalance, and unload.
https://github.com/apache/pulsar/blob/72349117c4fd9825adaaf16d3588a695e8a9dd27/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConnectionHandler.java#L122-L141
2-2. The broker will close client connections before writing ownership info to the ZK. Then clients will get deprecated broker address when it tries lookup.
https://github.com/apache/pulsar/blob/72349117c4fd9825adaaf16d3588a695e8a9dd27/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java#L1282-L1293
Goal
Automatically release connections that are no longer used.

Scope

Pulsar client
Contains connections used by consumers, Producers, and Transactions.

Pulsar proxy
Contains only the connection between Proxy and broker

Approach
Periodically check for idle connections and close them.
Changes
API changes
ClientCnx added an idle check method to mark idle time.
/** Create time. **/
private final long createTime;
/** The time when marks the connection is idle. **/
private long IdleMarkTime;
/** The time when the last valid data was transmitted. **/
private long lastWorkTime;
/** Stat. enumerated values: using, idle_marked, before_release, released**/
private int stat;
/**
  * Check client connection is now free. This method may change the state to idle.
  * This method will not change the state to idle.
  */
public boolen doIdleCheck();
/** Get stat **/
public int getStat();
/** Change stat **/
public int setStat(int originalStat, int newStat);

Configuration changes
We can set the check frequency and release rule for idle connections at ClientConfigurationData.

@ApiModelProperty(
        name = "connectionMaxIdleSeconds",
        value = "Release the connection if it is not used for more than [connectionMaxIdleSeconds] seconds. "
                     + "If  [connectionMaxIdleSeconds] < 0, disabled the feature that auto release the idle connections"
)
private int connectionMaxIdleSeconds = 180;

@ApiModelProperty(
        name = "connectionIdleDetectionIntervalSeconds",
        value = "How often check idle connections"
)
private int connectionIdleDetectionIntervalSeconds = 60;

Implementation

Pulsar client
If no consumer, producer, or transaction uses the current connection, release it.

Pulsar proxy
If the connection has not transmitted valid data for a long time, release it.

@eolivelli @gaoran10 @gaozhangmin @315157973 @lhotari @michaeljmarshall I have sent an email to<EMAIL_ADDRESS>could you take a look.

@eolivelli @gaoran10 @gaozhangmin @315157973 @lhotari @michaeljmarshall I have start a vote and already send email, could you take a look.
Discuss Link: https://lists.apache.org/thread/t6h98qs2coc56z06tw38hdlljl67ft4n
Vote Link: https://lists.apache.org/thread/qfg9jfocpsc0tzy45ozgoothw1jpxk5g

Left a comment in discuss email list.

Maybe the config connectionMaxIdleSeconds could be as the switch, disable this feature if the connectionMaxIdleSeconds is a negative value.

Maybe the config connectionMaxIdleSeconds could be as the switch, disable this feature if the connectionMaxIdleSeconds is a negative value.

Good idea. I changed it. Thanks @gaoran10

Left a comment in discuss email list:)

@eolivelli  Can you give a vote for this proposal, Thanks. https://lists.apache.org/thread/qfg9jfocpsc0tzy45ozgoothw1jpxk5g


Contact form working

the contact form should work as expected, user can contact the admin

Hey, hope you're doing great! As an GSSoC contributor, I'm keen on ramping up my involvement for GSSoC'24. Could you assign this issue to me? I'm excited to continue contributing to the project. Thanks a bunch!!


Strive for symmetrical API to browsers FormData.

It would be awesome if this library acted a bit more like a serverside polyfill for FormData in the browser.
I am very willing to create PR's for the items below. (Hopefully with help).
Here are a list of things that are currently missing (Feel free to comment more):
Existing Methods

[x] FormData.append(String: field, String: value, Object: options)
Should allow for options to be a String that is the file name.
https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-formdata-append
[ ] FormData.delete(String: field)
[ ] FormData.entries()
[ ] FormData.get(String: field)
[ ] FormData.getAll()
[ ] FormData.has()
[ ] FormData.keys()
[ ] FormData.set(String: field, String: value, Object: options)
[ ] FormData.values()

Other

[x] Expose global FormData
Taken care of by isomorphic-form-data.
[ ] Support for blobs
Currently this is not supported - not sure if it's needed.
[ ] Polyfill in browser.js
Browser.js simply returns "FormData" currently. Perhaps we could consider adding a polyfill for the browser instead. Something like https://gist.github.com/Rob--W/8b5adedd84c0d36aba64.
This may be out of scope.

:+1: Looks like a plan

After realizing that the new methods are not in the spec and are specific to chrome and firefox I am unsure if we should implement them. However I think it would be good to leave this issue open for others to add api differences with the browser.

@alexindigo What is your opinion on making form-data expose the global FormData?
This would likely be a 2.x thing, however I think it would position the library as more of a "browserfill", similar to node-fetch which exposes global fetch.
Unrelated:
You may find this interesting https://github.com/bitinn/node-fetch/pull/31.
Node-fetch will now automatically work with node-form-data :).

Like global.FormData on library level?
And great job on bringing libraries closer together (but not too close to keep it PG) :) Thanks.

global.FormData exactly. It's generally bad practice (obviously), however in the sense of a polyfill for FormData (on the server side) this would make sense and is exactly what node-fetch does.
To keep compatibility with older versions we could still expose FormData via module.exports but also expose it as a global.

Main purpose of this module is to allow form submission from the server-side. Exposing global variables by default would be very unexpected by majority of consumers. But I see your desire for isomorphic all the things!™ :)
How about if we'd have another module, that would announce it's global nature more explicitly.
For example:
package.json:
{
  "name": "global-form-data",
  "dependencies":
  {
    "form-data": "*"
  }
}

index.js:
module.exports = global.FormData = require('form-data');

@alexindigo I think that is a great idea since it wouldn't require a major release.
"global-form-data" would be nicely descriptive but part of me wants to suggest "node-form-data".
Either would do fine though.
The only concern is if users might find it confusing to have two packages - not sure if thats an issue.

New module would behave exactly as the original one plus global export which is specified in the name.
And good readme file would always help.
Only confusion I can see could happen with versions, for that case owner of the new module, could stick to strict version dependency and update the package along with form-data.
Like:
{
  "name": "global-form-data",
  "version": "1.0.0-rc2",
  "dependencies":
  {
    "form-data": "1.0.0-rc2"
  }
}

@alexindigo I think a "*" dependency would be fine in this case or at most a "^1.0" or "1.x".
As for names, after thinking about it a bit I quite like isomorphic-form-data. See https://github.com/matthew-andrews/isomorphic-fetch.

@alexindigo What is your opinion on supporting passing a form element to the FormData constructor?
It may be a bit crazy - (Currently I have never needed this) - however after thinking about it, one potential use case would be supporting something like JS-DOM. This could make testing form submission with JSDOM a bit easier.
We could defer the actual form parsing logic to a dependency, keeping changes to this lib to a minimum.

Btw, I found interesting thing:
Note: To be clear, the difference between FormData.set() and FormData.append() is that if the specified key does already exist, FormData.set() will overwrite the existing value with the new one, whereas FormData.append() will append the new value onto the end of the existing values. See their dedicated pages for example code.

As for form parsing, I think it should be different module as well. Maybe we'd expose more guts from FormData for other module to be able to use it in more efficient way.
Btw, we're creating new org for this project, so this new module and that isomorphic shim you mentioned could be under same umbrella if you like.

Just a question: why is this module supposed to be a polyfill for the browser's FormData class? That scenario would be possible to use only via Browserify, Webpack or something like that, and then again I don't see the point.
I would rather like to see the actual multipart body generation cleaned up and extracted into a separate module along with all of the stream helper functions around it. If that layer is made good enough, then it will be much easier to extend it for other multipart types, while keeping the existing fixes.
From the request's perspective for example we don't even need a submit method.

That's the plan, to make it library for libraries. We will split it. And yes Streams need more love. :)
First step would be test coverage, though.

Thanks for the opinion btw.

@alexindigo not a problem. I'm also not against the polyfill, I just want the generation logic as a separate module :)
Here are a few form-data related tests in request (in case they may help you):

https://github.com/request/request/blob/master/tests/test-form.js
https://github.com/request/request/blob/master/tests/test-form-data.js
https://github.com/request/request/blob/master/tests/test-form-data-error.js

Yep, I do like leveldb approach. And thanks a lot for the tests. We'll incorporate them into new test suite.

I think it would be awesome to have a library more focused on multipart generation without things like "submit". It would allow for us to more easily do a polyfill in the future.
Having said that this would involve turning the library into more of a utility with less features and with so many dependants I'm sure lots would break.
@alexindigo what are your thoughts on something like " form-data-core" (please better name) along side "form-data-polyfill" and "isomorphic-formdata"? 4 repos in total.

@DylanPiercey I thought you'd like the idea of submit-less FormData :) Exactly like in the browser.
For now Grandiose Plan looks like following:

Cover everything with tests
Release 1.0 and start semvering
Start breaking things

And the actual libraries, we need something that does streaming multipart for sure.
Then bunch of plugins to determine content length and type.
And seems like we're about to have multiple aggregators like the one to be library for libraries, another one as browser polyfil and another one as server-side-only consumer friendly.
And if we can make them not to wrap one another, but assemble same components in different manner it will be uber awesome.
But it's my pipe dream, let's see how it goes. :)

Just want to propose to you this polyfill https://github.com/jimmywarting/FormData/blob/master/FormData.js (it's built for the browser...) but you are free to copy as much code as you like from my polyfill if it's to any help

gosh nothing is happening in this front.
When can we expect to get all this?
FormData.delete(String: field)
FormData.entries()
FormData.get(String: field)
FormData.getAll()
FormData.has()
FormData.keys()
FormData.set(String: field, String: value, Object: options)
FormData.values()

Any traction on this? A unified API would be amazing.

As for form parsing, I think it should be different module as well. Maybe we'd expose more guts from FormData for other module to be able to use it in more efficient way.
Btw, we're creating new org for this project, so this new module and that isomorphic shim you mentioned could be under same umbrella if you like.

I there a way for parsing right now?

https://github.com/octet-stream/form-data is a spec compliant alternative to this package


[RFC] Add to Melodiia a trait for form build

Building forms is kinda repetitive but it is the recommended way to use Melodiia.
See what happens here, and here, and in any custom controller.
We could provide the following trait to make things smoother, here is an example of implementation:
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Zend\Json\Exception\RuntimeException;
use Zend\Json\Json;

trait GetFormHydratedWithJsonRequest
{
    private function getForm(Request $request, FormFactoryInterface $formFactory, string $type, $data = null): FormInterface
    {
        $form = $formFactory->createNamed('', $type, $data);
        try {
            $requestContent = Json::decode((string) $request->getContent(), Json::TYPE_ARRAY);
        } catch (RuntimeException $e) {
            throw new HttpException(Response::HTTP_BAD_REQUEST, 'Invalid input data', $e);
        }
        $form->submit($requestContent, Request::METHOD_PATCH !== $request->getMethod());

        return $form;
    }
}

This issue was originally written on biig repository.

This has been fixed with the ApiRequestHandler.


Build an offical docker for Turing

Make it available at https://hub.docker.com/

@xukai92 had you started on this issue? If not I could do this. Do we have an Org account on hub.docker.com now? My account is kdr2, I'll appreciate it if you add me as a member 😄

I haven't. Please feel free to take over this issue. We created one org for Turing and added you :)

OK, I will do it this or next week.


save authorname on the card

In GitLab by @lakhoune on May 22, 2020, 16:55
save both authorname and id on the cards
author id to check if user is author
author username to display on the cards in the carousel

In GitLab by @lakhoune on May 22, 2020, 23:36
mentioned in commit b2fddf94f6bb59bc1e44982cc28c5aa4575e76d3

In GitLab by @lakhoune on May 23, 2020, 11:15
closed


fix: liq 935 white screen error on add erc20

:books liq-old-935 Ticket :books:

It feels like we could end up missing this conversion somewhere as it's duplicated many times Is it not possible to do this in a central way? For example, can we instead just make sure symbols in cryptoassets are converted/don't have special symbols. Either inside the cryptoassets library or in the cryptoassets getter It might be possible also to use this as a middleware to do the conversion? https://router.vuejs.org/guide/advanced/navigation-guards.html

I agree - I am going to refactor it and only then we are going to merge in dev.

It feels like we could end up missing this conversion somewhere as it's duplicated many times Is it not possible to do this in a central way? For example, can we instead just make sure symbols in cryptoassets are converted/don't have special symbols. Either inside the cryptoassets library or in the cryptoassets getter It might be possible also to use this as a middleware to do the conversion? https://router.vuejs.org/guide/advanced/navigation-guards.html

It is refactored according to your requirements. I think it is much better now. If it looks good to you - we can merge.

a new pr solving the problem is opened against the release candidate


That one weird Uncle

When a block does not have any uncles it shows 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 as an Uncle.
This shouldn't happen, and if there's some technical reason for this specific hash being shown then it should be filtered out/not displayed as a special case.
Example: http://etherhub.io/block/5733546

Fun little note here, this hash is a great way to find all the projects using explorer, the reach is surprisingly large (even RSK uses our explorer):
https://www.google.com/search?q=0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347&ei=-oDjWq_ZDcX25gKzi7yIDw&start=10&sa=N&biw=1396&bih=691&dpr=1.38

yea! ETC explorer is most likely etherscan.io style clone, I guess.


getOrigin?

If a Matrix is created via fromRotationTranslationScaleOrigin(), is it possible to recover the origin, or more specifically, each of:

Rotation
Translation
Scale
Origin

?

No. There are infinitely many values of Rotation, Translation, Scale and Origin that combine to the same matrix. Origin is a convenience parameter, but it is impossible to recover. Decomposition only returns one of the many matrices it could be, using some heuristics to define its outputs.

If we know the origin and it is not [0, 0, 0], is it possible to get the rotation, translation and scale?

Rotation and scale are identical, the only difference is the translation. If you know the origin you used to create the matrix with, you can extract the original translation with something like (untested):
translation[0] = mtx[12] - origin[0] + (mtx[0] * origin[0] + mtx[4] * origin[1] + mtx[8] * origin[2]);
translation[1] = mtx[13] - origin[1] + (mtx[1] * origin[0] + mtx[5] * origin[1] + mtx[9] * origin[2]);
translation[2] = mtx[14] - origin[2] + (mtx[2] * origin[0] + mtx[6] * origin[1] + mtx[10] * origin[2]);

Here is a function in typescript:
function getTranslation(out: vec3, mat: mat4, origin?: vec3) {

	out[0] = mat[12];
	out[1] = mat[13];
	out[2] = mat[14];

	if (origin) {
		const ox = origin[0];
		const oy = origin[1];
		const oz = origin[2];

		/*
		Algebraically solve for translation vector, based on code in
		fromRotationTranslationScaleOrigin
		*/
		out[0] += mat[0] * ox + mat[4] * oy + mat[8] * oz - ox;
		out[1] += mat[1] * ox + mat[5] * oy + mat[9] * oz - oy;
		out[2] += mat[2] * ox + mat[6] * oy + mat[10] * oz - oz;
	}

	return out;
}

And here are some tests (in addition to the existing getTranslation tests):
it('should get translation with zero origin', () => {
	const out = [0, 0, 0] as vec3;
	const matrix = mat4.create();
	fromTranslation(matrix, [1, 2, 3]);

	getTranslation(out, matrix, [0, 0, 0]);
	expect(out).toBeEqualish([1, 2, 3]);
});

it('should get translation with non-zero origin', () => {
	const out = [0, 0, 0] as vec3;
	const matrix = mat4.create();
	const quaternion = [-0.1767767, 0.3061862, 0.1767767, 0.9185587] as quat;
	const origin = [-4, -5, -6] as vec3;
	fromRotationTranslationScaleOrigin(matrix, quaternion, [1, 2, 3], [1.5, 2.5, 3.5], origin);

	getTranslation(out, matrix, origin);
	expect(out).toBeEqualish([1, 2, 3]);
});

it('should not modify origin', () => {
	const out = [0, 0, 0] as vec3;
	const matrix = mat4.create();
	const quaternion = [-0.1767767, 0.3061862, 0.1767767, 0.9185587] as quat;
	const origin = [-4, -5, -6] as vec3;
	fromRotationTranslationScaleOrigin(matrix, quaternion, [1, 2, 3], [1.5, 2.5, 3.5], origin);

	getTranslation(out, matrix, origin);
	expect(origin).toEqual([-4, -5, -6]);
});

Feel free to use and adjust for your styling needs.


fix registering issue when node is not immediately spinned

Hello,
Here is a suggestion for the classes in NodeWithMode. They immediately trigger the registering but if you don't spin the node fast enough (like I do since I need extra configuration after the creation of the instance)

then you quickly get flagged unresponsive by the Autopilot
then disconnection happen because the Autopilot is not sending you check request anymore when flagged unresponsive (is it wanted? or a bug?)

In all cases, it could be good to either:

let the hand to the user to trigger the registration just before spinning the node
have a more complex mechanism to check that the node is spinning before doing the registration.

The modification if put in this PR is for solution 1). However, this changes usage as the user must do the registration "manually" before spinning the node.
So I am open to suggestions on this.
Also, I did a minor modification to access the Executor because you might need that if you want to access specific functions you implemented in the class inherited from ExecutorBase.
Damien

I think in your case I would rather not use NodeWithMode, and instead manually create the ros node, which gives you more flexibility.
NodeWithMode is meant for simplicity, and adding an extra registration call would not allow to use it like this anymore:
rclcpp::spin(std::make_shared<px4_ros2::NodeWithMode<MyExecutor, MyMode>>("my_node"));


PiecewiseExponentialFitter seems to be broken

Hi i was running your quickstart example to familiarize with the program and there seems to be an issue generating the broken arrays for the piecewise fitting

from lifelines.datasets import load_waltons
df = load_waltons() # returns a Pandas DataFrame
T = df['T']
E = df['E']

from lifelines import *

fig, axes = plt.subplots(2, 3, figsize=(9, 5))

kmf = KaplanMeierFitter().fit(T, E, label='KaplanMeierFitter')
wbf = WeibullFitter().fit(T, E, label='WeibullFitter')
exf = ExponentialFitter().fit(T, E, label='ExponentalFitter')
lnf = LogNormalFitter().fit(T, E, label='LogNormalFitter')
llf = LogLogisticFitter().fit(T, E, label='LogLogisticFitter')
# pwf = PiecewiseExponentialFitter([40, 60]).fit(T, E, label='PiecewiseExponentialFitter')

wbf.plot_survival_function(ax=axes[0][0])
exf.plot_survival_function(ax=axes[0][1])
lnf.plot_survival_function(ax=axes[0][2])
kmf.plot_survival_function(ax=axes[1][0])
llf.plot_survival_function(ax=axes[1][1])
# pwf.plot_survival_function(ax=axes[1][2])

works, but if I uncomment
 pwf = PiecewiseExponentialFitter([40, 60]).fit(T, E, label='PiecewiseExponentialFitter')

the follwoing error is raised -
Summary: ValueError: cannot reshape array of size 0 into shape (0)
Whole trace -
ValueError                                Traceback (most recent call last)
<ipython-input-9-109e19de1150> in <module>
     29 lnf = LogNormalFitter().fit(T, E, label='LogNormalFitter')
     30 llf = LogLogisticFitter().fit(T, E, label='LogLogisticFitter')
---> 31 pwf = PiecewiseExponentialFitter([40, 60]).fit(T, E, label='PiecewiseExponentialFitter')
     32
     33 wbf.plot_survival_function(ax=axes[0][0])

/opt/conda/lib/python3.6/site-packages/lifelines/utils/__init__.py in f(self, *args, **kwargs)
     43         def f(self, *args, **kwargs):
     44             self._censoring_type = cls.RIGHT
---> 45             return function(self, *args, **kwargs)
     46
     47         return f

/opt/conda/lib/python3.6/site-packages/lifelines/fitters/__init__.py in fit(self, durations, event_observed, timeline, label, alpha, ci_labels, show_progress, entry, weights, left_censorship)
    710             show_progress=show_progress,
    711             entry=entry,
--> 712             weights=weights,
    713         )
    714

/opt/conda/lib/python3.6/site-packages/lifelines/fitters/__init__.py in _fit(self, Ts, event_observed, timeline, label, alpha, ci_labels, show_progress, entry, weights)
    888         # estimation
    889         self._fitted_parameters_, self._log_likelihood, self._hessian_ = self._fit_model(
--> 890             Ts, self.event_observed.astype(bool), self.entry, self.weights, show_progress=show_progress
    891         )
    892

/opt/conda/lib/python3.6/site-packages/lifelines/fitters/__init__.py in _fit_model(self, Ts, E, entry, weights, show_progress)
    511                 args=(Ts, E, entry, weights),
    512                 bounds=self._bounds,
--> 513                 options={"disp": show_progress},
    514             )
    515

/opt/conda/lib/python3.6/site-packages/scipy/optimize/_minimize.py in minimize(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)
    601     elif meth == 'l-bfgs-b':
    602         return _minimize_lbfgsb(fun, x0, args, jac, bounds,
--> 603                                 callback=callback, **options)
    604     elif meth == 'tnc':
    605         return _minimize_tnc(fun, x0, args, jac, bounds, callback=callback,

/opt/conda/lib/python3.6/site-packages/scipy/optimize/lbfgsb.py in _minimize_lbfgsb(fun, x0, args, jac, bounds, disp, maxcor, ftol, gtol, eps, maxfun, maxiter, iprint, callback, maxls, **unknown_options)
    333             # until the completion of the current minimization iteration.
    334             # Overwrite f and g:
--> 335             f, g = func_and_grad(x)
    336         elif task_str.startswith(b'NEW_X'):
    337             # new iteration

/opt/conda/lib/python3.6/site-packages/scipy/optimize/lbfgsb.py in func_and_grad(x)
    283     else:
    284         def func_and_grad(x):
--> 285             f = fun(x, *args)
    286             g = jac(x, *args)
    287             return f, g

/opt/conda/lib/python3.6/site-packages/scipy/optimize/optimize.py in function_wrapper(*wrapper_args)
    291     def function_wrapper(*wrapper_args):
    292         ncalls[0] += 1
--> 293         return function(*(wrapper_args + args))
    294
    295     return ncalls, function_wrapper

/opt/conda/lib/python3.6/site-packages/scipy/optimize/optimize.py in __call__(self, x, *args)
     61     def __call__(self, x, *args):
     62         self.x = numpy.asarray(x).copy()
---> 63         fg = self.fun(x, *args)
     64         self.jac = fg[1]
     65         return fg[0]

/opt/conda/lib/python3.6/site-packages/autograd/wrap_util.py in nary_f(*args, **kwargs)
     18             else:
     19                 x = tuple(args[i] for i in argnum)
---> 20             return unary_operator(unary_f, x, *nary_op_args, **nary_op_kwargs)
     21         return nary_f
     22     return nary_operator

/opt/conda/lib/python3.6/site-packages/autograd/differential_operators.py in value_and_grad(fun, x)
    128     in scipy.optimize"""
    129     vjp, ans = _make_vjp(fun, x)
--> 130     return ans, vjp(vspace(ans).ones())
    131
    132 def grad_and_aux(fun, argnum=0):

/opt/conda/lib/python3.6/site-packages/autograd/core.py in vjp(g)
     12         def vjp(g): return vspace(x).zeros()
     13     else:
---> 14         def vjp(g): return backward_pass(g, end_node)
     15     return vjp, end_value
     16

/opt/conda/lib/python3.6/site-packages/autograd/core.py in backward_pass(g, end_node)
     19     for node in toposort(end_node):
     20         outgrad = outgrads.pop(node)
---> 21         ingrads = node.vjp(outgrad[0])
     22         for parent, ingrad in zip(node.parents, ingrads):
     23             outgrads[parent] = add_outgrads(outgrads.get(parent), ingrad)

/opt/conda/lib/python3.6/site-packages/autograd/core.py in <lambda>(g)
     59                     "VJP of {} wrt argnum 0 not defined".format(fun.__name__))
     60             vjp = vjpfun(ans, *args, **kwargs)
---> 61             return lambda g: (vjp(g),)
     62         elif L == 2:
     63             argnum_0, argnum_1 = argnums

/opt/conda/lib/python3.6/site-packages/autograd/numpy/numpy_vjps.py in <lambda>(g)
    355 def dot_vjp_1(ans, A, B):
    356     A_ndim, B_ndim = anp.ndim(A), anp.ndim(B)
--> 357     return lambda g: dot_adjoint_1(A, g, A_ndim, B_ndim)
    358 defvjp(anp.dot, dot_vjp_0, dot_vjp_1)
    359

/opt/conda/lib/python3.6/site-packages/autograd/tracer.py in f_wrapped(*args, **kwargs)
     46             return new_box(ans, trace, node)
     47         else:
---> 48             return f_raw(*args, **kwargs)
     49     f_wrapped.fun = f_raw
     50     f_wrapped._is_autograd_primitive = True

/opt/conda/lib/python3.6/site-packages/autograd/numpy/numpy_vjps.py in dot_adjoint_1(A, G, A_ndim, B_ndim)
    347     else:
    348         return swap(onp.tensordot(
--> 349             G, A, [range(-A_ndim - B_ndim + 2, -B_ndim + 1), range(A_ndim - 1)]))
    350
    351 def dot_vjp_0(ans, A, B):

/opt/conda/lib/python3.6/site-packages/numpy/core/numeric.py in tensordot(a, b, axes)
   1335     oldb = [bs[axis] for axis in notin]
   1336
-> 1337     at = a.transpose(newaxes_a).reshape(newshape_a)
   1338     bt = b.transpose(newaxes_b).reshape(newshape_b)
   1339     res = dot(at, bt)

ValueError: cannot reshape array of size 0 into shape (0)

Hm, I don't know what's wrong. It's possible it's a bug that was fixed recently. Are you on version 0.21.0?

I just installed today.
So I assume is the latest version.
I can check Monday if that helps  as I’ll be w/o my computer over the weekend.
Take care and thanks for the quick reply :)

On Jul 12, 2019, at 4:34 PM, Cameron Davidson-Pilon<EMAIL_ADDRESS>wrote:
Hm, I don't know what's wrong. It's possible it's a bug that was fixed recently. Are you on version 0.21.0?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi cam-
The version that was automatically added by pip was 0.22.0
Should I revert to 0.21?
Ale

On Jul 12, 2019, at 4:34 PM, Cameron Davidson-Pilon<EMAIL_ADDRESS>wrote:
Hm, I don't know what's wrong. It's possible it's a bug that was fixed recently. Are you on version 0.21.0?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

using pip version 0.22.0 was installed -
Sorry for the slow reply -  was w/o computer over the weekend

hm, strange. Stay on 0.22.0 (in fact, 0.22.1 is available).
I can't repro the error locally. What version of numpy / scipy are you on? You can see it with pip freeze

Numpy 1.13.3
Scipy 1.1.0
Thanks :)
On Mon, Jul 15, 2019 at 9:37 AM Cameron Davidson-Pilon <
<EMAIL_ADDRESS>wrote:

hm, strange. Stay on 0.22.0 (in fact, 0.22.1 is available).
I can't repro the error locally. What version of numpy / scipy are you on?
You can see it with pip freeze
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/CamDavidsonPilon/lifelines/issues/774?email_source=notifications&email_token=ACWHIF53UIC6ISKYC66DZK3P7SRVBA5CNFSM4ICS5YMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ6IFSA#issuecomment-511476424,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWHIF2PRQKK3G2ATVXB7XTP7SRVBANCNFSM4ICS5YMA
.

--
- Alejandro -

Ah, investigating this I have found inconsistent numpy version pinning. In our setup.py, we suggest numpy>=1.6, but in our requirements we suggest numpy>=1.14.0.
The latter is correct, as that's also what we test against. Can you try upgrading to numpy>=1.14.0?

Will do and will let you know!
Thanks so much!
Ale
On Mon, Jul 15, 2019 at 11:03 AM Cameron Davidson-Pilon <
<EMAIL_ADDRESS>wrote:

Ah, investigating this I have found inconsistent numpy version pinning. In
our setup.py, we suggest numpy>=1.6, but in our requirements we suggest
numpy>=1.14.0.
The latter is correct, as that's also what we test against. Can you try
upgrading to numpy>=1.14.0?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/CamDavidsonPilon/lifelines/issues/774?email_source=notifications&email_token=ACWHIFYCILRVLYHOIJ3O25DP7S3WPA5CNFSM4ICS5YMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ6P3ZI#issuecomment-511507941,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWHIF3LLO4IX4LLJC2LI7DP7S3WPANCNFSM4ICS5YMA
.

--
- Alejandro -

Upgrading to 1.14 solved he issue!
Thanks-
A
On Mon, Jul 15, 2019 at 11:04 AM Alejandro Wolf Yadlin<EMAIL_ADDRESS>wrote:

Will do and will let you know!
Thanks so much!
Ale
On Mon, Jul 15, 2019 at 11:03 AM Cameron Davidson-Pilon <
<EMAIL_ADDRESS>wrote:

Ah, investigating this I have found inconsistent numpy version pinning.
In our setup.py, we suggest numpy>=1.6, but in our requirements we suggest
numpy>=1.14.0.
The latter is correct, as that's also what we test against. Can you try
upgrading to numpy>=1.14.0?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/CamDavidsonPilon/lifelines/issues/774?email_source=notifications&email_token=ACWHIFYCILRVLYHOIJ3O25DP7S3WPA5CNFSM4ICS5YMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ6P3ZI#issuecomment-511507941,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWHIF3LLO4IX4LLJC2LI7DP7S3WPANCNFSM4ICS5YMA
.

--
- Alejandro -

--
- Alejandro -


Custom properties are not available for multiple files

When multiple files are selected Main, Additional and File properties can be edited while Custom properties (like replaygain_album_gain, r128_album_gain or vorbis-vendor) are hidden. It can be quite misleading as it looks like they are missing.

Well this is by choice. Many files have many and often different custom properties (especially between different file formats) and it would be hard to edit these all together. We could just show the custom properties shared between these files but then the ones that different will disappear which may cause confusion as well. It's not like how we can do <keep> for built-in properties such as Title, Artist, Album since we know those properties exists, like I said it's hard to determine a shared consensus of custom properties for multiple files...So we just decided to allow managing of custom properties on a single file basis.

So we just decided to allow managing of custom properties on a single file basis.

Maybe a dimmed label under main properties showed when multiple files selected saying something like "Custom properties can only be changed for inidividual files" should be added to prevent confusion?

Maybe a dimmed label under main properties showed when multiple files selected saying something like "Custom properties can only be changed for inidividual files" should be added to prevent confusion?

I mean I hid the whole section to signify this...but I don't see the harm in adding the label to be like the data is still here.

https://github.com/NickvisionApps/Tagger/releases/tag/2023.9.0-beta1


Optimizer Refactor

This PR is a major refactor for the Cascade-style query optimizer to tackle several issues for the current optimizer and make it truly Cascade. Here are what we have achieved in this PR:

Avoid separating logical transformation and physical implementation into two phases to enable cost-based pruning.
Break the optimization pass into different tasks as Orca and Columbia optimizer did for better readability and tracking capability.
Add an additional rule-based rewrite phase instead of throwing all the rewrite logic in operator tree construction before actual cost-based optimization takes place to allow predicate push-down (done), unnesting (WIP to merge the old codes), etc.
Avoid mixing property and operator together. Property should define the physical characteristics of the output such as data distribution and compression scheme. Operator should follow relational algebra. For now, we only include sort property.
Refactor operators to make join operator explicitly include join keys, index scan operator explicitly specify which index to use, etc. Add several missing operators including Filter, MarkJoin, SingleJoin, etc.
Refactor rules to allow them to have Promise values to guide the rule application order according to the requirement. Include bitmask in group expression to avoid applying the same rule multiple times.
Separate stats construction and cost calculation. Stat is stored as a logical property for each logical equivalent group instead of constructing it on the fly.

The main files involved in the refactoring and their major implementation/changes are :

In src/binder/bind_node_visitor.cpp, we support binding to query derived tables. We also transform star expression to be the actual columns in the binder.
In src/optimizer/query_to_operator_transformer, we added logic to transform query derived tables, we also transform predicates to logical filter operator at this step, these filters will eventually be associated with join & scan operators in the rewrite phase.
In src/optimizer/optimizer_task.cpp, we implement the optimizing process as tasks. Basically, we follow the  Columnbia optimizer to implement the optimize pass. We also implement our own top-down and bottom-up rewrite phase.
In src/optimizer/rule_impls.cpp, predicate push-down rules are implemented.
In src/optimizer/child_property_deriver.cpp, input/output properties are derived. Currently, we only support sort property.
In src/optimizer/input_column_deriver.cpp, input/output columns are derived. We only need output column information when generating the execution plan, so we do not store column as physical property now.
In src/optimizer/plan_generator.cpp, we generate the corresponding plan for the best operator tree based on the required output columns.

Note: this PR is not ready to be merged since we are still cleaning up and migrating old codes, although we have already passed the test cases and supported all types of "flat" queries, i.e multi-way joins, we have supported before.
WIP:

Documentation.
Pass catalog to the optimizer for the what-if api.
Move binder out of optimizer.
Migrate unnesting subquery codes.
Migrate cost model codes into cost_calculator and stats_calculator (need help from the cost model team @bechob @allisonwang ).
Add rewrite framework for the expression tree.
Join reordering.

"Farewell, farewell"

@hzxa21 Does this replace #868 ?

Yes. This PR has integrated predicate push-down into the new framework.

Guys, does this PR replace/modify/improve on the LockFreeArray that is predeclared to a size of 1 million ?

No, this PR does not fix the size issue. Have we discussed how do we want to fix this? Should we just set the default size to be smaller or reimplement the lock-free array?

Coverage decreased (-75.8%) to 0.0% when pulling a2697d36d806c1a3da4ed3ca97c153275273d48c on hzxa21:optimizer-refactor into 3c1933c3b2f2d4a49c4dfcdbd24bf1df7c974901 on cmu-db:master.

Coverage decreased (-75.8%) to 0.0% when pulling 1232061fd9aa33abcd8c1d7e0eac51bd95bd0c79 on hzxa21:optimizer-refactor into 3c1933c3b2f2d4a49c4dfcdbd24bf1df7c974901 on cmu-db:master.

Coverage decreased (-75.8%) to 0.0% when pulling 1232061fd9aa33abcd8c1d7e0eac51bd95bd0c79 on hzxa21:optimizer-refactor into 3c1933c3b2f2d4a49c4dfcdbd24bf1df7c974901 on cmu-db:master.

Coverage decreased (-0.8%) to 75.051% when pulling 4c8cc036eea7c6fea440ad774df8d8747d37d5e9 on hzxa21:optimizer-refactor into 3c1933c3b2f2d4a49c4dfcdbd24bf1df7c974901 on cmu-db:master.

Coverage decreased (-0.8%) to 75.036% when pulling 4c8cc036eea7c6fea440ad774df8d8747d37d5e9 on hzxa21:optimizer-refactor into 3c1933c3b2f2d4a49c4dfcdbd24bf1df7c974901 on cmu-db:master.

Coverage decreased (-0.8%) to 75.054% when pulling e4a3cbfbb074ea00365e425aef6811c390790cae on hzxa21:optimizer-refactor into 3c1933c3b2f2d4a49c4dfcdbd24bf1df7c974901 on cmu-db:master.

Coverage decreased (-0.4%) to 75.386% when pulling cc3bf41737c34e7f26f02c08f1d5e2c48c60f466 on hzxa21:optimizer-refactor into 5409ea2f202b9c1fc3a199798dbf308e14083cf3 on cmu-db:master.

Coverage decreased (-0.4%) to 75.397% when pulling cc3bf41737c34e7f26f02c08f1d5e2c48c60f466 on hzxa21:optimizer-refactor into 5409ea2f202b9c1fc3a199798dbf308e14083cf3 on cmu-db:master.

Changes Unknown when pulling 44aed812952c463ae7ab8c20fdb9a259d0752c94 on hzxa21:optimizer-refactor into ** on cmu-db:master**.

Coverage decreased (-2.5%) to 73.395% when pulling 44e896c87a1eff41ce6cf6906a2c2acdd0fbe8c1 on hzxa21:optimizer-refactor into 12133fada1e430fc2507afadac52ab3d7cdcbad2 on cmu-db:master.

Hey @malin1993ml , we just added some comments for important classes, member variables and member functions. I think this is good to be reviewed. One thing I want to mention is that depth and has_subquery members are unused because we haven't integrated unnesting logic yet. Same with single_join and mark_join. So maybe you could skip those part for now, as we may further modify them when integrating unnesting.

@chenboy I'm reviewing the PR. But at the meantime, I don't know why Travis is not building your latest commits. Can you try to resolve the conflicts in your PR and push again, see whether it builds?

@chenboy Oh also, please add the what-if API (pass a catalog object pointer as an optional argument to the optimizer; default would be the global singleton), if you haven't done that already. Thanks!

Coverage decreased (-2.4%) to 73.404% when pulling d10e25f06ee9b102e60f16912ced05fa03ae0ab8 on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-0.4%) to 75.478% when pulling 00ba1de92f2ec0406f7ddfc5f95a94e54367acd1 on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-0.3%) to 75.481% when pulling 00ba1de92f2ec0406f7ddfc5f95a94e54367acd1 on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-0.3%) to 75.495% when pulling c04e3837b4abca8c53fe03914c58d56bd003371d on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

@malin1993ml I added the what-if API. I haven't moved the binder out yet. Because I find that we do a check in the optimizer to only generate plans for single statement queries. Moving the check out of the optimizer is not ideal, so we may need to refactor the optimizer & binder interface. But I'm not sure what is the intent of the check, like whether it is because the executor doesn't support multi-statement queries? So I think we may want to keep the interface for now, and I can move the binder later.

@chenboy Okay. But did you modify the corresponding parts in the optimizer that use the catalog object? I didn't see any change "inside" the optimizer. Like when you decide whether you can use Index Scan for a Logical Get, don't you need to communicate with the catalog? (That's exactly what what-if AIP is going to do, e.g., adding "fake" index to the virtual catalog).

Coverage decreased (-0.2%) to 75.624% when pulling 5fe42451d5ccb5b58a1d2c72a9844dd7b9cc91bb on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-0.2%) to 75.624% when pulling 5fe42451d5ccb5b58a1d2c72a9844dd7b9cc91bb on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-0.04%) to 75.793% when pulling 0524443f983cfa40c83404cb06819977b86705b1 on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-75.8%) to 0.0% when pulling 5b507e8a9ac7dfbb57b0e45de65654f656ecb5ab on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

Coverage decreased (-75.8%) to 0.0% when pulling 5b507e8a9ac7dfbb57b0e45de65654f656ecb5ab on hzxa21:optimizer-refactor into 4ac67de3363e3614199abee8fff4ba899abf25d0 on cmu-db:master.

@chenboy @hzxa21 Is there any update on this? Since this is a big PR, it would be nice if we can have the refactors done and merge it in. Otherwise this will continuously have conflicts with other merged PRs.

I will try to fix it and resolve conflicts today

Coverage decreased (-75.8%) to 0.0% when pulling 5604a3ce58f8c3bcd3bd742021f9ebff584c91ef on hzxa21:optimizer-refactor into 790e61e628a535572aea7b92d53400922c46db10 on cmu-db:master.

Coverage decreased (-0.04%) to 75.731% when pulling 0906a39ccc67ecaa0f0f9ba73ffb59504abe09cc on hzxa21:optimizer-refactor into 790e61e628a535572aea7b92d53400922c46db10 on cmu-db:master.

Coverage decreased (-0.02%) to 75.654% when pulling e7db8b3ad09ba0b1bbc5f08c82d57f92583ac410 on hzxa21:optimizer-refactor into 0e7f6460582d0a40dc9d34f8d0d2fe7b8a6b2373 on cmu-db:master.


Performance improvement when computing the next file block to read

Especially when reading larger files (e.g. a font file for lvgl with some ten kBytes or more).
In principle, when reading files, we have to start with the first file data block.
This is done by searching the destinating data block beginning from the file end.
Littlefs is scanning the blocks from the end to the beginning of the file, until the destinating data block is found.
Depending on the file size this results in reading a very few blocks to many more blocks, just for evaluating the destinating data block.
When it goes to the next file data block to read, again the search for the next file data block takes place.
That means, reading blocks again, starting from the end to the destinating block.
Which means in advance, littlefs has to read again blocks, which has been read by the previous search of the destinating data block.
Except for the last one (or two?) blocks (when shimmy through from the end to the beginning).
If you have a larger file you have to read let's say 10 file blocks to evaluate the location of the first destinating file data block.
For the next successive file data block you have to read again 10 file blocks to evaluate the second destinating file data block.
But when reading the 10 file blocks, the first 9 blocks are the same as before. Only the last block (or last two blocks?) are different.
The closer you get to the end of the file, the fewer blocks have to be read.
Now if we could introduce a small special cache, where we store the block number, and the few bytes, which only contains the related file block linkage data, we do not need to reread the whole block data from memory device.
We just take a look at the cached data, look whether the block with linkage data is available, and take it, if already in the cache.
If we found a misfetch, we invalidate the cache after this position, and on further blockreadings (block linkage readings) we fill the cache up to the maximum size of cache.
This cache could be configurable, to allow more blocks to store, if you work with larger files sizes, or less blocks to store if you just use smaller file sizes.

This is an interesting idea to explore, though first we probably need tools to measure performance. Right now it's a bit difficult to evaluate performance optimizations.

It's worth noting that the data-structure littlefs uses grows logarithmically with the file-size, O(log n). So as the file-size grows even larger, the overhead of this scanning becomes less significant.
 A 10KiB file on 4KiB blocks would only use ~3 blocks, which is right at the threshold where the overhead is still significant and probably noticeable.

I think it would also be interesting to see if more general caching strategies could provide the same performance gain. For example, adding a general purpose block cache (block number + maybe offset + data) could in theory keep the block linkage things in memory while also being reusable for other parts of the filesystem that could benefit from caching, such as recently used metadata.


How to run sweeps with python module?

I am trying to use sweeps to search for the best hyperparameters, but I encountered the problem that I can't run the python module with sweeps config like this.
python -m models.model_name.main
I have tried changed program in config into -m models.model_name.main
program: -m models.DeepAverageNetwork.main
, but it turns out to run python "-m models.model_name.main"  and thus fails.
I would like to know if there's a way to run python module for sweeps?

Just found that we can edit command in yaml file like this:
program: models.model_name.main
command:
  - ${env}
  - python
  - -m
  - ${program}
  - ${args}

Close the issue.

Just found that we can edit command in yaml file like this:
program: models.model_name.main
command:
  - ${env}
  - python
  - -m
  - ${program}
  - ${args}

Close the issue.


test: repair the SourceKit test for Windows (NFC)

Ignore the line ending as in the rest of the SourceKit tests.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please smoke test

CC: @rintaro

[] merge this PR to fix master-rebranch merge.


x/website/_content/doc: refer that crypto/ecdsa.GenerateKey is no longer deterministic since Go 1.20

This change (#58637) recently bit me when upgrading Go, and it left me mad looking for bugs in data transmission when the different keys were the problem.
I gained the habit of reading release notes (at least for major upgrades) to avoid issues, but only the change to the constant-time is mentioned.
As it changes existing behavior, I believe it should be in the release notes, so that no one suffers the same fate :)

cc @FiloSottile @rolandshoemaker @golang/security

I ran into the same problem. Additionally, different keys are generated when run with the same seeded Rand.


Add a way to test email alerts easily

Feature to add: Add an option in raspisump.conf that allows testing to ensure email is in fact sending alerts.

Have not forgotten about this.  Just have not had any time to work on it.

Going to close this for now.  I just have not had time to work on anything and will reopen at a later date.

Heartbeat email will be added in the next release.

Working code in devel branch for anyone wanting to test it.
Must add the following to your raspisump.conf at the end of the file in the [email] section.
If these sections are not added to the conf file, the default will be to not run a heartbeat test.
# Set a heartbeat sms or email interval in order to regularly test that your
# notifications are working as intended.
# To set a heartbeat sms/email set heartbeat = 1 for active
# The default is 0 for no heartbeat emails.
heartbeat = 1

# Set the frequency of the sms/email heartbeat notifications.
# Values are in minutes
# daily   = 1440
# weekly  = 10080
# Monthly = 43200
heartbeat_interval = 10080

Output of Heartbeat SMS/Email Alert
Raspi-Sump
Subj: Raspi-Sump Heartbeat Notification
bigpapi - 08:36pm EDT - Raspi-Sump Email Notifications Working.
Next email test in 10080 minutes

Version 1.2 has been released which includes Heartbeat email capability.
Now available on PyPi for installation with pip.


the second line disappear when there is a lot of data

Bug report
i use three data series with 624 records in everyone, and everything work like a charme

but when i use three data series with 1982 records in everyone, the second line disappear

Is there some limitations with high number of data ?

No, there isn't a limit to the number of data-points (although a huge number > 10000 would impact performance).
There must be something else going on. Can I see a codepen of what you are trying?

this is my code:
`
function apexchart(humList, dateList, tempList) {
new Vue({
el: '#chart',
components: {
apexchart: VueApexCharts,
},
data: {
series: [{
name: "Température",
data: tempList
},
{
name: 'Humidité',
data: humList
},
],
chartOptions: {
chart: {
animations: {
enabled: false,
},
toolbar: {
show: true,
tools: {
download: true,
selection: true,
zoom: true,
zoomin: true,
zoomout: true,
pan: true,
},
autoSelected: 'zoom'
},
},
dataLabels: {
enabled: false
},
stroke: {
curve: 'straight',
width: [2, 2],
},
colors: ['#ff6347', '#1565c0'],
title: {
text: 'Capteur N°:3456789',
align: 'left'
},
grid: {
row: {
colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns
opacity: 0.5
},
},
yaxis: [{
axisTicks: {
show: true
},
axisBorder: {
show: true,
color: "#FF1654"
},
labels: {
style: {
colors: "#FF1654"
}
},
title: {
text: "Température (°C)",
style: {
color: "#FF1654"
}
},
},
{
opposite: true,
axisTicks: {
show: true
},
axisBorder: {
show: true,
color: "#247BA0"
},
labels: {
style: {
colors: "#247BA0"
}
},
title: {
text: "Humidité (%)",
style: {
color: "#247BA0"
}
}
}
],
xaxis: {
type: 'datetime',
categories: dateList,
labels: {
rotate: -90,
rotateAlways: true,
hideOverlappingLabels: true,
showDuplicates: false,
trim: false,
minHeight: 50,
maxHeight: 50,
style: {
colors: [],
fontSize: '8px',
fontFamily: 'Helvetica, Arial, sans-serif',
fontWeight: 400,
cssClass: 'apexcharts-xaxis-label',
},
datetimeFormatter: {
year: 'yyyy',
month: 'MMM 'yy',
day: 'dd MMM',
hour: 'HH:mm'
}
}
},
legend: {
position: 'top',
onItemHover: {
highlightDataSeries: true
},
labels: {
colors: undefined,
useSeriesColors: true
},
},
},
},
  })
}

`

As you can see in this case i have 503 records per axis after filtring database records, i think the problem come from irregular datetime interval, isn't it ?

I tried to use only one data serie with basic chart, same problem:
      new Vue({         el: '#chart',         components: {           apexchart: VueApexCharts,         },         data: {           series: [{             name: "Desktops",             data: humList           }],           chartOptions: {             chart: {               height: 350,               type: 'line',               zoom: {                 enabled: false               }             },             dataLabels: {               enabled: true             },             stroke: {               curve: 'straight'             },             title: {               text: 'Product Trends by Month',               align: 'left'             },             grid: {               row: {                 colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns                 opacity: 0.5               },             },             xaxis: {               categories: dateList,             }           },         },       })

I found the problem, the issue come from unset(nan) or null data (nan) or invalid number format (12.54Rtd)


Type 'TFunctionResult' is not assignable to type 'string'.

Why is TFunctionResult is not assignable to 'string'?
I have to pass it as {t("my-translation") as string} as a workaround.
Does anyone know any other workarounds?

If you search across this entire repo for TFunctionResult, you will not find it. I suggest you open an issue in the appropriate repo.

I passed type string to t function as t is generic function like this -> {t("my-translation") }

I ended up specifying t as any to get past this issue. No idea why it is happening and it's also not happening for all translation usage in the entire app, just a few spots.
const { t }: { t: any } = useTranslation()

It happened to us after an update of several libs, we're still trying to figure out, what's the underlying cause here, as this code has compiled this way before....

@mugwump - root declaration is here https://github.com/i18next/i18next/blob/master/index.d.ts#L653

Also this comment might be of some interest? https://github.com/i18next/i18next/issues/1504#issuecomment-742727015

It depends how you define your children prop type of the wrapping component. If you use ReactNode it's not complaining anymore, because it also allows null and undefined as children.
minimal example wrapper component
import React from 'react';

interface Props {
  children: React.ReactNode;
}

function MyComponent({ children }: Props) {
  return (<div>{children}</div>);
}

export default LoadingButton;

Also affected. Problem started after updating some libs (specifically, material-ui).
The error only occurs on some instances only, particularly the ones where the result is passed to a MaterialUIComponent prop:<FormControlLabel label={t(...)} >

isnt this just wrongly typed? even if the key cannot be found, the function will just return the translation key, which is just a string. or am i missing something?

isnt this just wrongly typed? even if the key cannot be found, the function will just return the translation key, which is just a string. or am i missing something?

With returnObjects set to true, t() can return an array or an object, which probably shouldn't be blindly cast to string. You're correct in that the base t() without returnObjects set to true will always return a string (even if it's just key 'example' returned an object instead of a string)
Technically i18next could be typed with conditional typing to return a string when returnObjects is not set, but it would be hard to make work with global settings (i.e. init({ returnObjects: true }).
Ref:
https://www.i18next.com/translation-function/objects-and-arrays
https://www.i18next.com/overview/api#init

I'm having luck with the workaround suggested here by @heikomat


Add Support for Additional Files

If the Notebook to be run/scheduled requires additional *.py files there is no way to pass those files in. The ask would be to be able to pass in either a notebook to run-notebook {schedule, run} notebook OR a notebook and path run-notebook {schedule,run} [--input_path folder/s3_path] notebook. I think the fix would be relatively easy looking at https://github.com/aws-samples/sagemaker-run-notebook/blob/master/sagemaker_run_notebook/cli.py#L61.

any update about this? I have the same problem.

I have similar question, unable to import a config.py file which is needed in the code (inside the jupyter notebook), I am using 0.19.0 version of the script because 0.20 failed, because of the compatibility with Jupyter version <3.8.
Could you kindly let me know what can I manually add in lambda function for this ?

Hi @jimmycfa,
Can you please share your workaround for this? I'm having a similar situation where I have an external .py file that I need to use within my notebook that I want to run.
Were you able to find the solution @JagritiJ @adrianmeltom ?

@adrianmeltom could you share how you did it? I am still trying to figure out how to solve it.


 feature in password_archivable

this allow to configure devise password_archivable module to deny passwords not only based on counts, but on how old they are.
you can use both options together or separately
cheers,

@mm what do you think of this ?
it's working for us

@manno @traxanos @alexdreher

ping

anything preventing this from being merged?
thank you

@manno any comments on this?

I spent a good amount of time making sure I was respecting the style of the gem. and adding every bits
I would appreciate at least a review.
getting it merged would allow us to use the main gem, instead of our fork.
thank you

this will be 2 years old soon enough, closing


Builder: PC console cannot see submissions as they come in on a blinded venue

Since Blinded notes aren't created until submissions close, PCs cannot see the submissions on their console until submissions close.
We should either have the PC console see the original submissions until blinded notes are created, or create blinded notes through a job that is run regularly.

Couldn't repeat the issue.


Question about hyperparameters.

Hi,
We want to know the details about the hyperparameter "batch_hard_count" for reproducing the baselines of "SAFA+mining". We also hope you can provide more details about how to set corresponding settings of your  4 results in README.md .
Best

Besides, we think "mining strategy" denotes that saving the most dissimilar pairs in "mining_save.npy" before 30 epochs. After 30 epoches, you sample the trained pairs half from the  "mining_save.npy" and half from the original datasets. Please let us know if there is any problem with this understanding.

Should be like this. I cannot remember the details right now, but everything should be in the code.

Thanks !


Liquid Exception: Liquid syntax error Unknown tag 'bibliography' included  (Liquid::SyntaxError)

Hi! i am really interested in this website. While the website works locally on my computer it does not work on github.io with the following error:
Liquid Exception: Liquid syntax error (/github/workspace/_includes/selected_papers.html line 4): Unknown tag 'bibliography' included in /_layouts/about.html
/usr/local/bundle/gems/liquid-4.0.3/lib/liquid/document.rb:23:in `unknown_tag': Liquid syntax error (/github/workspace/_includes/selected_papers.html line 4): Unknown tag 'bibliography' included  (Liquid::SyntaxError)
I am sure that the url and baseurl have the correct inputs (.github.io and blank respectively). Any help is appreciated.

solved using deploy!

how?


Bower package missing dist folder

After running bower install nq-quill --save, the dist folder is not there

then you can use the original sources or build the dist files on your own.
bower is dead and i only registered it there because somebody asks for.
you should use the npm way to install your dependencies.
i could add a .bowerrc with a postinstall script, which would use my node tasks to create the dist folder and files. But this would be useless, because then you need to have npm installed and can simply use npm install

If anyone is using a build tool that automatically tries to pull in the dist file, you can fix this by adding an overrides section to your bower.json:
  "overrides": {
    "ngQuill": {
      "main": ["src/ng-quill.js"]
    }
  }

Would you add a PR with this additonal info in the readme, Please?
Am 06.11.2017 19:09 schrieb "Steve Sanders"<EMAIL_ADDRESS>If anyone is using a build tool that automatically tries to pull in the
dist file, you can fix this by adding an overrides section to your
bower.json:
"overrides": {
"ngQuill": {
"main": ["src/ng-quill.js"]
}
}
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/KillerCodeMonkey/ng-quill/issues/129#issuecomment-342235351,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACKOYPHHIbpFBIbmkzzbMl0K52QSmwtUks5sz0tqgaJpZM4QG8vB
.

@KillerCodeMonkey I think the better solution would be to change the bower.json to point to /src/ng-quill.js instead of the dist file. I'll submit a PR for that.


Enhancement: Integrate with VSCode

Not sure how feasible this would be, but since you are working on a new version, here it goes.
You can run code in Background script from within the ServiceNow extension in VSCode, Xplore would be a much better option :-) Basically, just bring the same right pane result in a new tab in VSCode and I'd be really happy!

Thanks for the suggestion! It's not going to happen anytime soon from my side, but I'm happy to leave it as a possibility for later.


[Bug]: No transmission speed difference between single path and multipath with minrtt scheduler

What happened?
Hi, Im a student learning about multipath transmission, I heard that xquic support many kinds of multipath scheduler.
However, when I make a comparision between single path trans and multipath trans with minrtt, I found there's no obvious difference between them, although between isomorphic link.
Then I will describe my experimental procedure in detail
experiment one: large file download with high bindwith and low lantency
path feature:
path 0: rtt 2.5ms，bindwidth: about 700Mbit, packet loss rate: almost 0
path 1: rtt 2.5ms，bindwidth: about 700Mbit, packet loss rate: almost 0
cc method: bbr
experimental result:
single path trans:
FCT: 11.32s speed: 92630KB/s

cwnd changes

path srtt changes

minrtt scheduler trans:
FCT: 11.52s speed: 91012KB/s(I tried many times, overall transmission speed is almost the same as that of single path)

cwnd changes

path srtt changes

I initially suspected that the bandwidth was too high and the performance bottleneck of the transfer was the packet processing
So I used TC tool to limit the bandwidth and increase the transmission delay
experiment two: small file download with low bindwith and high latency
path feature:
path 0: rtt 102ms, bindwith: 10Mbit, packet loss rate: almost 0
path 1: rtt 102ms, bindwith: 10Mbit, packet loss rate: almost 0
this time I use reno and bbr
single path trans with reno

single path cwnd change(reno)

single path srtt change(reno)

multipath trans with reno

minrtt cwnd change （reno）

minrtt path srtt change (reno)

single path trans with bbr

single path cwnd change (bbr)

single path srtt change(bbr)

multipath trans with bbr

minrtt cwnd change (bbr)

minrtt path srtt change(bbr)

I don't know what happened here, when I check codes in minrtt scheduler, I can't find any problem.
Is any problem in flow control or something else?
Steps To Reproduce
Use minrtt and single path to download files
Relevant log output
No response

Please describe your testbed and the commands to launch the XQUIC client/server in more detail.

How did you emulate two paths with TC? What were the TC commands?
What were the commands to launch test_client/test_server?

In our test, MPQUIC with the minrtt scheduler can aggregate the bandwidth of two symmetric paths.

problem has been solved in xquic opensource communication group, the reason is handshake done has been blocked by first stream data, xquic group will optimize in next release version. Issue done

Issue has been solved in opensource group. handshake done is blocked by first request stream data, which cause second path can not be established. This will be optimized in next version. Issue done

@yangfurong could you share the commands you used to test multipath xquic?
How can demo and test application make use of multipath (judging by their code they can only handle a single IP address and a single port)?


Github Copilot

Would it be possible to use github copilot chat as an LLM provider? Since it is possible to use claude sonnet with copilot chat it would be very convenient for people who are already paying for it to be able to use claude with bolt.diy without having to pay for any tokens via the claude API.
Chat with claude via copliot has been implemented in neovim plugins like avante.nvim, so it is possible, but I am not sure how exactly the implementation would differ in this project or if github allows for this usecase or not.
Would be cool if possible!

This would be a feature request, not a bug.

Yeah it is, never said it was a bug

That's too bad


jupyter bump version

@kojderszymon , remember to bump the chart version in your PRs.
I have done it for you in the last PRs.
Regards,

Sorry, I forgot about that


'Duplicate row.names are not allowed'

Hi,
I tried your api on 'A1307' and 'A1308' recently and it returns this error. The JSONs returned by A1307 and A1308 have the duplicate 'name' and thus cannot be handled by data frame. Please check that, thanks.
(same for both chinese and english)
(E.g. The data source have two series of date called '合资固定资产投资额_累计值' ('Investment in Fixed Assets, Joint-venture Enterprises, _Accumulated' as in English))

-> statscnQueryData('A1308',dbcode='hgyd')
Error in row.names<-.data.frame(tmp, value = value) :
duplicate 'row.names' are not allowed
6 stop("duplicate 'row.names' are not allowed")
5 row.names<-.data.frame(tmp, value = value)
4 row.names<-(tmp, value = value)
3 rownames<-(tmp, value = c("Investment in Fixed Assets, Accumulated(100 million yuan)",
"Investment in Fixed Assets, Accumulated Growth Rate(%)", "Investment in Fixed Assets, Domestic Funded, _Accumulated(100 million yuan)",
"Investment in Fixed Assets, Domestic Funded, _Accumulated Growth Rate(%)",
"Investment in Fixed Assets, State-owned Enterprises, _Accumulated(100 million yuan)",  ... at rstatscn_en.R#112
2 dataJson2df(ret, curQuery$rowcode, curQuery$colcode) at rstatscn_en.R#201
1 statscnQueryData("A1308", dbcode = "hgyd")

looks like it is a bug in the website. I'd like to figure out a way to let them know it.  Hopefully they can get it fixed.

the issue is fixed in 1.1.1 . call the statscnRowNamePrefix() before the query.


Rufus stopping after about 6 minutes

Hey guys, I am currently using rufus-scheduler gem with my rails-app which is being redeployed every hour using chef and managed by nginx in conjunction with passenger. I had a couple of jobs that ran once a day, when the run time is within a couple of minutes of chef finishing and restarting nginx service it seems to run fine, outside of that windows the scheduler does not run at all. In light of that, I added a job that simply puts out to the logger every 2 minutes. The new job only prints out 3 times the puts statement then quits with no apparent reasons... Any idea what could be happening here?
TD;LR: Rufus seems to run within 6 minutes after restarting nginx and dies from then on...Please help

Details please. http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

Passenger...
Please read the FAQ: https://github.com/jmettraux/rufus-scheduler#faq
This can help as well: http://stackoverflow.com/questions/tagged/rufus-scheduler+passenger
Closing as it's the classical "Passenger kills my rufus-scheduler thread".


🐛 "useNodejsImportProtocol": "off"  Didn't work

VS Code version
1.89.1
Extension version
v2024.5.251958
Biome version
1.8.0
Operating system

[X] Windows
[ ] macOS
[ ] Linux

Description
my beiome.js code
{
	"$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
	"organizeImports": {
		"enabled": true
	},
	"linter": {
		"ignore": [
			"**/node_modules/**",
			"**/dist/**",
			"**/build/**",
			"**/run/**",
			"**/test/**"
		],
		"enabled": true,
		"rules": {
			"recommended": true,
			"style": {
				"useNodejsImportProtocol": "off"
			}
		}
	}
}

"useNodejsImportProtocol": "off"  Didn't work
Steps to reproduce
1、I configured setting.json as provided by the plugin
2、biome init  biome.js config
3、change biome.js like up
Expected behavior
4、Now in my code, I can't use require('path').
5、 npx biome lint   is ok.
Does this issue occur when using the CLI directly?
No
Logs
that is all

The biome.js configuration doesn't seem to be working, is vscode-plugin.biome not using biome.js?

The configuration file is biome.json not biome.js.
And where do you put the configuration file?

The configuration file is biome.json not biome.js.
And where do you put the configuration file?

yes, my is biome.json

Is your configuration at the root of your project?

Is your configuration at the root of your project? From the look of it, it isn't, that's why it doesn't work.

biome.json in my project.
I have multiple projects in my workspace

We have limitations in multi-root workspace support, please check the doc: https://biomejs.dev/reference/vscode/#my-biomejson-file-is-ignored-in-a-multi-root-workspace

Since v1.8 we support LSP workspaces. @wuchuguang can you create a reproduction?

Sorry

s

Since v1.8 we support LSP workspaces. Docs are outdated. @wuchuguang can you create a reproduction?

I'll try using the local LSP

1、my workspace only one project,
2、project/biome.json
3、test.js
const path = require('path') // show biome error
4、test/biome.json
5、 test/test.js
const path = require('path') // show biome error

biome.json
{
    "$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
    "organizeImports": {
        "enabled": true
    },
    "linter": {
        "enabled": true,
        "rules": {
            "recommended": true,
            "style": {
                "useNodejsImportProtocol": "off"
            }
        }
    }
}

I believe the issue comes from the extension itself that can't correctly resolve the Biome binary from a workspace project.


test pre-population of Add Evidence form values from VHL spreadsheet

Might need to add Evidence Type pre-population feature to the form.

The add evidence form can be pre-populated with the following information:

Gene Entrez Name = VHL
Variant Name = value from spreadsheet ("Predicted.Consequence..p.Protein.Change")
PubMed ID = value from spreadsheet ("PMID")
Variant Origin = Germline Mutation
Evidence Type = Predisposing
Evidence Direction = Supports

OK, this is done. Example URL w/ the required pre-population fields:
http://<IP_ADDRESS>:3001/#/add/evidence/basic?geneId=24&variantId=55&variantOrigin=Somatic Mutation&pubmedId=12345&evidenceType=Predisposing&evidenceDirection=Supports

Awesome.  Thanks @jmcmichael .  @acoffman can you update the VHL spreadsheet with URLs for each row?
The spreadsheet is in the CIViC dropbox: CIViC/CIViC Data/VHL_Data/160106 table pubmed ID.xlsx

Yup! I generated the file and shared it in Slack for a sanity check. Once everyone is happy with it, we can send it along!


fs: move memset to upper lever for statfs and add f_fsid field

Summary
if struct statfs add new members, such as f_fsid, no additional code changes are required. and add f_fsid field for third-party code compile, because NuttX doesn't have the device number, so we're not assigning a valid value here. just memset to zero.
Impact
Testing
sim:local

@patacongo I think you were planing to reply @zhhyu7, but end up editing his comment, it was difficult to understand who said what. :-)
Yes, I found some examples in wqueue.h, udp.h, etc.
But I think in this case if fsid_s is planned to be used for all filesystems, eventually we will have a function that list fs based on fs IDs, etc. So in this case fsid_s could be passed as parameter to this function.
Anyway we need to define the right place to put it

The f_fsid field is not standard in struct statfs (but is required by POSIX in struct statvfs).  It is NOT specifid by POSIX standards for statfs.  This is handled differently by different OSs:
https://linux.die.net/man/2/statfs:

Nobody knows what f_fsid is supposed to contain (but see below).
...
The f_fsid field
Solaris, Irix and POSIX have a system call  that returns a struct statvfs (defined in sys/statvfs.h containing an unsigned long f_fsid.  Linux, SunOS, HP-UX, 4.4BSD have a system call statfs() that returns a struct statfs (defined in sys/vfs.h containing a fsid_t f_fsid, where fsid_t is defined as struct { int val[2]; }. The same holds for FreeBSD, except that it uses the include file sys/mount.h.
The general idea is that f_fsid contains some random stuff such that the pair (f_fsid, ino) uniquely determines a file. Some operating systems use (a variation on) the device number, or the device number combined with the file-system type. Several OSes restrict giving out the f_fsid field to the superuser only (and zero it for unprivileged users), because this field is used in the filehandle of the file system when NFS-exported, and giving it out is a security concern.
Under some operating systems the fsid can be used as second argument to the sysfs system call.


Hackathon\EAVCleaner\Console\Command\RestoreUseDefaultValueCommand\Interceptor

threw an error on setup:upgrade
soemthing about iteratorFactory
sorry removed plugin before properly copying error message

:joy: Not a very helpful issue, to be honest...
I just required the main branch in Magento 2.4.3 and ran bin/magento setup:upgrade without any issues. So I will close this for now. Feel free to re-open or create a new issue with details about the error.


FuzzMessageDecode fails sometimes

Run tests (ubuntu-20.04, 1.20) and ubuntu 1.19
5_Run tests.txt
maybe related to #3307 (or caused by).
Just rerunning the failed job helps - for example Run tests (ubuntu-20.04, 1.20) (just successful run).

Just rerunning the failed job helps

It doesn't help, it just tells that this problem is poorly reproduceable.

maybe related to https://github.com/nspcc-dev/neo-go/pull/3307 (or caused by).

Hardly ever it can be related to the logger sync.

as we had data races in pkg/network tests it seems to me that failing FuzzMessageDecode with race detected during execution of test is just another manifestation of the #3307 problem

Discussed, and closing this issue as not relevant after #3307.

I thought fuzzers are disabled in our regular runs.

I thought fuzzers are disabled in our regular runs.

Fuzz tests are run much like a unit test by default. Each seed corpus entry will be tested against the fuzz target, reporting any failures before exiting.

It's just about the fact that seed corpus of this test is quite large. But we run our tests without --fuzz flag, so no fuzzing is performed.


Integrate with pipeline templates from vscode-engineering

As part of aligning core extensions that rely on native modules to have similar glibc constraints as core, I will be adding template steps that configures the C++ toolchain in the vscode-engineering repo.
In its current state this repo will not be able to benefit from the above change, one idea discussed with @joaomoreno was to use the upstream zeromq.js project directly in the jupyter extension so that module files get built as expected. But I now realized this is a no go, although the patch changes are minimal the blocker would be upstream zeromq already publishes prebuilds and we cannot override them to force rebuild in the jupyter extension.
So now coming to the other alternative, the vscode-engineering repo also contains templates for building and publishing npm packages https://github.com/microsoft/vscode-engineering/wiki/NPM-Packages-Build-and-Publish. I will also add the compiler configuration to those templates as well. I see that the npm package https://github.com/microsoft/vscode-zeromq currently downloads the prebuilts from this repo github releases and replaces them for the prebuilds from the upstream zeromq project during postinstall step in the jupyter extension project. I suggest the following path instead,

Merge microsoft/zeromq-prebuilt and microsoft/vscode-zeromq into a single npm package that builds, publishes the vscode specific prebuilds to npm
The combined repo uses the npm pipeline templates from the vscode-engineering repo
Jupyter extension will depend on this new npm package that will still replace the prebuilds from upstream zeromq as part of postinstall step.

Only difference between now and the proposed solution, prebuilds are published to npm rather than github releases and sharing the pipeline templates allows to get the glibc compatibility free of cost.
What are you thoughts on this @DonJayamanne and let me know if you have alternate ideas.

Does npm allow publishing platform specific packages?

Not that I know of https://github.com/npm/rfcs/discussions/120, packages have been publishing prebuilds into a single npm and pick the right one via helper libraries like https://github.com/prebuild/prebuildify?tab=readme-ov-file#prebuildify


flake-parts integration?

Hi!
This is a really cool project. I came across it on lobste.rs just now and realized that flake-parts would be a good fit for what you're doing, especially if you want to venture beyond nix and home-manager, and help out with custom packages, devshells, etc.
Is your feature request related to a problem? Please describe.
At some point, users will want to do something advanced and run fleek eject (which I think is a really neat idea).
What if instead, they could import their advanced thing into their fleek config, and keep using fleek?
Wouldn't it be nice to capture some more advanced patterns in Nix logic, and be able to share that with others?
Or perhaps reuse solutions to common problems that others have already solved?
Describe the solution you'd like
flake.parts provides the logic that lets you integrate these things. It takes pride in being an unopionated core, well, with two opinions:

the NixOS module system, which NixOS and home-manager are built on, is really nice
many things are a function of system, and standardizing the way to put that together is helpful

Because it's an unopinionated, thin wrapper around the schema of the Nix CLI, you can keep generating largely the same code you already are. You could put whatever flake outputs you generate right into the flake option.
A tighter integration - making use of the perSystem option - would be possible, but even without that, perSystem already works as expected for users if they write self'.packages instead of config.packages. Do you even generate packages? I might be overthinking.
Anyway, fleek eject could keep working the way it does, generating either a plain flake or a flake-parts based one, depending on user choice, or perhaps what's necessary if you decide to let some functionality rely on some flake-parts module.
Describe alternatives you've considered
Can't really think of any, but I can't claim to know the whole ecosystem either, and I'm really lazy when it comes to my home. It works :)
Additional context
Add any other context or screenshots about the feature request here.

I was looking for something exactly like this but didn't know what to search for!

Not exactly as easy to use as fleek, but I use flake-parts to manage my home-manager among other things while still writing Nix: https://github.com/srid/nixos-flake => https://github.com/juspay/nix-dev-home - maybe you can borrow some ideas from there. I'd like to add support for Emacs, Neovim, etc. configured for dev envs: https://github.com/juspay/nix-dev-home/issues

@bketelsen I'm occupied with various projects right now, but I'd be happy to help re: questions / discussions / explanations and generally take part in design discussions.

@srid @roberth I have a PR in now that does the integration with flake-parts (and nixos-flake). If either of you have time to take a look, I'd really appreciate it. I forked nixos-flake to add the hostname to the homeConfiguration's name because fleek supports multiple usernames and multiple hosts.
see #156

a real-world generated flake with this PR is here: https://github.com/bketelsen/fleek