Experiment with stricter and more helpful types

requested experiment by @zikaari, here
fixes https://github.com/antfu/webext-bridge/issues/21
Improvements
Safety against typos

Autocomplete

Breaking change
This requires one to extend the ProtocolMap in their project and removes the ability to pass generics related to data and return types on per-method basis. If one is not interested in type-safety and they just want to accept anything then they can opt-out of the ProtocolMap like this:
interface ProtocolMap {
  [k: string]: any;
}

It would be great to also add notes about the escape hatch if ppl would prefer a non-strict map.

Very cool!
I think type-strictness should be a "opt-in" if a user wants, not "opt-out" if they don't want. Meaning the library consumer can declare the ProtocolMap interface if they want strict types, but they shouldn't have to declare any empty interface to eject. The latter should be the default behavior.
I've pushed a new commit here with the behavior I described above. Can you please checkout/pull and verify if it's compliant with what we want to achieve.

I think type-strictness should be a "opt-in" if a user wants, not "opt-out" if they don't want. Meaning the library consumer can declare the ProtocolMap interface if they want strict types, but they shouldn't have to declare anything to eject. The latter should be the default behavior.

I kinda don't agree with this sentiment - the whole point of TS is to help us and to guard us against mistakes. Not everyone reads the docs carefully enough to learn about ProtocolMap and they might end with type-related bugs because of that. IMHO escaping the type of safety should always be an opt-out because, for the most part, it should be a conscious decision on their end. It's not like defining an opt-out ProtocolMap is a big deal - it's just copy-pastable 3 lines of code but having it as a requirement is a helpful nudge for the dev to actually make a type-safe use of it.
Those are just my 2 cents, I certainly recognize that my view on this doesn't have to match yours.

I've pushed a new commit here with the behavior I described above. Can you please checkout/pull and verify if it's compliant with what we want to achieve.

If you plan to go with this approach then I think that some of the signatures could still use a little bit of a cleanup. I can try to think about it more when you decide on the final approach to be used here.

While I totally see the positive intent behind your philosophy, the problem is that if every library follows that paradigm - "opt out" if you don't want types - the task of creating  d.ts files, empty interfaces, and then updating tsconfig.json will get cumbersome and annoying for people, when all they want is just some message passing here and there.
Once again, I personally agree with your intent, I'm just assuming people's view towards it based on the fact that most libraries use any heavily to describe the parameters unless overridden by the calling code.
We can @antfu act as a tie-breaker here.

Once again, I personally agree with your intent, I'm just assuming people's view towards it based on the fact that most libraries use any heavily to describe the parameters unless overridden by the calling code.

I'm not sure if this is that true anymore - a lot of libraries put a strong emphasis on strict types nowadays and anys are heavily frowned upon. Or at least they are in my bubble 😅 I see this tide-turning both among library authors and their consumers.

Ok, so I guess your consensus is that you prefer to have an unsafe-first approach (not arguing against that, just stating the fact).
Should I close this PR or refactor it? I think I have a good grasp of how to accomplish all of this in TS - while rechecking that it matches your expectations etc. Just let me know if I should continue this work or if you prefer doing it yourself

<EMAIL_ADDRESS>will be obsolete very soon once<EMAIL_ADDRESS>is merged into master. @Andarist please send in the enhancements you were talking about to https://github.com/zikaari/webext-bridge. They'll ultimately make their way to https://github.com/antfu/webext-bridge.

@zikaari I am happy to directly transform this repo under your account and let you take the ownership, or rather it's my pressure that you continue the work based on my changes.

That would work, thanks. Would you still wish to continue to be a collaborator?
The top priority for us is that this package continues to be supported, one way or another. Since you are more deeply vested in the open source culture than I am, do you know of any organization/foundation that would be happy to adopt, and take care of this package?

I am happy to help maintaining here or under your name.
I used to work under my name, or create a new org when the project gets more involved by the community. For this one, I think it's best to keep it under your name since you are the original author and I technically didn't do much but the build setups.
For the transfer to work, you need to rename your current fork https://github.com/zikaari/webext-bridge to free the name so I can transfer it to you (ping me when you are done). On NPM I think you already have the permission to publish.

Done. Renamed my fork to webext-bridge-temp

I'll get back to this soon - didn't find the time to do it this week due to other obligations.

Closing as other changes have been made in https://github.com/zikaari/webext-bridge/commit/40c10a1ff5834862356cc1a5678a47b0d0579bb0 that is a part of https://github.com/zikaari/webext-bridge/pull/32


Follow up to  #1370

This test is not equivalent. The test will pass without the bug fix. This is because linger set to zero prevents the OS from performing an implicit graceful shutdown.

This test is not equivalent. The test will pass without the bug fix. This is because linger set to zero prevents the OS from performing an implicit graceful shutdown.

Ah, then I miss understood the purpose of the test. I though that setting linger to zero would the test for run quicker.

Closing in favour of #1374.


using haxl for data sources where dependencies are not statically known

I have a learning algorithm that chooses variables to make decisions on that i'm trying to integrate into my Haxl-based project. The snag here is that the learning alg chooses those variable dynamically, making it hard to write a datasource that doesn't just fetch everything it might look at.
I think I can see a way around this using template haskell and introspecting on the generated decision tree, but if I'm overcomplicating it I'd love to hear about it.

I'm not sure I understand enough about your use case to comment.  Could you give some example types to give more context?

Going to close this out because I'm not sure how we can make progress, feel free to re-open if you have more info.

It was an ill-formed question :) as I learned more I worked out how to do it.


⚠ Bofrost.de has degraded performance

In 3776750, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1267 ms

Resolved: Bofrost.de performance has improved in f643906.


Kilo branch

I've been working on adapting this role to deploy the Kilo version of Keystone and will be submitting a PR. Should it go into the development branch or a special feature branch to-be-created?

I have just created a kilo branch. Feel free to submit the PR against this!

Excellent. You should see it come in middle of next week.
Thanks!
On Thu, Jul 2, 2015, 4:13 PM Davide Guerri<EMAIL_ADDRESS>wrote:

I have just created a kilo branch. Feel free to submit the PR against this!
—
Reply to this email directly or view it on GitHub
https://github.com/openstack-ansible-galaxy/openstack-keystone/issues/2#issuecomment-118153236
.


Unable to inject linkerd sidecar proxy to Cert-Manager pods

K8s cluster  1.21.5  running on AWS EKS.Runtime is docker 20.10.7
linkerd version 2.12.0
cert manager version -v1.7.1 (Helm Chart)
After adding podAnnotations to the values.yaml file, I did a helm upgrade using same chart version, linkerd doesn't (or unable to) inject proxy into the cert manager pods.init containers are not created.All other namespaces have different platform applications like logging,monitoring,keycloak etc and they all added to linkerd except cert-manager.I am not sure if I need to implement something different for cert-manager app  than other apps.
No any error appears on linkerd-proxy-injector logs.
helm upgrade cert-manager -f ./values.yaml jetstack/cert-manager --version v1.7.1 -n cert-manager
values.yaml file for Cert-Manager helm chart:
image:
  tag: "v1.7.1"
prometheus:
  servicemonitor:
    enabled: true
    promtheusInstance: default
serviceAccount:
  annotations:
    eks.amazonaws.com/role-arn: "arn:aws:iam::111222333444:role/eks_certmanager_role"
securityContext:
  enabled: true
  fsGroup: 1001

podAnnotations:
  linkerd.io/inject: enabled
webhook:
  podAnnotations:
    linkerd.io/inject: enabled
cainjector:
  podAnnotations:
    linkerd.io/inject: enabled

here is the linkerd-Control-Plane values.yaml file:
enablePodAntiAffinity: true

# proxy configuration
proxy:
  resources:
    cpu:
      request: 100m
    memory:
      limit: 250Mi
      request: 20Mi

# controller configuration
controllerReplicas: 3
  cpu:
    limit: ""
    request: 100m
  memory:
    limit: 250Mi
    request: 50Mi
destinationResources:

# identity configuration
identityResources:
  cpu:
  memory:
    limit: 250Mi
    request: 10Mi

# heartbeat configuration
heartbeatResources:

# proxy injector configuration
proxyInjectorResources:
webhookFailurePolicy: Fail

# service profile validator configuration
spValidatorResources:

identity:
  externalCA: true
  issuer:
    scheme: kubernetes.io/tls

installNamespace: false

proxyInit:
  runAsRoot: true

below are the service accounts in linkerd namespace:
NAME                     SECRETS   AGE
default                           1         100d
linkerd-destination        1         90d
linkerd-heartbeat          1         90d
linkerd-identity              1         90d
linkerd-proxy-injector   1         90d

injecting other pods work normally and I don't see any issue with linkerd-proxy-injector pods.
here at the last line in linkerd-control-plane/values.yaml, I see  kube-system  and cert-manager. Does that mean  "Do not operate admission webhook in kube-system  and cert-manager ns "  ? Do you think that might be related to my linkerd problem ?
Here is the PR that added that line >  https://github.com/linkerd/linkerd2/pull/7718

Here's another thread that might be related.
In any case, you can modify the helm chart to re-include the cert-manager namespace by including the following chart values:
proxyInjector:
  namespaceSelector:
    matchExpressions:
    - key: "config.linkerd.io/admission-webhooks"
      operator: "NotIn"
      values: ["disabled"]
    - key: "kubernetes.io/metadata.name"
      operator: "NotIn"
      values: ["kube-system"]

The above is just a copy of the default values in the helm chart, but with cert-manager removed from the second condition in the namespace selector.

HI @benfiola
Commenting namespace for cert-manager from namespace selector and setting up proper linkerd annotations in the values.yaml of cert-manager helm chart, I was able to inject cert-manager and cert-manager-cainjector pods in the mesh (not cert-manager-webook)
# proxy injector configuration
proxyInjector:
  # -- Namespace selector used by admission webhook.
  namespaceSelector:
    matchExpressions:
      - key: config.linkerd.io/admission-webhooks
        operator: NotIn
        values:
          - disabled
      - key: kubernetes.io/metadata.name
        operator: NotIn
        values:
          - kube-system
          #Comment this, so cert-manager pods can be included in mesh
          #- cert-manager

What could be the reason for having as default values this cert-manager namespace? I must exist a reason if Linkerd guys has put that as default values, mustn't it?
I had to helm upgrade so cert-manager annotations were noticed by linkerd proxy injector. This makes me to do a manual step in my solution deployment that I would prefer not to do. Could you confirm this is needed?

Best regards


[BUG] Teleport to a user gives me this : teleported to player [??] unknown

txAdmin/FXServer versions:
v4.17.1 atop FXServer 5837
Describe the bug
When i teleport to a person in game, it does not log who i teleported to ?
Check screenshot
To Reproduce
Steps to reproduce the behavior:
Just teleport to a person and check your logs
Expected behavior
It should give me the name of that person i teleported to and  not this : [??] unknown
Screenshots

Additional context
Add any other context about the problem here, like for example if it's a server issue, which OS is fxserver hosted on.

do you have onesync on?

Yes i have

I have this too, is there any fix. Does it not support onesync?
Thanks.

Found the issue, full blame on @TasoOneAsia 🤣
https://github.com/tabarra/txAdmin/commit/4f87caa1a01695b738efd4b9435f8d1fe77ab520
Easy enough to fix it though, will include it in the v5.0.0 release.


Not Able to change backgroundColor nor Text color Both Always white ??

Hi ,
I can not change background color nor the text color no matter what I do the always become white color..
IOS 10.3
http://imgur.com/a/2nnyo

I added a function to change background color! see 2.3.3

Text color Is not Visiable ? Is there an issue in your demo implementation ? Because i follow 100% the example you provided


FieldUserRenderer - No Flyouts in SharePoint App (iOS)

Category
[ ] Enhancement
[x] Bug
[ ] Question
Version
Please specify what version of the library you are using: [1.12.0]
Expected / Desired Behavior / Question
Touching on a FieldUserRenderer element should open the persona control. Maybe it would in general be a good idea to also react on clicks (currently only hovering opens the popup)?
(I might have just realized that there doesn't seem to be any kind of touch support for this kind of fields in standard lists/libraries at all ;-))
Observed Behavior
Touching on a FieldUserRenderer element doesn't do anything in the SharePoint App (tested with iOS).
Steps to Reproduce
(see above)

Hi @BigEaseGueldi,
Did you have the chance to test with latest version (3.15.0)? FYI this control is using the HoverCard Fluent UI one under the hood.

Hi @michaelmaillot - unfortunately not - unable to test this at the moment. As this is a rather old bug, you might want to set it to "solved" - chances are high that this is that case any way...

Thanks for your feedback.
In that case I will close the issue, if it's still occurring, an issue will be raised.


How to show original sent date

Hi, importing mbox files, the Gmail message is not showing the original sent date, but importing one. Is there a way to fix this issue? I read this old post on StackOverflow, but I don't know if it is still possibile to implement that solution..
Thanks

Hi,
As you can see in line 267, the script uses dateHeader as the internal date source. That means that the "received date" you'll see in Gmail is the date in the message's Date header.
Gmail API doesn't provide a way to specify a separate "received date", it can either be the date when the message was imported, or parsed from the Date header.
Even if using the dateHeader option, you might still see the import date as the message's "received date", if Gmail failed to parse the Date header during the import. Please check the message you're importing and see if the date is formatted correctly as per RFC822.

Ah, thank you so much for your suggestion. Actually I'm not a developer, so I'm trying to figure out how to do this formatting check, but it's a little bit hard and cofusing..

If you have an mbox file, it's just a text file, that you should be able to open with any text editor. Then, look for the affected message (i.e. a message where you saw the wrong date in Gmail), and take a look at the line starting with Date: at the top of that message.
You'd often see that there's no such line at all, or it's there but formatted incorrectly (for example, date as "16/8/2022" instead of "16 Aug 2022").

Thank you @eesheesh for your precious help. Yesterday I finally was able to make everything work, importing all the mbox files into the Gmail accounts. I'm not sure what happened, because I didn't modify anyone of the mbox files. But in the end it worked.
Thanks again for your support!


Some problem with the calculation of monetary value

Hey, I'm confused about the calculation of monetary value. It seems that it is defined as average transaction value = Total Monetary value/ transaction frequency. I don't know whether this frequency means the number of distinct purchase date (if I use daily data) or purchase times. For example, I test the function calibration_and_holdout_data() with the following dataset.
	user_id	purchase_date	net_gmv
3	2	2017-01-01	110
4	2	2017-01-05	120
0	1	2017-11-19	100
1	1	2017-11-19	150
2	1	2017-12-19	200
7	1	2017-12-19	300
6	1	2017-12-20	250
5	3	2018-01-01	150
8	1	2018-01-01	500
9	1	2018-01-01	700
10	1	2018-02-01	50
11	2	2018-09-01	125
12	2	2018-09-02	100

And I run the function like this:
summary_cal_holdout = calibration_and_holdout_data(
    data,
    'user_id',
    'purchase_date',
    monetary_value_col='net_gmv',
    calibration_period_end='2017-12-31',
    observation_period_end='2018-09-25'
)

The result I got is like this:
user_id	frequency_cal recency_cal	T_cal monetary_value_cal frequency_holdout  monetary_value_holdout	duration_holdout
1	2.0	31.0	42.0	375.0	2	416.666667	268
2	1.0	4.0	364.0	120.0	2	112.500000	268

The frequency cal is 2 and the total repeat purchase value for user id =1 in calibration time is:
200+300+250=750. However, there are 3 transactions. But the monetary value calculated by this function is 375.5 which equals to 750/2. For the calibration period, the monetary value = total purchase value/frequency.
However, when we look at the holdout period. For user_id = 1, the frequency = 2 and the total purchase time=3, total_purchase_value=150+500+700=1350. The monetary value = 416.67 which equals to total purchase value/total purchase times instead of frequency. Are we supposed to use a different equation for the calculation of monetary value in calibration and holdout period???
With this confusion, I could not understand what exactly are these two functions predicting:

bgf.conditional_expected_number_of_purchases_up_to_time()

Should this be frequency or purchase times. If one day one user purchased two times, should this be counted as 2 or 1?

ggf.conditional_expected_average_profit()

For the average profit here, should it be total purchase value/total transaction times or total purchase value/frequency?

Thanks a lot for the explanation!!!

Can anyone help explain this question?

@vivienneyang  Hi, I'm have same question with you?
I want to know  in "bgf.conditional_expected_number_of_purchases_up_to_time"
how to explain the result when t=1 & t=2

This is because summary_data_from_transaction_data() aggregates the rows with the same days.
1	2017-11-19	100

1	1	2017-11-19	150
2	1	2017-12-19	200
7	1	2017-12-19	300   - >    2017-12-19	750
6	1	2017-12-20	250   - >    2017-12-20	250

This doesn't seem right. seems like a bug!

@vivienneyang, please try to have a better description next time.
@Trollgeir and @aggie13's comments are valuable though.


Adds variables for form validation messages

This PR closes #24763 by adding variables for margin top and font size for the validation feedback message.

I've added a new commit to fix #24768. Thanks @Borkason!
@mdo is it intentional to have no font-size set for .form-text. What if the user wants to use something else rather than a small?
If not, I suggest we define a font-size for .form-text so feedback and form-text can share the same size regardless of the DOM structure.


Serious performance issue / correct usage of opaque

I have a serious performance issue with the following code:
module Performance

type rel (a:Type) (b:Type) : Type =
  | R : l:a -> r:b -> rel a b

type double (t:Type) = rel t  t
type eq (t:Type) = p:(double t){R.l p = R.r p}

val rel_map2 : ('a -> 'b -> Tot 'c) -> (double 'a) -> (double 'b) -> Tot (double 'c)
let rel_map2 f (R x1 x2) (R y1 y2) = R (f x1 y1) (f x2 y2)

type shared (secret:double int) = s:double (int*int)
                                    {fst(R.l s) = fst(R.r s)
                                  /\  (fst(R.l s)) + (snd(R.l s)) = R.l secret
                                  /\  (fst(R.r s)) + (snd(R.r s)) = R.r secret}

opaque type injection (f:int -> Tot int) = (forall (x:int) (y:int). f x = f y ==> x = y)
opaque type surjection (f:int -> Tot int) = (forall (y:int). (exists (x:int). f x = y))
opaque type bijection (f:int -> Tot int) = injection f /\ surjection f
//assume type bijection (f:int -> Tot int)
type bij = f:(int -> Tot int){bijection f}
opaque type inverses (f:int -> Tot int) (g:int -> Tot int) =
   (forall (y:int). f (g y) = y) /\
   (forall (x:int). g (f x) = x)
opaque val lemma_inverses_bij:  f:(int -> Tot int) -> g:(int -> Tot int) ->
  Lemma (requires (inverses f g))
        (ensures (bijection f))
let lemma_inverses_bij f g = ()

(* sample two random values such that they are related by a bijection f *)
assume val sample : #a:Type -> #b:Type
                    -> f:(int -> Tot int){bijection f}
                    -> Tot (r:(rel int int) {R.r r = f (R.l r)})

opaque val triple_a : s:double int
               -> Tot (r:(h:double int & shared h) {(R.l s) - (snd(R.l(dsnd r))) =
                                                    (R.r s) - (snd(R.r(dsnd r)))})

let triple_a s = let sample_fun = (fun x ->  (x - (R.l s)) + (R.r s)) in
                 assume(bijection (fun x -> x));
(*
                 cut(inverses (fun x -> x) (fun x -> x));
                 lemma_inverses_bij (fun x -> x) (fun x -> x);
                 cut(bijection (fun x -> x));
*)
                 let as0 = sample (fun x -> x) in

                 assume(bijection (sample_fun));
(*
                 let sample_fun'= (fun x ->  (x - (R.r s)) + (R.l s)) in
                 cut(inverses sample_fun sample_fun');
                 lemma_inverses_bij sample_fun sample_fun';
                 cut(bijection sample_fun);
*)
                 let as1 = sample  sample_fun in
                 let a = rel_map2 (fun x y -> x + y) as0 as1 in

                 (| a, rel_map2 MkTuple2 as0 as1 |)

The problem is the verification of the function triple_a. It times out even with --z3timeout 60 after ~6 minutes.
To show the postcondition, some simple arithmetic operations (additions, substractions and equalities) have to be verified.
However, when I replace the definition of bijection with an empty assumed type the verification succeeds in <2 s, so it seems like the additional knowledge about the functions prevents it from finding the correct solution.
I never use the fact that the functions are bijections except to fulfill the precondition of the function sample.
I thought that by making the type bijection opaque, I would prevent the unfolding, but it seems like this is not the case.
Is there any way to prevent the unfolding of bijection ?
The same problem also occurs for the type inverses

@ngrimm is this still valid ?

opaque is deprecated. The new irreducible qualifier can be used to tell F* not to unfold a definition in the SMT encoding.
Using irreducible instead of opaque in the example code makes the code typecheck almost instantly.
See Qualifiers for definitions and declarations for a discussion of the new qualifiers.


chore: update octocrab to version 0.42

I'm quite sure that updating octocrab breaks bors (it does compile, but some behavior changes). We'd need to change code to make it work.


Clear Canvas feature

Clearing the canvas with a single click is a useful feature, but the issue is that the user cannot remove specific parts of the canvas. Therefore, I suggest adding a button that allows the user to adjust the area to be cleared.

@Pritirekha23 Thank you so much pritirekha for the suggestion, It's a good one.
I'll work on it. & if you are interested to contribute then you are most welcome.

I will work on it.

@Pritirekha23 I have assigned the issue to you.
Best of Luck.

@Pritirekha23 Are you working on the issue?

Yes , soon I will push the code.

@Pritirekha23 Are you still working on the issue or should I assign to someone else?

I have added the icons and facing issues in the functionality.

@Pritirekha23 Are you done working on the issue?


[cloud sync] cloud projects missing after sign out and back in

Testing in staging at https://arcade.staging.pxt.io/app/4894e2fac1f7affce744b693862b9e2aa7df81e4-3df45dbba7#

Sign in and ensure you have some cloud synced projects on the home screen.
Sign out. Notice your cloud synced projects no longer appear.
Sign in again. Notice your cloud synced project do not return.

Manual page refresh will bring them back.
Gif to illustrate. It is a little bit misleading. Due to the loop, it looks like the cloud projects do return, but they don't.

Still repros.


update readme

fix typo

Hey, thanks! Could you send the pull request to the dev branch instead of master?

I've just sent the same pull request to the dev branch now. Sorry!


added the HTML, CSS and java script files for the 'Markdown previewer'

Related Issue

Info about Issue or bug

Closes: #[issue number that will be closed through this PR]
Describe the changes you've made
I have added the HTML file which contains the markdown previewer
I have linked the script and the style sheets to the HTML.
I have added the related files in the js and CSS folder respectively with the same name
Describe if there is any unusual behaviour of your code(Write NA if there isn't)`
NA
Checklist:

[ x ] My code follows the style guidelines of this project.
[ x ] I have performed a self-review of my own code.
[ x ] I have commented my code, particularly in hard-to-understand areas.
[ x ] I have made corresponding changes to the documentation.
[ x ] New and existing unit tests pass locally with my changes.

Screenshots

ok sure @urvashi-code1255

hey, @urvashi-code1255  there has been a mistake while using various branches the branch with which I made the pull request is not the correct/intended one, I have made few changes there can I make another pull request with the recent changes along with the code from the right branch?


Latest website build failed

Travis build #431 errored (triggered after merged PR #160).
It seems to go wrong in line 318:
$ rvm $(travis_internal_ruby) --fuzzy do ruby -S gem install dpl
Successfully installed dpl-1.10.15
1 gem installed
invalid option "--token="
failed to deploy

Issue resolved: variable GITHUB_TOKEN was still named GH_TOKEN in Travis.


clarification of response formats for sql api

Docs issue#1166. Applied some minor doc clarification in regards to our supported docs format. (Thanks to Danny & Steph!)
Okay to merge @rochoa?

All checks have passed, permission to merge please @rochoa?


Creating a navigation bar for Hotails templates

This HTML file will be the base of all other templates on Hotails.
Which means that every HTML page we'll create in Hotails, will expend
this HTML, so they all will have the same navigation bar.
Plus, the old homepage, which was created with NicePage, has changed to a more basic and readable one, as requested.
A picture of the navbar:

closes #55
closes #19
Signed-off-by: Ofir Matasas<EMAIL_ADDRESS>

Nice job @OfirMatasas few things:

there is a missing Search field as we designed here in the navbar
I think you should transfer the existing content home page to the about page because we are going to run over the home page with daycare-home and dowonwer-home.
you should instead put in the body the content Coming soon or something like that
suggestion: if we change the UI in the project, maybe we need to add some screenshots in the PR description that will make it easier for the reviewers

I thought we decided to remove the search option from the navbar, since the daycare don't have anything to search for on Hotails, and keep the search in dog owner's homepage, along the relevant daycares. I can add it.
Good idea. I'll change that.
I think the pictures should attach to the description of the PR, and not the PR itself, like I just did here, because it's not a part of the project. I think we should upload only the changes in the UI, like before and after the PR.

Nice job @OfirMatasas few things:

there is a missing Search field as we designed here in the navbar
I think you should transfer the existing content home page to the about page because we are going to run over the home page with daycare-home and dowonwer-home.
you should instead put in the body the content Coming soon or something like that
suggestion: if we change the UI in the project, maybe we need to add some screenshots in the PR description that will make it easier for the reviewers

I thought we decided to remove the search option from the navbar, since the daycare don't have anything to search for on Hotails, and keep the search in dog owner's homepage, along the relevant daycares. I can add it, but the daycare won't use it.
Good idea. I'll change that.
I think the pictures should attach to the description of the PR, and not the PR itself, like I just did here, because it's not a part of the project. I think we should upload only the changes in the UI, like before and after the PR.

as we talked offline, we decided to add to the navbar the search field


missing dtu_pyeval.py

When trying to run train.sh I get missing dty_pyeval module.
I was able to find this module in MVS2D,
Is this correct?

yes, we will revise it.

Solved by putting the file..
wget https://raw.githubusercontent.com/zhenpeiyang/MVS2D/master/dtu_pyeval.py


Progress indicator for login AJAX call

Add some sort of progress indicator (i.e. spinning wheel) to denote that the AJAX call to log into the web interface is occurring.

Don't forget that Semantic UI has done most of the work for us: https://semantic-ui.com/elements/loader.html


Fix broken edit command due to remodelling

== READY TO MERGE ==
Updated Commands

edit course
edit group
edit session
edit student

Note: Modification made to students will not automatically propagate to session since Student is not the same object after editting, so I manually update them in the function EditStudentCommand::execute , maybe need to do something similar for tasks @IsabelChong
for (Session session : sessions) {
    session.replaceStudent(studentToEdit, editedStudent);
}

LGTM!


Feat: new workspace Invite Email flow

Re-instated Invite by Email PR (cc @popdaph)

(rebased on main, will iterate on it)

Looks good overall except the revoked role in Membership.


updated the files and notebooks based on new CP spherized data

@gwaygenomics I just updated the files in Cell painting & L1000 Level 4 profiles based on the new spherized data I analysed and visualized last week.
Also, I am not able to merge directly to the broad institute/lincs-profiling-comparison git repo (I have been logged-out), so you could help me merge this updates to the existing git repo.
@gwaygenomics I have also included the MOA prediction models, notebooks and data to the lincs-profiling comparison git repo , so you could help merge this new folders and files to the existing broad institute/lincs-profiling-comparison. 😉 Thanks.👍

Thanks Adeniyi, sorry for the delay in getting around to looking at this.
I just gave you write access, so you should be able to merge now.
Are you planning on adding more notebooks and results?

ok nice, I will merge the new folders to the existing repo.
@gwaygenomics  Yes, I am planning of adding more notebooks on PCA & clustering analysis and also push it to github.

awesome, thanks @AdeboyeML !


Fake gc

ah, I'd actually like this now. I'm trying to iron out some issues pyperf has when used through RustPython and one of them is it uses gc if it is importable so a dummy gc would be needed.
Can we run the CI on this again to see where it fails?


JS client: data-isso-require-email="true" gives error

embed.dev.js:2157 Uncaught TypeError: Cannot read property 'replace' of undefined
The line in question being
$("[name='email']", el).placeholder.replace(/ \(.*\)/, "");
It seems as though this code is trying to replace the "(Optional)" part of the placeholder text before the placeholder value is actually set.

Not quite, this is the actual fix https://github.com/posativ/isso/commit/2612fbc0f563c5a65b8dd004689ced04d190c20a. I've released a new version that includes this fix.


L-Tech

@Olympic1 beat you to it with #4549

Ok, but it is not an unofficial release.  I'm doing this with Olympic.

Yep. New name is LTechContinued


Removes space before human size output

Description
Steps to reproduce the issue:

$ docker images | sort -hk 7,8

Describe the results you received:
Sorts numerically but doesn't take into account the  MB or  GB (even though -k 7,8 includes it).
Describe the results you expected:
Most commands, like du -h have no space before MB or GB and thus work directly with sort -h.

Additional information you deem important (e.g. issue happens only occasionally):
Common tools that have the standard K, M, G without space (note that they don't have GB but just G but that doesn't seem to bother sort -h):

du -h
df -h
ls -lh
tree -h
free -h

Common tools that have a space before it:

docker images

Output of docker version:
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 21:44:32 2016
 OS/Arch:      linux/amd64

docker images itself is likely to support sorting
https://github.com/docker/docker/pull/25702

That's neat, but I still think it shouldn't try to reinvent the wheel and
keep closer to Linux standards (especially even Windows is kind of moving
towards them). It would be also a much simpler "fix".
Le jeu. 19 janv. 2017 à 10:50, Akihiro Suda<EMAIL_ADDRESS>a
écrit :

docker images itself is likely to support sorting
#25702 https://github.com/docker/docker/pull/25702
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/30271#issuecomment-273727785,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAI5A9bbYtKRiekg1ouPS-qvGTjfFfAJks5rTzHxgaJpZM4Ln4y8
.

I agree that it would be nice to stick closer to other tools, and don't see a real issue in removing the space.
The package uses kiB / kB to distinguish between kibibyte and kilobyte, which (according to Wikipedia (fwiw)) is the "official" unit https://en.wikipedia.org/wiki/Kibibyte, so not sure which to use there.
comparing the outputs of df -h between my local macOS machine,  and an Ubuntu box (kibibyte vs kilobyte);
macOS;
df -h
Filesystem                           Size   Used  Avail Capacity    iused      ifree %iused  Mounted on
/dev/disk2                          2.8Ti  1.2Ti  1.6Ti    43%    4201672<PHONE_NUMBER>    0%   /
devfs                               193Ki  193Ki    0Bi   100%        666          0  100%   /dev
...

Ubuntu 16.04;
Filesystem      Size  Used Avail Use% Mounted on
udev            982M     0  982M   0% /dev
tmpfs           201M  696K  200M   1% /run

@wernight could you open a pull-request for discussion in https://github.com/docker/go-units (which is where the "human friendly" output is generated?
Perhaps it's best to open separate PR's for "remove space" and changing the unit, so that they can be discussed independent from each other.

I did one. Strangely it's not referenced here.

@thaJeztah can we close this ticket? or we need to re-vendor go-unit?

Need to vendor that go-units but didn't have time to perform that
Le lun. 6 févr. 2017 à 11:19, bshuster<EMAIL_ADDRESS>a écrit :

@thaJeztah https://github.com/thaJeztah can we close this ticket? or we
need to re-vendor go-unit?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/30271#issuecomment-277640495,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAI5A9397Y3nlMJq5kCII-XVXj-SiY81ks5rZvPBgaJpZM4Ln4y8
.

I think this issue has been fixed through #30602 and #30790?

yes it is!


Update Nexus reliability

Resolves #3642
Supersedes #3675
How is this addressed

Add wait for docker script
Update CHANGELOG.md
Update Ubuntu to 22.04 LTS
Migrate scripts from /tmp/ to /etc/nexus-data/scripts/
Migrate nexus_repos_config to /etc/nexus-data/scripts/nexus_repos_config

/test-shared-services

/test-shared-services

/test-force-approve
Passed: https://github.com/microsoft/AzureTRE/actions/runs/5902121820/job/16009907374


read_sql() and to_sql()?

It would be wonderful to have both read_sql() and to_sql(), analogous to pandas for those times when you have to clean up inconveniently large datasets. I saw http://stackoverflow.com/questions/33129839/choosing-a-framework-for-larger-than-memory-data-analysis-with-python but it appears that no issue had been opened yet

Yup.  I agree that this would be great to have..  For read_sql we would have to include a mandatory order by column to the API in order to cleanly pull out partitions.  See http://www.dofactory.com/sql/order-by-offset-fetch
This will only work efficiently if there is some indexed column and the user knows what it is.

Something more to keep in mind (not that I've tested any of these flavours - I'm stuck with MySQL): http://blog.jooq.org/2014/06/09/stop-trying-to-emulate-sql-offset-pagination-with-your-in-house-db-framework/

@mrocklin on 2nd thought: why would that be different from read_csv, or is your comment about the efficiency of a read_sql process?

We need to ensure that several separate queries properly partition the data into disjoint subsets that cover the entire table.  I think that the only way to do this is with order-by/limit-offset but would be happy to learn of alternatives.  Additionally, sorting the dataset on an index would align well with other dask.dataframe operations

It now occurs to me that we don't really want limit/offset, we want to find percentiles on a column and then filter with a where clause for each of the partitions.  This is more in line with the partition by index-value approach.

This should be fairly easy to implement with pd.read_sql, dask.delayed and dask.dataframe.from_delayed.

Pseudo code would be something like the following:
def read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, parse_dates=None, columns=None, chunksize=None):
    divisions = pd.read_sql_query('select index_col and something with ntile')
    parts = [pd.read_sql_query('select columns from table where index_col >= divisions[i] and index_col < divisions[i + 1]') for i in range(len(divisions) - 1)]
    head = pd.read_sql('select columns from table limit 5')
    return dd.from_delayed(parts, divisions, head)

We can probably test against sqlite.  We should probably have pretty loud text warning that the index_column should really be indexed.

Just in case, NTILE is not supported in sqlite (See here). Not sure what other function could be used.

@cdagnino @martindurant ran into this issue in #1181.  Your input on that PR would be appreciated.

Agreed that this would be an awesome feature.
Would a good workaround for this be to use the chunksize argument to pd.read_sql and pd.read_sql_table, and use the resulting generator to build up a dask.dataframe ?

@QCaudron : Doesn't the use of chunksize use offset to do the paging, which we are trying to avoid (see above)?

@martindurant : think you might be right. The workaround I suggested was to pull data from SQL now in a hacky manner, rather than properly, which I hope will still come shortly ;)

Hi  - Here is how I get mysql into dask.
My use case essentially involves loading a list of tables from mysql into a dictionary {table_name : dask_df, ...} for grouping -> merging -> factorizing -> 'new db'.  Very similar to the dataflows described in the dask documentation
It is a bit convoluted but in term of speeds this method beats odo(uri_conn + table, dd.DataFrame, dshape=ds) substantially (IMO it is becauseodo uses pandas to read the sql table).
# mysql to dask
to_dask(dbTbl_name_str):
    # Handles whether remote or local host
    try: # Fast way using inline
    # 1. mysql to_csv using odo
    odo_csv = odo(uri_conn + dbTbl_name_str, csvNm,
                             dshape= mysql_ds, ...)

	# 2. csv_to_dask using  (header does not work in mysql natively (google mysql outfile headers)
        # Settings very important (Windows stuff)
	dd_df = dd.read_csv(self.odo_csv.path, header=0,
							names=tbl_clmNms_list, # From list of sql tbl names (using get column names from mysql
							quoting=csv.QUOTE_NONE,
							encoding='latin1',
							sample=self.odo_csv_numbytes,
							collection = True # This where more optimization could be put in
							)

			#dd_df.compute()
			#display(dd_df.head(1))

Notes:

I have done some optimization using dask delayed (roughly 50% improvement) but not in production.
The actual code has a try: csv method except: using odo(mysql, dd.DataFrame, ..)

I hope this strengthens the case for a dask.read_sql , maybe  'to_sql` :)
Cheers

Very cool @gryBox .
If dask.dataframe adds a read_sql command (as is done in #1181) it would probably just use the sqlalchemy/pandas.read_sql function, which, as you say, can be fairly slow.  We probably don't have the manpower to robustly build out SQL->CSV->DataFrame pipelines for all databases.  We tend to lean on whatever Pandas does for most functionality and push performance considerations up to that project.

I agree that the slowness is probably in pandas alone (I don't think pandas' read_sql uses sqlalchemy for more than creating the connection and passing through pre-prepared SQL). Looking in the code, odo converts to csv on the server, which is why its faster.
In any case, SQL data is usually sent down the line essentially as text. To get the very best performance, I remember seeing (but I can't now find) that you can specify an SQL query to return packed binary data, the sort of thing that could be read with np.fromstring if the dtype is exactly defined. Perhaps worth if for really critical applications.

@mrocklin Thanks.

We probably don't have the manpower to robustly build out SQL->CSV->DataFrame pipelines for all databases.

Yes.  The task is very time consuming with too many flavors and variables.  Using sqlalchemy/pandas.read_sql  would suffice ... sql alchemy would handle the errors and is robust enough.
@martindurant

SQL query to return packed binary data

Going to investigate this.  I can see skipping the csv part, getting the packed binary data -> np.fromstring -> ... -> dd.DataFrame No messing around with csvs permissions and other sql to text junk.

if the dtype is exactly defined

Hoping that something like this will take care of that:
`	# create resource
resc = resource(data_obj)
# Dicover the resource
odo_ds = discover(data_obj)`

Another path I learned about a couple of days ago was Inline JSON Path Expressions in MySQL 5.7.  Still needs to be tested

I'm looking at using Dask as an almost drop-in replacement for pandas, but require the to_sql functionality (purely in to a flat table format for sqllite) for working with a (non-Python) third party tool that streams its data from an SQL table. I've not used Dask at all at this point, so would be grateful for any suggestions on how to implement to_sql prior to this becoming part of the library. The only thing required is that it can write a single table with a unique row index (currently I'm using pandas.to_sql). Thanks.

@morganics : I haven't tested this, but I believe calling .to_sql() on each pandas dataframe section is totally fine, if you include the if_exists="append" parameter. You will need to create the row index as a column beforehand.


Multiple accounts UI

If a user signs in with multiple accounts, can we indicate or highlight here which one they are currently in?

Closing as a duplicate of https://github.com/microsoft/vscode/issues/94076


Can't find train.json or gold labels in train set

For some reason the train dataset zip file only contains a directory of train_databases with the database directories for each db and 1 json file named train_tables.json
Is there a different place where the gold labeled questions/sql data exits?
Thanks so much!

It seems that the file list is complete. Would you like to confirm again?

Sorry for the bother, it was a Mac issue. Once safari auto unzipps the file the relevant files were missing.
I redownloaded the dataset using (⌥ + click) and the issue was solved.
Thanks for the quick response!


[Suggestion] Add to choose local file. Optionally add Seafile, and DAV

Currently the plugin allows to only do a one-time upload of a local file. Which is rather weird because this makes sense only if the plugin needs to offload this data somewhere externally. It should allow for accessing a local database and keyfile continually, and store relevant data locally. Otherwise end user doesnt get an option to use the plethora of cloud providers currently unsupported by the plugin. Endusers should have a choice of selecting their cloud provider, or at least choose to sync their data in the way they require. For example I use Seafile, Syncthing and DAV options to my own dedicated server. But the extension doesnt support that. So, please allow local upload and storing data and key file.

The ability to choose a local file is not supported by Chrome extensions - CPK cannot reach out to the hard drive of the user - it would be a huge security risk if it could.  That is why the user must upload the file - the file is stored in Chrome internal storage then, and owned by the extension, so nothing else can get to it.
Other cloud providers are possible, and pull requests are welcome.  There is a current PR https://github.com/perfectapi/CKP/pull/98 that adds WebDAV support, but I have had limited success testing it, which is why it is not yet in the released product.


Unable to create Unreal Interface

Upon trying to create and add a new Unreal Interface through FUnreal I get presented with the following error message:

[ERRO] Template not found for (sources, 5, tpl_class_unrealinterface)

Visual Studio 2022 (17.4.3)
Unreal Engine 5.0
FUnreal 0.0.5

Hi @ZeroComfort, thanks for reporting the issue.
FUnreal v0.0.7 has been published and should resolve the problem.

I can confirm it has been fixed. Thanks for the quick response!


Localization

Things that need to be localized:

"Send" button
"Load earlier messages" button
"New Message" placeholder text

Dutch
"Send" = "إرسال"
"Load earlier messages" = "تحميل الرسائل السابقة"
"New Message" = "رسالة جديدة"

Thanks @qaysdwekat !
Would you mind opening a new issue for the Arabic translation, or submitting a PR? :smile:

Korean
"Send" = "전송"
"Load earlier messages" = "이전 메시지 불러오기"
"New Message" = "새로운 메시지"

Making a PR for this now

In Polish I think that
"Load earlier messages" = “Wcześniejsze wiadomości”;
would sound better ;)

It sound very technocratic…
"Load earlier messages" = “Otwórz wcześniejsze wiadomości”;
or
"Load earlier messages" = “Pobierz wcześniejsze wiadomości”;
sounds a bit nicer in my opinion.

Slovak:
"New Message" = "Nová správa"
"Send" =  "Odoslať"
Thx 👍🏻

For anyone just now finding this thread — if you want to add a new language, please submit a PR.


ResourceAccessException : https://api.twitter.com/oauth/request_token. Connection timeout

Sometimes login is successful and sometimes it fails.

A connection timeout is usually a network issue or a problem at Twitter itself. There's not much that Spring Social can do about that. But, how Spring Social reacts to such things is something that can be addressed. Can you describe (perhaps with screenshots) what you see when this happens?
I'm guessing that the exception somehow manifests itself in the browser when it flows up through one of the controllers or filters. This has me wondering: Is this happening at signin (with either ProviderSignInController or SocialAuthenticationFilter) or connect time (ConnectController)?

We have apache as webserver which delegates the request to tomcat server.
Since apache has 5 min timeout the browser give 502 proxy error.
The issue is reproducible whenever we leave the screen idle for 5-10 min and then sign in with twitter or facebook.
This issue is coming up from ProviderSignInController. Following is the stack trace :
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api.twitter.com/oauth/request_token":Connection timed out; nested exception is java.net.SocketException: Connection timed out         at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:607)         at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572)         at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:493)         at org.springframework.social.oauth1.OAuth1Template.exchangeForToken(OAuth1Template.java:192)         at org.springframework.social.oauth1.OAuth1Template.fetchRequestToken(OAuth1Template.java:117)         at org.springframework.social.connect.web.ConnectSupport.fetchRequestToken(ConnectSupport.java:212)         at org.springframework.social.connect.web.ConnectSupport.buildOAuth1Url(ConnectSupport.java:199)         at org.springframework.social.connect.web.ConnectSupport.buildOAuthUrl(ConnectSupport.java:126)         at org.springframework.social.connect.web.ProviderSignInController.signIn(ProviderSignInController.java:180)         at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


logging/gelf: document the new default

This documents the new compression default for docker engine gelf logging driver. For details, see https://github.com/moby/moby/pull/40101

Deploy preview for docsdocker ready!
Built with commit 0106545a3760911ea2029e1c812bce3348c6360e
https://deploy-preview-9678--docsdocker.netlify.com

Marked this "WIP" because the feature hasn't been merged yet. I think this would be for the next release (Docker 19.09), correct?

Closing since we're not merging moby/moby#40101


calico new images for caching

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 76.006%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2626

Relevant Lines:
3455

💛  - Coveralls

do we still need this?

Killing Calico caching.


my iteration on "why RSH"

Yes, I probably will do more changes later but this is now presentable and ready to go.


Global automount configuration

Hello, please add an option to globally configure automount with .wslconfig file.
Option to not automount removable drives would be perfect as well, right now, if someone use removable drives they cannot be safely removed until WSL distros with automount enabled are shutdown.

is /etc/fstab not enough of a global automount for you?

/etc/fstab is per distro, so it is not global and it is not amount at all.

Ok, sorry, I've probably been not precise enough in what I wanted.
Right now you can set per distro if host's drives are mounted when WSL distro is started. By default all host's drives are mounted into distro.
You can disable that with /etc/wsl.conf with following:
[automount]
enabled=false

Then you can mount whatever you want through /etc/fstab.
The problem I see is this behavior mount ALL drives from the host system, including removable drives, which you cannot safely remove without stopping WSL distros. This is ok, as long as you manage and configure it yourself. Sometime you don't want to mess with distro config, like i.e. Docker WSL2 distro as it will loose some flexibility and might be broken in result.
So what I want is option to globally for all WSL distros to disable mounting for host's removable drives.

Interesting. Many people wanted precisely the behavior of auto-mounting removable drives. To the point projects exist using things like USB-IP for WSL2 to pick up on them.  You didn't specify, but sounds like based on what I just said, you're using WSL1 and want more options available under [automount] to be configurable. I think the answer from the MS devs will still be use /etc/fstab, which only mounts what's defined. You can copy that to every distro, they're all the same when it comes to mounting. I suppose they could make a global /etc/fstab that's written to every distro you install but they prefer to remain hands off of the distros as much as possible. It's bad enough we still have a proprietary init being used on WSL2.

I have another use case for this - to isolate WSL distros from Windows for more sensitive scenarios. For example, I want to prevent malware downloaded inside WSL from accessing (or overriding access to) the Windows host. Right now, I can disable it via wsl.conf, but that can be overridden by malware (assuming it got root inside WSL). It would be nice to be able to enforce [automount] enabled=false globally instead.

Has there been any progress towards implementing this feature?
Being able to set [automount] enabled = false and [interop] enabled = false in .wslconfig, i.e. globally, instead of setting those options in wsl.conf per distro would actually be a very useful feature.
As dinvlad said, if we assume that someone has root access inside a WSL distro, wsl.conf can be modified, while modifying .wslconfig would require access to the actual Windows host.

It may be possible with a little Win32 program. The logic would be like following:

Use WslGetDistributionConfiguration() to get wslDistributionFlags.
Remove the flags you want to disable.
Set the remaining flag value with WslConfigureDistribution().

It may be possible with a little Win32 program. The logic would be like following:

Use WslGetDistributionConfiguration() to get wslDistributionFlags.
Remove the flags you want to disable.
Set the remaining flag value with WslConfigureDistribution().

As far as I understand, this flag value is set in the Windows Registry. However, someone can still mount a host drive and enable interoperability by creating the /etc/wsl.conf file, right?

However, someone can still mount a host drive and enable interoperability by modifying the /etc/wsl.conf file or manually mounting a drive, right?

As for the formality, I do not suggest to modify registry value because any wrong step may break your WSL setup. But be as naughty as you want, just don’t get caught. Yes, those flags are set in Flags registry. Those will override any options in /etc/wsl.conf. For example, if WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING flag is removed [automount] enabled=true would do nothing. After that, Windows drives will not be automatically mounted inside of WSL sessions.

Thanks for the clarification, that's a good workaround for stopping automounting and blocking interopability I guess, but unless I am missing something, someone could still mount the host drives manually, is that correct?

someone could still mount the host drives manually, is that correct?

Only if the current user has administrator privilege or belongs to Hyper-V Administrators user group.

someone could still mount the host drives manually, is that correct?

Only if the current user has administrator privilege or belongs to Hyper-V Administrators user group.

I found out that it is possible to also mount a physical drive from within a Linux distro running on WSL. I disabled automount and interoperability and executed: sudo mount -t drvfs e: /mnt/e.
The drive was properly mounted at /mnt/e and I could list its contents.
So while wsl --mount has to be run from the host (assuming that interoperability and automounting is off), if we assume that someone has root access on the Linux distro, access to the physical drives of the host is still possible.
I believe it would be useful to be able to restrict access to certain drives, especially now that WSL 2 is available on Windows Server. I understand that WSL is a product geared towards development workstations and not production servers but on the other hand, not being to limit access to certain resources is a security oversight in my humble opinion.
In the same vain, I think that wsl.conf should not be located in the distro. As you mentioned, configuration for each Linux distro already exists in the Windows Registry, so what is the purpose of having a second one, one that can be modified from inside the distro?

I disabled automount and interoperability and executed: sudo mount -t drvfs e: /mnt/e.

Did you disable that with those WSL APIs? I have tried that command and it shows error like the following after disabling WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING flag.
$ sudo mount -t drvfs e: /mnt/e
<3>init: (23) ERROR: UtilConnectVsock:408: connect port 50002 failed 110
Operation timed out

I haven't tried using the WSL API. I disabled mounting through /etc/wsl.conf initially.
I tried again by setting the Flags registry value to 8 in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ for the distro. I assume this to be equivalent to using the Wslapi.
I set it to 8 since this is flag for defining WSL version 2 without any additional permissions. I assume 9 would be the value to only enable interoperability, a to only append Windows path elements to $PATH, b  to do both,  c to only enable drive mounting and f to enable everything.
When you changed WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING, did the version of the WSL distro remain 2? Because anything under 8 for the flag value sets the WSL distro to version 1.

I have tried that with both WSL1 and WSL2. Here I focused on the automount feature. Whether Flags works with different values is a broad topic. Some calculation,

WSL_DISTRIBUTION_FLAGS_ENABLE_DRIVE_MOUNTING = 0x4
WSL1: Before 0x7 → Subtract 0x4 → After 0x3
WSL2: Before 0xf → Subtract 0x4 → After 0xb

This is an important requirement for us to be able to permenantly and globaly disable interop and automount and also disable drvfs completly, without non local admins or wsl sudo users being able to enable it again.. We are a large corporate, and our security division will not allow the deployment of wsl without this ability to lock it down.

This is pretty much the reason why I stopped using WSL, unfortunately. It worked pretty flawlessly otherwise, but the lack of separation between the host and guests is just not workable in a multi-project environment.


Our builds stopped working because latest is no longer working

This PR switches us to using glide to build the plugin and pins on specific versions
of the libraries that we require for the plugin.
We'll also change the Dockerfile build process to use the current source for our
builds vs trying to git clone it from the remote repos.
Signed-off-by: Edward Raigosa<EMAIL_ADDRESS>

LGTM

You need to bump the Go version so sort.Slice will work in the .travis.yaml file.
Also, if needed, we should pin the versions of those dependencies here, rather than in the build flow, so that way you guys will never need to pin them every time you create the container.
Let me know if you need help!

@patrickdappollonio but isn't in the container that the libraries need to exist?  If we get them from the .travis.yml then when i build it, it would still pull from latest.   Let me try to switch to patch version and see if that makes the sort.Slice issue disappear for us.

Yeah, in the docker container there will be no problem if you're using the golang image.
My point was, you might not want to always, every time you build, have to pull your dependencies, not from internet, not from glide. With Go, you can keep them along with the code and build with those, so the glide part doesn't become an "extra step" in the build process and you can safely remove it even from the Dockerfile.

Lets add vendor folder after this merge, sorry I merged the wrong one earlier, i added a revert and merged that to undo it.


The value of Difficulty calculated in Target class is wrong

https://github.com/MetacoSA/NBitcoin/blob/9843ab333f93394d70287bec3f3754610abe7897/NBitcoin/Target.cs#L90-L111
All leading zeros in the decimal part will be omited due to decimalPart.Multiply(BigInteger.Ten); as decimalPart is initialized as zero.

You are right. I am surprised no tests caught this. Luckily this number is only used for human consumption.
I wonder where I took this code from. Even the double.Parse is really fishy.

Reviewing https://www.youtube.com/watch?v=6TDLMkOCQkU that's embarassing... ;p

fixed in <IP_ADDRESS>


Consider inline code styling

This issue is more of a potential design opportunity, for improving readability for inline code.
The opportunity here is to consider the same visual treatment for inline code

__
On the Carbon website

From the conversation over in #391, but seems more appropriate here:

Do we have designs for what code syntax highlighting should look like for the following two use cases:

We don't have anything written about regarding syntax highlighting or inline code snippets. Regarding inline code, I really like the carbon styling where there are tiny inline code cells throughout the text. I think that's perfect if we could render them in cool-gray-10.
Regarding syntax highlighting, I could switch to the carbon colors to override the defaults, but I don't think it's important enough to prioritize (personally). We have other bugs and enhancements that I would give priority.

This repository is no longer maintained. It has been superseded by IBM Quantum Learning.


Support Grib formats via Python CFGrib library

[x] Refactor from load_netcdf to load_datacube
[x] Refactor from check_netcdf to check_datacube

This work is partial implementation for #43 and in response to ESOWC Challenge - https://github.com/esowc/challenges_2021/issues/4

@josuemtzmo could we please disable travis and merge this as is and continue more changes as smaller increments ?

@josuemtzmo this is now ready to review and merge.

I will wait to merge until we figure out how to load cfgrib in the blender python distribution, as currently it is not supported.

TODO:

[ ] Get grib example file to include cfgrib file import and test. @StephanSiemen, could you save and share 5 days from the example data that Sylvie shared with us? I tried using from cfgrib.xarray_to_grib import to_grib but it fails, I will submit an issue to cfgrib tomorrow.
[ ]  zarr support. Fix bug, where blenderNC expects a file, and raises the error file doesn't exist. This is a consequence of zarr using a folder structure instead of a file.

I believe support for Zarr should be done separately in the spirit of "small changes delivered continuously" - https://martinfowler.com/bliki/ContinuousDelivery.html


feat(vercel): add functions config

Currently, some serverless function options are not customizable, such as memory and maxDuration:
https://vercel.com/docs/build-output-api/v3#vercel-primitives/serverless-functions/configuration
This PR adds support so users can optionally set those options in their nitro.config.ts file:
// nitro.config.ts
import { defineNitroConfig } from 'nitropack'
export default defineNitroConfig({
  "vercel": {
        "functions": {
            "memory": 1024,
            "maxDuration": 10,
        }
    }
})

🔗 Linked issue

❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

This is nice addition thanks! Any reason we don' allow specify all function configurations?

This is nice addition thanks! Any reason we don' allow specify all function configurations?

@pi0 Thanks for asking! Other options such as environment and regions should be managed in the project settings:
https://vercel.com/docs/concepts/projects/project-configuration#env

We recommend against using this property. To add custom Environment Variables to your Project define them in the Project Settings.

So adding memory and maxDuration would be enough, I believe.


[BSO] Changes initCustomItems

Description:

Resolves #748
Requires https://github.com/oldschoolgg/oldschooljs/pull/154
Moves custom pricings away from Client.ts and into custom item initialization

Changes:

Add custom property to customItems.ts

Add replaces customItems.ts icon

Change price.ts to work with custom items

Add new function to return a base64 of an image

[X] I have tested all my changes thoroughly.

Tests failing!


[Bug] Scan will throw an error if scanned blocks contain a rejected transaction

🐛 Bug Report
Command snarkos developer scan will throw an error if scanned blocks contain a rejected transaction.
Steps to Reproduce
$ snarkos developer scan --endpoint https://vm.aleo.org/api --view-key AViewKey1hKNmqi83PpwjCTSSUCZT2rX3p3jcktNXzJZnk6rSqq4b --start 126012 --end 126013

Scanning 1 blocks for records (0.00% complete)...⚠  Failed to read JSON: The "transitions" field is missing at line 698 column 1

Block 126013 contains the following transaction :
https://explorer.hamp.app/transaction?id=at1p3cm5qh6nxvwce9xrjqtqerpex54yhg9a8yd0v8kk7cu88r2lsysvyj0ms
Fix proposals

Add Rejected object support.
Also, maybe snarkos developer scan should return the list of other records even if it encounters an error when parsing a specific transaction.

Environment

snarkOS v2.1.4

The snarkOS v2.1.4 release is a bit out of date. In the meantime, before we update the release, installing snarkOS from the testnet3 branch should address your current issue. Here are instructions for how to do that - https://github.com/AleoHQ/snarkOS/#22-installation.


add linux build github action for 'GCC with Make'

progen build -t make_gcc_arm returned a few compilation errors the first time I ran when reading README.md.  This pull request adds a github action to check whether the build is working.

Sorry I missed this PR back when you created it!


Merkle root implementation and recovery package (batch) validation

Added merkle_root calculation.
The merkle root is calculated in the same way as in a bitcoin block header, except that the transactions order in the merkle tree is sorted by transaction hash. Sorting by hash ensures that a recovery package merkle root is independent of the ordering of transactions and remains consistent even if transactions are shuffled.
Added validation
Rebuild unspents_db using insight provider and report input total, fee total and fee percentage. Sanity check fee per transaction does not exceed expected percentages and amounts.

Thanks!


Question: How can I resize Events with mouse

Hi,
I use the DayView with events like shown in https://quasarframework.github.io/quasar-ui-qcalendar/examples/day-view. Is there any chance that I implement a resize via mouse for the events (e. g. make event duration longer/shorter)? Thanks a lot for any idea in advance!

There is a couple of things here in play. First, you need some sort of artifact at the bottom of the event to indicate to the user that they can extend/shorten the time (or even move the event). Second, you need a way of converting pixel height back into time.
Normally, if you have a set time (in minutes), you use timeDurationHeight to figure out the height in pixels for the event. In this case, it sounds like you need a method that does the opposite. For example, pass in height in pixels and have it return a time.
The timeDurationHeight is as follows:
  function timeDurationHeight (minutes) {
    return minutes / intervalMinutes * intervalHeight
  }

To get the length of time in minutes, based on height of pixels, the code would be:
  function heightToMinutes (height) { // height in pixels
    return parseInt(height, 10) * intervalMinutes / intervalHeight
  }

If you set the properties interval-height and interval-minutes explicitly, then these are known to you and you can work out your own method (ie: use this.intervalHeight and this.intervalMinutes).
:interval-height="intervalHeight"
:interval-minutes="intervalMinutes"

I think this would be a good thing to add into the code though.

Thanks a lot for your idea Jeff! I found a quite simple solution: You can set the resize style of the event div to vertical (as shown in https://www.w3schools.com/cssref/tryit.asp?filename=trycss3_resize_height) and then calculate the new duration as you pointed out in your answer. We can use the resize event as shown in https://stackoverflow.com/a/5490021/9321986. Awesome! I think I'll code this tomorrow morning.

@anli-xsigns I've added the two methods and done a release
https://github.com/quasarframework/quasar-ui-qcalendar/releases/tag/v3.4.0

You can also use Quasar's QResizeObserver (https://quasar.dev/vue-components/resize-observer#qresizeobserver-api), maybe in conjunction with debounce (https://quasar.dev/quasar-utils/other-utils#debounce-function).

Jeff - that's awesome, thanks a lot! Thank you too for the hint for the resize observer! I'm using the next branch already for TypeScript and vue3 comatibility :-)

Hm, I think Quasar's QResizeObserver has a disadvantage for me: "Please note that QResizeObserver will issue an event as soon as it gets rendered and attached to DOM, so you can have the initial size of the container.". I want to change the corresponding data in the database in the event - that wouldn't be possible with this "feature". Is there a chance to disable this?

Looks like you can't. QCalendar has one it uses, in src/directives/ResizeObserver.js - but, it's not exported. You can try that one if desparate.


Cannot build on Windows with non-English system locale: "newline in constant" when building AsyncCmdlet.cs

Steps to reproduce
Change system locale to non-English such as Chinese, then run Start-PSBuild. It will fail at around line 847 of src\Microsoft.PowerShell.PackageManagement\Cmdlets\AsyncCmdlet.cs which it contains some non-ASCII characters when logging. Changing system locale to English will work.
Expected behavior
It should build on systems with non-English system locale.
Actual behavior
Failed to build.
Environment data

> $PSVersionTable

I believe it is because the file is not saved as UTF-8 so right now the left & right pointing double angle quotation mark are in their ASCII value which is 0xAB and 0xBB; when read on a system with Chinese as default system locale, the 0xBB and ending " will be treated as a DBCS character thus causing compiler to fail. If we save the file as UTF-8 they will become 0xC2AB and 0xC2BB, which works correctly on any system locales.


Rename too-many-positional{→-arguments}

In https://github.com/pylint-dev/pylint/pull/9842, they renamed too-many-positional to too-many-positional-arguments and implemented it.
If we at some point implement support for full names in addition to the codes we support already, this will affect us too.
PS: What’s the schedule for this rule coming out of preview?

Annoyingly, these are strictly-speaking parameters rather than arguments... but the new name seems strictly better than the old one, and it's useful to have the same name as pylint. PR welcome!


remove wrong info from readme and fix it a bit. fix codecoverage so t…

…he tests would run, if there were any
this is just a formal thing but hey, why not have it done right.

Fantastic.  Thanks for this!


basicAuth and bearerAuth should support dynamic users

What is the feature you are proposing?
Having a fix set of credentials that never changes during the course of the process lifetime is not particular realistic.
With the current implementation I don't see a good way to connect the auth implementations to a database.
They both would need some form of a callback function instead of just passing in all the date in as config.
https://github.com/honojs/hono/blob/4ca5f60def726731b3afbf3f6137f0a4b92d8b27/src/middleware/bearer-auth/index.ts#L8

Hi @tcurdt
I don't know exactly what you want to do, but you could write something like this:
app.get('/', async (c, next) => {
  const newToken = generateToken(c)
  const auth = bearerAuth({
    token: newToken,
  })
  return auth(c, next)
})

Anything more than this would be outside the scope of Basic Auth and Bearer Auth.

I want to inject the logic whether some auth is valid, not push credentials into the middleware.
async function validate (token) {
    return false // or true
}

async function validate (username, password) {
    return false // or true
}

Right now it looks like I would have to write a customer middleware for this.
But I have the feeling I am missing something.

@tcurdt
I think the best solution is making custom middleware.

I think the best solution is making custom middleware.

Hm. OK.
But how many times are user credentials NOT coming from a database?
Feels a little weird that basicAuth and bearerAuth are not supporting such a use case.

But how many times are user credentials NOT coming from a database?
Feels a little weird that basicAuth and bearerAuth are not supporting such a use case.

This is a built-in middleware that allows users to easily add authentication, so if you have any doubts, don't use it, create your own middleware. Or make a PR with specific specs and implementation.

Hello, I agree with this opinion.
Since bearerAuth is used dynamically in most cases, it seems like a hurdle to require many users to create custom middleware.
What about a policy of providing a lambda function that accepts a context as an argument, as the current implementation has bearerAuth accepting only a Config object?
// format
bearerAuth<Env>(async (c) => {
  return {}; // config
})

// usage with context env
app.get("/private", bearerAuth<Env>((c) => ({ token: c.env.token })), (c) => {
  return c.text("This message is secret!");
})

// usage with db auth
app.get(
    "/private",
    basicAuth<Env>(async (c) => {
        const client = db(c.env.DB);
        const res = await client.query(
            "SELECT * FROM basic_auth_users",
        );
        const users = res.rows;
        return { users };
    }),
    (c) => {
        return c.text("This message is secret!");
    },
)

How do you think?

Hi @sor4chi
Is the example I mentioned before not enough?
app.get('/', async (c, next) => {
  const newToken = generateToken(c)
  const auth = bearerAuth({
    token: newToken,
  })
  return auth(c, next)
})

Is the example I mentioned before not enough?

Not really. A token is not generated but provided.
And everyone would have to write their own middleware for such a common use case.
It should be a pull not be a push API.
Pushing data into the middleware is just not applicable for a real world scenario.
Imagine the app has 1M users. You don't really want to push all users credentials into the middleware.
async function validateBearer (c, token) {
    return false // or true
}

async function validateBasic (c, username, password) {
    return false // or true
}

app.get("/private", bearerAuth((c, token) => (validateBearer(c, token))), (c) => {
  return c.text("This message is secret!");
})

app.get("/private", bearerBasic((c, username, password) => (validateBasic(c, username, password))), (c) => {
  return c.text("This message is secret!");
})

or more simple
async function validateBearer (c) {
    // check provided token
    return false // or true
}

async function validateBasic (c) {
    // check provided username and password
    return false // or true
}

app.get("/private", bearerAuth((c) => (validateBearer(c))), (c) => {
  return c.text("This message is secret!");
})

app.get("/private", bearerBasic((c) => (validateBasic(c))), (c) => {
  return c.text("This message is secret!");
})

@tcurdt
Hmm. If you implement validateBearer or validateBasic yourself, I don't think you need to use Bearer Auth Middleware and Basic Auth Middleware.

You can write like the following without built-in middleware:
import { Hono } from 'hono'
import { createMiddleware } from 'hono/factory'
import { HTTPException } from 'hono/http-exception'

const app = new Hono()

const customAuth = createMiddleware(async (c, next) => {
  const isValid = validate(c)
  if (!isValid) {
    const res = new Response('Unauthorized', {
      status: 401,
      headers: {
        //...
      },
    })
    throw new HTTPException(400, { res })
  }
  await next()
})

app.get('/private', customAuth, (c) => {
  return c.text('This message is secret!')
})

If you put it that way you got a point.
I am fine to use a custom middleware.
So feel free to close.
That said: I do feel like the current basicAuth and bearerAuth implementation are are some odd ducklings as is.
Question is, whether the username/password/token extraction or dealing with the realm could/should be abstracted away from the user. If hono comes with auth helpers, I think it should support passing in functions. But I am also fine without.

@tcurdt

Question is, whether the username/password/token extraction or dealing with the realm could/should be abstracted away from the user. If hono comes with auth helpers, I think it should support passing in functions. But I am also fine without.

Yeah, I think you are right, we can abstract the common parts of Basic Auth and Bearer Auth. That is a good idea.
But as I said, we can create own middleware, so I don't think we need to make abstract too much.
Now, let's close this Issue once. If there are similar needs, we can reopen it. Thanks for the discussion!

Agree with the comments above to make basicAuth dynamic. I am sort of a hobby coder and can generally figure out most stuff from docs and examples, but and I was looking to use basicAuth, but store the username and passwords in ENV variables, as opposed to hardcoding them in the actual call to basicAuth as all the examples do. Been working for an hour and can't figure out how the heck to do that, as can't pass c.env to the same middleware function that basicAuth is called in. Keep getting errors. Only thing that works is hardcoding the usernames and passwords into basicAuth, which seems like a poor solution. Anyway, i'm sure it's easy, but I can't figure it out. btw, one of my attempts is below.
app.use('/admin/*', async (c,next) => {

  async function verifyFn(user,pw) {
    return basicAuth({
      username: user,
      password: pw,
    })
  }
  const user = `${c.env.ADMIN_USER}1`
  const pw = c.env.ADMIN_PW
  const verify = await verifyFn(user,pw)

}
)

@osseonews I don't think this closed issue is the right place to ask for these kind of support questions.
FWIW, passing env variables is only semi dynamic. It depends whether you are running on node or on edge. If you are running on node you could just pass the env variables from the process and not the context to the standard middleware.

Edit, is this the correct way to do it??

Have you tried it? Your lasst code snippet looks like it should work.
It still pushed the data into the middleware though and creating a new middleware on every request also feels wrong.

Sorry, about that. I didn't realize I couldn't post a comment here as the topic completely related to the same issue I had. Anyway, in case anyone ever finds this post and has the same issue, my 2nd snippet works fine, if you are using Hono in Cloudflare Workers (edge).
As regards to the 2nd comment: " creating a new middleware on every request also feels wrong." I don't understand this comment. That's actually the whole point of middleware, it runs on every request for the path specified. I dno't see why that is wrong. It's just another function. In Hono examples, they have a logger middleware, which you can run on every request irregardless of the path.
Anyway, thanks all for your help. Appreciate it. Hono has been an amazing library for me.

Hi @osseonews
Quick response. This is good way which we recommend:
app.use('/admin/*', async (c, next) => {
  const auth = basicAuth({
    username: c.env.ADMIN_USER,
    password: c.env.ADMIN_PW,
  })
  return auth(c, next)
})


Alphabetical sort isn't correct for images like 10 and 10.1

Describe the bug
I have a directory with images, and they are just named by numbers. These numbers are the correct order in which the images should be displayed, but some have a .1 or further to show they are other versions of the actual image.  The correct order would be:

10
10.1
10.2

But it shows up as

10.1
10.2
10

Photo/video (optional) that causes the bug
These images are quite private, so I'd rather not upload them here.
Environment (please complete the following information):

OS: Running in docker on an Ubuntu system
Browser: Edge

Used app version:

docker-latest

This is related to #341, #223, #224,  and  #230

I'm looking into this bug to submit a PR to fix it. Just wanted to share I've found that this has something to do with the presence of a file extension, or rather, anything after the ordering part.
Running these following statements in the browser debugger at https://github.com/bpatrik/pigallery2/blob/f05ee7a867419da8aae1eb1087e350c343ba5bb3/src/frontend/app/ui/gallery/navigator/sorting.service.ts#L136
I was confused at first, because I was testing the collator just using 10, 10.1, and 10.2`, and it sorts perfectly:
>>> ["10.1", "10.2", "10"].sort(this.collator.compare)
Array(3) [ "10", "10.1", "10.2" ]

I put the debugger in to see if I was understanding the code correctly, and realised the media names all have the extension (naturally):
>>> media.map(a => a.name)
Array(25) [ "_0004.jpg", "10.1.jpg", "10.2.jpg", "10.jpg", "broken image.JPG", "bunny.mp4", "Chars_exiftool.jpg", "IMG_6220.jpg", "IMG_6253.jpg", "IMG_6263.jpg", … ]

And yeah, sure enough, when you add the file extension, the sorting is as described.
>>> ["10.1.jpg", "10.2.jpg", "10.jpg"].sort(this.collator.compare)
Array(3) [ "10.1.jpg", "10.2.jpg", "10.jpg" ]

To fix this, it seems like we'd just want to trim the extension at sort time? I don't know if that's reliable, but I'll get a PR up for it shortly.


[JOSS Review] Tests are currently failing

Review
I am not sure if the tests have actually failed or the tag in the GitHub readme has just failed to update. In either case, it would be good to re-run the tests so that the tag updates to green.

This was a product of a manually cancel test. The badge is up to date and shows test passing


Virtualization and transforms

I am trying to marry dnd-kit with virtuoso and I am encountering an issue that is probably going to happy with any virtualization solution: if I am, say, in the middle of a long vertical list and tell a specific item to move to the top (without dragging), there is no animation of it going up since the element of the item is no longer in the DOM after it leaves the visible viewport.
Is there a solution I missed and if not, is it maybe planned?
Thank you.

Hey @0xF013, the recommended pattern is to use the <DragOverlay> component when working with virtualized lists.
Once you have that set up, you can either:

Hide the original sortable element while it is being dragged (for example, by setting its opacity or visibility to hidden)
If you really want to keep a ghost of the element that is being dragged (similar to this example), check if the virtualization library you are using supports "sticky" indices. Some virtualization libraries, like react-tiny-virtual-list support passing an array of indices that should remain mounted at all times, which you can use to prevent the item being dragged from unmounting when it goes out of the viewport. If the library you are using does not support this feature, it should be relatively straightforward to open a PR with this feature, or you can always switch to a different library that supports it.

I integrated virtualization with <MultipleContainer /> in a layout like the Many Items storybook example and am experiencing some screen jank when moving items from column to column - I think it's because rather than the previous column animating items into place (filling in the missing item) like it did before virtualization - with virtualization the previous column just rerenders and then items are moved. Does that make sense and might you know anyway to preserve that animation? @clauderic


Use Manual vs ManualRecord in AttachmentReporting

ManualRecord should be an implementation detail of Manual. Ideally classes other than Manual shouldn't access ManualRecord directly.
I've also removed a comment which has been rendered obsolete by these changes.

Rebased against master and force-pushed in preparation for merging.


Qualoth With GUI for Maya or Without GUI for Maya

Thanks a lot for the great work, I have so far tried your "Garment Pattern Estimation" and it is quite impressive.
I am planning to purchase the "Qualoth" software academic license as it is a requirement currently, however, there are two options:
"With GUI for Maya" and "Without GUI for Maya". Can you please advise if the "With GUI for Maya" option is needed?
Thanks!

Sure
You will need a GUI Option if you want to play with our Garment Viewer GUI
since you must load Maya with GUI.
If you only need the license for dataset generation the batch (no GUI) will
suffice.
I think I would have 1 GUI license (to debug and visualize garment
templates) and a few batch licenses to parallelize generation
пт, 17 мар. 2023 г. в 17:31, sh-taheri @.***>:

Thanks a lot for the great work, I have so far tried your "Garment Pattern
Estimation" and it is quite impressive.
I am planning to purchase the "Qualoth" software academic license as it is
a requirement currently, however, there are two options:
"With GUI for Maya" and "Without GUI for Maya". Can you please advise if
the "With GUI for Maya" option is needed?
Thanks!
[image: Qualoth_version]
https://user-images.githubusercontent.com/30083143/225964019-91655cb1-607a-45c3-a95e-13275cb23544.png
—
Reply to this email directly, view it on GitHub
https://github.com/maria-korosteleva/Garment-Pattern-Generator/issues/8,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABUFLA54OTPW4ACFLO45RRTW4SGWZANCNFSM6AAAAAAV6XZ25U
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks a lot for your quick response :)


grafana: logarithmic scale for service/host counts

Those can get pretty large: in our case we're at 4k service checks, and we have 20 of those warning right now, which makes them completely invisible in the graph. By making the axis logarithmic, we're able to see progression on those lines as well.

Thank you for the contribution! :heart:
We mostly visualize these metrics through Sloth and an SLO dashboard but this change looks to me :)

On 2023-12-12 13:24:13, Will Bollock wrote:

We mostly visualize these metrics through Sloth and an SLO dashboard but this change looks to me :)

What's "Sloth"?

https://github.com/slok/sloth

We mostly visualize these metrics through Sloth and an SLO dashboard but this change looks to me :)

So just in case you want more where this came from, I'm pushing our changes to this dashboard to https://gitlab.torproject.org/tpo/tpa/grafana-dashboards specifically in https://gitlab.torproject.org/tpo/tpa/grafana-dashboards/-/blob/main/services/nagios-exporter.json?ref_type=heads
Here's a screenshot of the current version:

I kind of got excited and made too many changes to submit a PR here, but if you want, I could just send everything in one giant change...


Wrap (or replace) the FileOpen/FilePicker & Save control

Would be nice if these controls also had the Krypton Theme applied.
Might be easier to perform a whole replacement (Like the MessageBox) rather than attempt a win32API hook !
https://www.dotnetperls.com/openfiledialog
Oh, and don't forget the FileSave :-)
http://www.c-sharpcorner.com/uploadfile/mahesh/savefiledialog-in-C-Sharp/

Use Latest toolkit:
https://github.com/Krypton-Suite/Standard-Toolkit/issues/267#issuecomment-1500034993


This package is incompatible with MRTK 2.1

I've been following the MRTK tutorials (https://docs.microsoft.com/en-us/windows/mixed-reality/mrlearning-base-ch4). Tutorial 5 has you add this BaseModule package and it is incompatible with MRTK 2.1.

Yes, this is a known issue and currently being updated to maintain compatibility with the new MRTK

Closing this and posting to a more appropriate location: https://github.com/MicrosoftDocs/mixed-reality/issues/1779


update<EMAIL_ADDRESS>

fix jpg build bug.

One unit test is failing but this fixes an awful bug for me when running gulp-imagemin with jpegtran in docker (node:7). When can the test be fixed and merged?

When can the test be fixed and merged?

Never. Read https://nodesource.com/blog/semver-tilde-and-caret/ to learn how ^ works in package.json.

@shinnn I know how the ^ works but as it's getting late I made the mistake to not remove my node_modules folder. Works fine so please ignore 🤕


syncpoint(ticdc): set write source before creating SyncTable

What problem does this PR solve?

Issue Number: close #11375
What is changed and how it works?
TiDB  in the BDR secondary role forbids all ddl writes. Therefore, SyncTable cannot be created when syncpoint is enabled on the changefeed from the primary to the secondary.  This problem can be solved by setting the writesource before executing the create ddl.
Check List
Tests

Integration test
Manual test (add detailed scripts or steps below)

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with `None`.

Please adjust the bdr-mode integration test case to set the role for TiDB clusters before creating the changefeed. This ensures these changes are covered by the test.

/retest

/retest

/retest

/retest


KrakenExchangeAdapter not checking allowed no. of decimals for a coin before creating rest api call for a trade

The Kraken API doesn't allow the same number of decimals for each coin. See https://support.kraken.com/hc/en-us/articles/360001389366-Price-and-volume-decimal-precision
Currently the decimal format for price of a coin is denominated in the file KrakenExchangeAdapter.java  as:
DecimalFormat("#.########", getDecimalFormatSymbols()).format(price));
When trading XBT (Bitcoin) this formatting would for instance an error from the KrakenAPI and causing the trade to fail.
To solve the KrakenAPI should be queried to retrieve the allowed decimal precision for a specific coin this is traded or the allowed number of decimals should be configurable in the a Kraken specific YAML file.
Hard coded fix I applied myself for trading XBTEUR is this change in KrakenExchangeAdapter.Java:
if (orderType == OrderType.SELL) {
params.put(PRICE, new DecimalFormat("#.#", getDecimalFormatSymbols()).format(price));
  } else {
    params.put(PRICE, new DecimalFormat("#.########", getDecimalFormatSymbols()).format(price));
  }

Note: you also need to change the unittests.

Thanks for spotting this Roy. If you fancy having a go at a fix and PR, you're more than welcome. I've got a lot on at the moment, but I plan on releasing a maintenance/dependency update release of the bot in the Spring.

gazbert

Thanks for spotting this Roy. If you fancy having a go at a fix and PR, you're more than welcome. I've got a lot on at the moment, but I plan on releasing a maintenance/dependency update release of the bot in the Spring.

gazbert


use f-string instead of +

f-Strings is an Improved String Formatting Syntax.

@AhzamAhmed6 Thanks for this patch, however we don't see anything wrong in using +. Also, calling methods in f-strings is discouraged as described in Python coding style.


New Crowdin updates

closing this one, we need to add github integration to our new crowdin project
I already cancel old one


[Event Change Request] Codeunit 5944 SignServContractDoc - OnBeforeSignContract

Hello
I'd like to request a change for the OnBeforeSignContract event, please add IsHandled logic to it.
Original code:
procedure SignContract(FromServContractHeader: Record "Service Contract Header")
    var
        ServContractLine: Record "Service Contract Line";
        ServContractHeader: Record "Service Contract Header";
        LockOpenServContract: Codeunit "Lock-OpenServContract";
        ConfirmManagement: Codeunit "Confirm Management";
    begin
        OnBeforeSignContract(FromServContractHeader, HideDialog);
...
...
    [IntegrationEvent(true, false)]
    local procedure OnBeforeSignContract(var ServiceContractHeader: Record "Service Contract Header"; var HideDialog: Boolean)
    begin
    end;
...

New code:
procedure SignContract(FromServContractHeader: Record "Service Contract Header")
    var
        ServContractLine: Record "Service Contract Line";
        ServContractHeader: Record "Service Contract Header";
        LockOpenServContract: Codeunit "Lock-OpenServContract";
        ConfirmManagement: Codeunit "Confirm Management";
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeSignContract(FromServContractHeader, HideDialog, IsHandled);
        if IsHandled then
          exit;
...
...
    [IntegrationEvent(true, false)]
    local procedure OnBeforeSignContract(var ServiceContractHeader: Record "Service Contract Header"; var HideDialog: Boolean; var IsHandled: Boolean)
    begin
    end;
...

Thanks in advance!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


AbstractPublicResolver smart contract is not used

It seems that AbstractPublicResolver smart contract is never user.  Also this smart contract looks very odd in general.

This is an interface contract - it allows people to get a generic interface for a 'public resolver' by importing this into their Solidity code, without having to import the implementation of a specific resolver as well.

If what you said is the case, then why PublicResolver does not inherit this interface and why this interface defines functions PublicResolver(address), hash(bytes32), and setHash(bytes32, bytes32) which PublicResolver actually does not have?

PublicResolver doesn't have to implement the interface, but you're right, it should. Reopening to remind me to fix that.


NodeJS Jest Open Handles Detected

Jest testing framework, which is used for the tests in this repository for the NodeJS bindings, provides an optional command line open detectOpenHandles which:

Attempt to collect and print open handles preventing Jest from exiting cleanly

Open handles can indicate that cleanup is not effectively happening. This can often happen with other libraries/utilities such as database connections not being closed/disposed.
Noticing that if --detectOpenHandles is added to the test command in bindings/nodejs/package.json Jest does in fact detect an open handle.
Even if dispose() is called in hooks such as afterEach or afterAll this issue still happens.
Would you have any insight into why a handle remains open? Is this an issue with napi or is there possibly cleanup not actually happening? Outside of tests it could concerning if one can't completely close/dispose/destroy an engine instance. The use of --forceExit is described by Jest as:

This feature is an escape-hatch. If Jest doesn't exit at the end of a test run, it means external resources are still being held on to or timers are still pending in your code. It is advised to tear down external resources after each test to make sure Jest can shut down cleanly.

Thank you for any insight you can provide.

From what I can gather this is an issue with napi, I am able to replicate this on sample repository provided by napi new + installing jest and adding settings:
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  detectOpenHandles: true,
  detectLeaks: true,
};

It leads to the same error:
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.547 s, estimated 1 s
Ran all test suites.

Jest has detected the following 1 open handle potentially keeping Jest from exiting:

  ●  CustomGC

      137 |         try {
      138 |           if (localFileExisted) {
    > 139 |             nativeBinding = require('./napi-add.darwin-arm64.node')
          |                             ^
      140 |           } else {
      141 |             nativeBinding = require('napi-add-darwin-arm64')
      142 |           }

      at Runtime._loadModule (node_modules/.pnpm/jest-runtime@29.7.0/node_modules/jest-runtime/build/index.js:1018:29)
      at Object.<anonymous> (index.js:139:29)
      at Object.<anonymous> (__test__/main.spec.ts:2:1)

And the error is triggered by simply importing 'index.js'. You don't have to use any function within it. The similar issue was faced by Prisma client as well, see: https://github.com/prisma/prisma/issues/18146.
Happy to accept contribution on this if you are familiar with the issue or know how to resolve it. Cheers!

As no more info has been provided, closing.


Added a /openapi route that points to the API docs.

Codecov Report

Merging #62 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #62      +/-   ##
==========================================
+ Coverage    98.5%   98.51%   +0.01%
==========================================
  Files         229      229
  Lines        2395     2403       +8
==========================================
+ Hits         2359     2367       +8
  Misses         36       36


Data parameter for grids

It would be nice to add a data parameter for grids, so that those values can be set externally. One consideration is what to do with the default value – including the full list of items seems excessive, but it would be valuable to include at least one item to make it easy to reference the fields. This is complicated by the current requirement to define parameters in the constructor instead of during serialization.

This is partially complete, but currently includes an empty default. Still needs updating to include the first item as the default. Requires testing.