OAuth2 Authentication broken - created access tokens already expired

I have included the following in my report:

[x] CAS server version
CAS version: latest 5.1.0-RC3-SNAPSHOT (git master branch)

[x] Container/environment type/version (Tomcat, Jetty, Java, Linux/Windows, etc)
Tomcat 8.5.x, Linux

[x] Steps to duplicate the problem along with your CAS settings and properties

configured a JPATicketRepository and include OAuth2-package in the war
method: using war overlay / gradle
The problem started a few days ago. i have seen the code reorganizations for oauth in the last days.
The code does insert the oauth_token 2 times and the second time (because the token-name is the  primary key and must be unique)
catalina.out.txt
see the log-file at line 225:
...
org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "oauth_tokens_pkey"
Detail: Key (id)=(AT-1-STnLb7iwoZCMcR6QHdjCd3NsKTm5SrkccOB) already exists.
...
looking at the OAuth20AccessTokenEndpointController::handleRequest method:
line 118: calls BaseOAuth20. generateAccessToken which calls this.ticketRegistry.addTicket(accessToken);
line 133: calls addTicketToRegistry() which calls this.ticketRegistry.addTicket(ticket);
when using a refresh token it would be called a third time.
there are multiple possible solutions:

fix JPARepository to not blindly insert on save
or
fix OAuth20AccessTokenEndpointController - because the other users of BaseOAuth20Controller don't seem to have multiple calls to ticketRegistry.addTicket ...

Where is the best place for the fix?

[x] Stacktraces and CAS logs where appropriate.
[] Configuration/Overlay pushed to https://github.com/cas-projects/cas-issues/

Probably OAuth20AccessTokenEndpointController is the better place.

I have changed the call from addTicket to updateTicket which fixes the double insert problem. (see the attached patch)
BUT: when i want to use the token (like in the OAuth20UserProfileControllerController.handleRequest) the token gets deleted because it is expired?
Could you please point me in ANY direction how to analyze fix this issue?
OAuth20AccessTokenEndpointController.patch.txt

Taking out the JpaTicketRegistry and using the DefaultTicketRegistry works with the unmodified OAuth20AccessTokenEndpointController but calling the /profile endpoint returns only
{
"error": [
"expired_accessToken"
]
}

Just chiming in that I am seeing this same thing with Hazelcast Registry.  Looking into it as well.

I've currently exactly the same issue with  5.1.0.RC4-SNAPSHOT.
curl -XPOST 'https://idp-dev.gfz-potsdam.de/cas/oauth2.0/accessToken?grant_type=password&client_id=XXXXX&username=XXXX&password=XXXXX' returns access_token=AT-2-AGKDPkhRYvGloTWwzxKwKn2ifbGPjWEio26&expires_in=7200. Using it in a spring-boot application i get {"error":"invalid_token","error_description":"AT-2-AGKDPkhRYvGloTWwzxKwKn2ifbGPjWEio26"} when accessing it via curl -H "Authorization: Bearer $TOKEN" 'https://sp.gfz-potsdam.de/test'
This definitely worked on 5.1.0.RC2!
@mmoayyed Could you reopen this issue?

BTW: curl https://idp-dev.gfz-potsdam.de/cas/oauth2.0/profile?access_token=$TOKEN results in
{
  "error" : [ "expired_accessToken" ]
}

Log when creating access_token:
2017-04-07 14:45:49,182 DEBUG [org.apereo.cas.support.oauth.web.endpoints.BaseOAuth20Controller] - <Added access token [AT-4-YXGp0Hbb11GsJfkj9nwAF0yP0Tqfqf2XziF] to registry>
2017-04-07 14:45:49,182 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController] - <Access token: [AT-4-YXGp0Hbb11GsJfkj9nwAF0yP0Tqfqf2XziF]>
2017-04-07 14:45:49,183 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController] - <Service [org.apereo.cas.authentication.principal.SimpleWebApplicationServiceImpl@3db4993b[id=^http://ims.git.gfz-potsdam.de.*,originalUrl=^http://ims.git.gfz-potsdam.de.*,artifactId=<null>,principal=<null>,loggedOutAlready=false,format=XML]] is not able/allowed to receive refresh tokens>
2017-04-07 14:45:49,183 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController] - <Generating access token response for [AT-4-YXGp0Hbb11GsJfkj9nwAF0yP0Tqfqf2XziF]>
2017-04-07 14:45:49,183 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController] - <OAuth response type is [CODE]>
2017-04-07 14:45:49,184 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController] - <Located response type as [CODE]>

Log when accessing oauth profile:
2017-04-07 14:46:08,262 DEBUG [org.apereo.cas.support.oauth.web.endpoints.OAuth20UserProfileControllerController] - <[access_token]: [AT-4-YXGp0Hbb11GsJfkj9nwAF0yP0Tqfqf2XziF]>
2017-04-07 14:46:08,263 ERROR [org.apereo.cas.support.oauth.web.endpoints.OAuth20UserProfileControllerController] - <Ticket granting ticket [null] parenting access token [AT-4-YXGp0Hbb11GsJfkj9nwAF0yP0Tqfqf2XziF] has expired>
2017-04-07 14:46:08,264 DEBUG [org.apereo.cas.ticket.registry.AbstractTicketRegistry] - <Removing ticket [AT-4-YXGp0Hbb11GsJfkj9nwAF0yP0Tqfqf2XziF] from the registry.>

I think this is specific to grant-type being password. The AT somehow does not end up connected to the TGT.

I gave this a shot and you're right; with grant type password the ticket granting ticket that should be issued for the AT is null. Which is why you get that error.
Just for reference:
curl -X POST "https://mmoayyed.example.net:8443/cas/oauth2.0/accessToken?grant_type=password&client_id=client&username=casuser&password=Mellon"

and
{
  "@class" : "org.apereo.cas.support.oauth.services.OAuthRegisteredService",
  "clientId": "client",
  "clientSecret": "test",
  "bypassApprovalPrompt": true,
  "serviceId" : ".*",
  "name" : "OAuth",
  "id" : 100
}

I have to look at this later.

Fixed via https://github.com/apereo/cas/commit/d3ff46af5e79f2d031df4eaaa7b31eab0727cf12 and family.

Do I need to change my Service? With these fixes
{
  "@class": "org.apereo.cas.support.oauth.services.OAuthRegisteredService",
  "clientId": "PolhzOZBMj07qKnfEl8u",
  "clientSecret": "hh6bsGs3s3vDfA1PDgtsxF1qYpb7V7hjEnbHLlN8MbFywcdMIh7nKRDJmEUW",
  "bypassApprovalPrompt": true,
  "serviceId": "^http://ims.git.gfz-potsdam.de.*",
  "name": "IMS-Dev",
  "description": "Identity Management System - GitLab Pages"
  "id":<PHONE_NUMBER>3390320,
  "attributeReleasePolicy" : {
    "@class" : "org.apereo.cas.services.ReturnMappedAttributeReleasePolicy",
    "allowedAttributes" : {
      "@class" : "java.util.TreeMap",
      "cn" : "fullname",
      "sn" : "lastname",
      "givenName" : "firstname",
      "gfzSection" : "section",
      "mail" : "email",
      "gfzRole" : "roles",
      "gfzIdmPersonId" : "personId",
      "username" : "username",
      "title" : "title"
    }
  }
}

does not work and I get
2017-04-10 14:21:46,469 ERROR [org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController] - <Could not identify and extract access token request>
org.apereo.cas.services.UnauthorizedServiceException: Unauthorized Service Access. Service [^http://ims.git.gfz-potsdam.de.*] is not found in service registry.
        at org.apereo.cas.services.RegisteredServiceAccessStrategyUtils.ensureServiceAccessIsAllowed(RegisteredServiceAccessStrategyUtils.java:53) ~[cas-server-core-services-5.1.0-RC4-SNAPSHOT.jar:5.1.0-RC4-SNAPSHOT]
        at org.apereo.cas.services.RegisteredServiceAccessStrategyUtils.ensureServiceAccessIsAllowed(RegisteredServiceAccessStrategyUtils.java:69) ~[cas-server-core-services-5.1.0-RC4-SNAPSHOT.jar:5.1.0-RC4-SNAPSHOT]
        at org.apereo.cas.services.RegisteredServiceAccessStrategyUtils.ensurePrincipalAccessIsAllowedForService(RegisteredServiceAccessStrategyUtils.java:85) ~[cas-server-core-services-5.1.0-RC4-SNAPSHOT.jar:5.1.0-RC4-SNAPSHOT]
        at org.apereo.cas.DefaultCentralAuthenticationService.createTicketGrantingTicket(DefaultCentralAuthenticationService.java:363) ~[cas-server-core-5.1.0-RC4-SNAPSHOT.jar:5.1.0-RC4-SNAPSHOT]
        at org.apereo.cas.DefaultCentralAuthenticationService$$FastClassBySpringCGLIB$$b02e48f2.invoke(<generated>) ~[cas-server-core-5.1.0-RC4-SNAPSHOT.jar:5.1.0-RC4-SNAPSHOT]

Service is loaded:
2017-04-10 14:25:39,713 INFO [org.apereo.cas.services.DefaultServicesManager] - <Loaded [17] service(s) from [JsonServiceRegistryDao].>
2017-04-10 14:26:39,714 DEBUG [org.apereo.cas.services.DefaultServicesManager] - <Loading services from [JsonServiceRegistryDao]>
2017-04-10 14:26:39,719 DEBUG [org.apereo.cas.services.DefaultServicesManager] - <Adding registered service [^http://ims.git.gfz-potsdam.de.*]>
2017-04-10 14:26:39,719 DEBUG [org.apereo.cas.services.DefaultServicesManager] - <Adding registered service [https://idp-dev.gfz-potsdam.de/cas/idp/profile/SAML2/POST/SSO/Callback.+]>
2017-04-10 14:26:39,719 DEBUG [org.apereo.cas.services.DefaultServicesManager] - <Adding registered service [https://idp-dev.gfz-potsdam.de/cas/oauth2.0/callbackAuthorize.*]>
...

No, but note that ^http://ims.git.gfz-potsdam.de.* is not exactly valid regex. You may need to skip the dots. May or may not be related.

https://ims.git.gfz-potsdam.de.* works, while ^https://ims.git.gfz-potsdam.de.* does not. Does a leading ^ means: Interpret the following as regex?
BTW: ^https:\\/\\/ims\\.git\\.gfz\\-potsdam\\.\\de.* does not work, too.

Does a leading ^ means: Interpret the following as regex?

No. All serviceIds are regex patterns. That's essentially the only thing CAS supports. Note the relationship:
public class OAuthRegisteredService extends RegexRegisteredService { }

In other words, the pattern is always compiled as regex. Whether you put ^ in or not, is up to your choosing.
What is the exact url that is sent to CAS? You either have a pattern that overrides things, or the pattern simply is a mismatch. Have you tried testing it with a regex tester?

There is no exact url, as im usin password granting type via https://idp-dev.gfz-potsdam.de/cas/oauth2.0/accessToken?grant_type=password&client_id=PolhzOZBMj07qKnfEl8u&username=&password=, so CAS must extract the service id itself via the given OAuth Client ID, which is rechecked against the service database. In my case the id has to match everytime, even if i enter some weird stuff as service id, as this is a true=true check, or am i wrong?

Ah you're right; Sorry I keep forgetting that this is the password-grant. You're right on the OAuth client id, which is the part where CAS attempts to find a matching service that contains that client id. I think what's happening is the password-grant related code is building a "service" based on that regex id before CAS attempts to create a TGT. When the TGT is created, the service that is passed has the id of ^https://ims.git.gfz-potsdam.de.* which is of course wrong. Reviewing.

@rkorn86 How terribly upset would you be, if I asked you to actually provide a "service url" to CAS when making calls that deal with password-grant? We could make it happen without that url, but seeing how the AT is ultimately used in the context of an application which has some sort of identifier, I think it would be better to ask the application to identify itself. My proposal is to have the client, you, submit a service header matched against the definition. So you'll just add --header "service: something-that-matches-the-registry". Would you be OK with that?
This is purely a CAS complication/design issue, and one can perfectly argue that the service has already identified itself by providing client credentials.  I think the above change is cleaner, but your call really.
The issue is that OAuth service defns (as do all service defns) really need a service Id and in this particular grant-type that is simply absent which makes it difficult for CAS to perform authorization and access strategy rules. As I said, we can get by without this just fine and without creating security issues, but from a technical view, I wouldn't be exactly happy with the solution altogether :)

Also to help explain why this worked before and not now: in older CAS releases the AT was given the ability to last a very long time beyond the lifetime of the TGT itself. Which meant that you could perfectly log out of CAS yet your AT would continue to be valid until its own expiration policy died. That is the behavior whose fix has caused a few complications for the password grant.

Lets proceed with the header value for now and see how that goes. The more I look at this, the more I realize that option makes better sense than alternatives. If you (or anyone else) are are opposed to doing that, we can further debate this of course.

Is the additional header value RFC compliant? If so, it is ok for me, as long as this is really well documented as this is a big difference to other IdPs like Facebook, Google and co.

I read over the RFC and I didn't see anything that would be contradictory. Pasting the relevant bits here:
   The authorization server MUST:

   o  require client authentication for confidential clients or for any
      client that was issued client credentials (or with other
      authentication requirements),

   o  authenticate the client if client authentication is included, and

   o  validate the resource owner password credentials using its
      existing password validation algorithm.

   Since this access token request utilizes the resource owner's
   password, the authorization server MUST protect the endpoint against
   brute force attacks (e.g., using rate-limitation or generating
   alerts).

In fact, the last paragraph is sort of encouraging, because we could say that we protect the endpoint by requiring a special header that could be used to authorize requests providing the side benefit of protecting against brute force attacks.
See if the extra sentence here is sufficient please; we can certainly add more to clarify:
https://apereo.github.io/cas/development/installation/OAuth-OpenId-Authentication.html#resource-owner

By the way, I am also considering to add the ability for an OAuth service definition to indicate what grant-types it supports. Right now, they all more or less support everything, and I think this would be a good addition to further lock things down if need be and have tighter control. I believe the same ability is offered by other OAuth IdPs as well. I don't know the exact extent of the changes just yet, but I can postulate that the default behavior of services may change to only allow the authz-code grant type. We might be able to make this change available for 5.1 but not break the default behavior, while for 5.2, we'd make the switch and change the default behavior.
Sound good?

Wouldn't it be better to define the allowed service inside service definition extracted from the client_id of the password grant request? something like a allowServiceList in the service definition?
What would be the default behaviour when no service-header is given - allow all? Anything else would break a generic OAuth2 client (not knowing anything about "the CAS way"), wouldn't it?

The default behavior currently is prevent access, yes as generic OAuth2 clients are broken. That's the downside, but I submit it's a fairly "easy" thing for the client to accommodate?
If I am understanding your proposal correctly, the allowServiceList option would basically indicate which services are allowed to talk to CAS via the password-grant? That's very good. That is in fact the intention of the serviceId field. Rather than providing an individual list, you specify a pattern by which services are allowed to talk. The issue here is, we need to get those clients to tell us who they are.
Of course, we could simply say: "we already know your client id and we treat that as the service url", but that's much easier said than done. It will lead to a very technical hack to have CAS forcefully use the client id  as the service url only in the password-grant situation.
The other option of course is to entirely remove this header noise, (or at least make it optional), but I think it's best to have it given that we can enforce authz rules more accurately and not have every client hit CAS repeatedly. The RFC is very loose on this point.

Thank you for the explanation. I see your point. That's indeed a really fine dilemma.
IMHO i doubt the fairly easy for the client to send it part. I might be wrong but "generic" access libraries don't have a default way of sending additional headers with the oauth request. they would need to be changed in some way or another and cannot be used as is. - i see it as an additional adoption barrier for CAS.
I would like to see the service header as an optional, configurable method to the service. configuration options: allow the header method or not; set default when header not set.
Having the header would be great but not as a requirement you could easily miss when using cas for oauth2. How do other implementations of oauth2 servers handle this cas?

Fair points on all counts; and I also understand the issue with client support. Breaking client behavior is generally a big no-no, but there may be compromises here and there.

I would like to see the service header as an optional, configurable method to the service. configuration options: allow the header method or not; set default when header not set.

I do favor this suggestion; with the caveat that we make the default behavior to force the service-header. I would like to make that a conscious decision for the CAS deployer to explicitly turn off this behavior. While perhaps "ill-advised", it will make it easier for less-than-flexible clients as you say.

How do other implementations of oauth2 servers handle this case?

I imagine they all more or less stick to the RFC and do not require at least a header, though some may impose additional requirements. The only other IdP I am most familiar with is the MitreID Connect server and I don't remember/know if there are any restrictions; probably there aren't. @rkorn86 may know better of course.
But, take into account that most other IdPs handle and support a single protocol that is OAuth, or OpenID Connect, etc. As such, they have a lot more freedom to make assumptions about how the API and components interact with each other. The CAS case is not so easy, because there are 7+ protocols and different versions of each all in the same application and this requires special care to determine how these things interact with each other. Thus you may find a few restrictions here and there which are purely technical complications and "design flaws" whose maintenance cost is lower than anything else in all likelihood in order to keep the entire platform sane.

Sounds great to me!

I thought about this some more and I realize it's best to keep the service header optional, and not breaking existing OAuth clients. This should keep @rkorn86 happy :)
I'll push change upstream to accommodate this shortly. Thanks everyone for participating in the dialog!

Closed via https://github.com/apereo/cas/commit/ce004e11d1a5d3c9376744abb1253c5079238ab2 and family.
This commit also adds support for supported grant and response types; though just the skeleton. Nothing is defined yet.


disk: When GetPartitionTable succeeds, save result

Previously, it is only possible to read a partition after
writing the partition table.
Now, a call to GetPartitionTable will enable calls to GetPartition
and GetFilesystem to succeed without having to write a new partition
table.

I am a github scrub,
trying to figure out how to associate this with https://github.com/diskfs/go-diskfs/issues/120

trying to figure out how to associate this with #120

Too late, as I merged it, but you just put a line on the PR comment as:
Fixes #120

ok -- no problem. Thanks for the quick response Avi.


Add a history for the shortened url

Add a section where in the user's shortened url(past) should be accessible to the user.

@vinyashegde Please assign me this issue I want to work on it.


Fix: Refactor to improve ViewCursorWidget performance

Overview
ViewCursorWidget Refactor

Fixes performance
Fixes tag placement
Removes unused code from previous implementation.

Legal
This project is available under the Apache 2.0 License.

We need to reconsider the targetParent workaround here. If we are going to hack this for one feature it should just be a new property that that one feature can ignore some nodes in it's calculation.

They can't be completely ignored. We need to be a child of the submodel but we need to parent to the model in the original scene. The submodels live in a different sub scene which strangely effects world position. I can give more details if you'd like but the metadata tagging is a clean solution and not purely special cased.
The way it is meant to work is that all known objects have a nodeRef for hierarchical parenting (already what drives enhanced editing) and a targetRef (maybe needs renaming) for 3D world/local space conversion


Add ability to edit notes

Add ability to edit Additional notes field
Updated json files to include additionalNotes

Fixes #53

Closes #43


Assist: group imports

use std::fs; // <- cursor is on this line
use std::io::prelude::*;
use std::io::BufReader;
use std::path::Path;

->
use std::{
    fs,
    io::prelude::*,
    io::BufReader,
    path::Path,
};

A similar, but simpler assist is split import

Oh yes, we need this! :)

@max-frai I think it should be non-recursive for the start: it's possible to apply the assist several times manually. Longterm, what we really need here is assist groups like in intelliJ
💡
 |group uses      | > | recursively |
 |optimize imports|

You are right. Also, it would be very useful to introduce: remove unused imports. Can rust-analyzer find such places?

not yet :(
On Wed, 13 Nov 2019 at 17:22, Max Frai<EMAIL_ADDRESS>wrote:

You are right. Also, it would be very useful to introduce: remove unused
imports. Can rust-analyzer find such places?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/issues/2220?email_source=notifications&email_token=AANB3MYGDIN6QHKARHNK3G3QTQERZA5CNFSM4JMCZIN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED6JRDY#issuecomment-553425039,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3M4LO7E5NPW3IOZSFZLQTQERZANCNFSM4JMCZINQ
.

For the record, rustfmt's unstable merge_imports option does exactly this.

I have played a bit around with this. Mostly to get more familiar with how rust-analyzer works. Not yet sure whether I will get it to completion :-)
One question regarding the implementation: It seems like this can be implemented in 2 ways:
Option A: Manipulate the existing syntax tree
We identify the common path segments of all use statements, and then use edit commands to insert braces and commas at the correct places and remove the use prefix:: part of the next statement. That's what my hacky first implementation does, and where the edit looks like:
ctx.add_assist(AssistId("group_import"), "group import", |edit| {
      edit.target(use_node.syntax().text_range());
      edit.insert(open_brace_segment.syntax().text_range().start(), "{");
      edit.insert(close_brace_segment.syntax().text_range().end(), "}");
      edit.delete(to_remove);
      edit.replace(use_semicolon_text_range, ",");
  })

The downside of this approach seeems to be that it seems to either falls down or get super complex on more complex merges. E.g. if the first statement already contains an opening brace for submodules, and we need to shift the second import into it without adding another brace. I guess also if things are already trees instead of just long import statements it gets more complicated.
Option B: Rewrite import statements
We parse all imports in suitable tree structure (like hir::Path, but I think that one only represents a single path and not an import tree), try to merge those, and if the merge and if the merge succeeds write the complete tree (which replaces all existing things).
I feel like this option would be easier to manage than trying to figure out precise necessary edits. But maybe I'm overestimating the effort. The downside of Option B is certainly that it's more invasive, and if the rewriting part does not support all AST constructs it would be a lossy and buggy operation.

Yeah, "how to edit syntax trees" is an open question. I've been doing this since 2015 and still don't know the answer :-)
One general rule of thumb is that it's better re-use, rather than re-write bits written by the user. For example, if the user did use std::collections::{HashMap /* FIXME: use hashbrown? */, BTreeMap}, we ideally should not lose the comment. Approaches which try to build a fully-abstract IR usually don't handle this Besides comments, it's often a good default to preserve formatting.
Another choice is how to do the edits. There are two approaches:

edit the text directly, by just replacing ranges
construct the new syntax node and replace an existing node with a new one

The latter usually is more verbose, but in general is easier to understand and, ideally, can handle some minor details like adding whitespace or punctuation automatically.
I would go with the latter approach, using something like this:
fn merge(trees: Vec<ast::UseTree>) -> Option<ast::UseTree> {
  let common_prefix: ast::Path = common_prefix(&trees)?;
  let subtrees: Vec<ast::UseTree> = Vec::new();
  for tree in trees.iter() {
    let subtree = remove_prefix(&common_prefix, &tree)
    subtrees.push(subtree)
  }
  make::use_tree(common_prefix, subtrees);
}

fn common_prefix(trees: &[ast::UseTree]) -> Option<ast::Path> {}
fn remove_prefix(prefix: &ast::Path, tree: &ast::UseTree) -> ast::UseTree

See the make.rs  module for primitive building blocks of various ast elements. It doesn't have constructos for use items yet, they should be added .

@TomasKralCZ In case it helps you. This is the piece of code I had written to experiment with it: https://gist.github.com/Matthias247/db335901003943cac36186812a191268
It handled some cases, but it seemed in general a lot more complicated (see discussion above). I'm currently distracted by other things, so no longer working on this.

Closed by #3651


Unable to go fullscreen on iPhoneX running on IOS13

Importing the FloFullscreenModule and trying to go fullscreen on IOS 13.1.3 doesn't seem to work

Confirming it happens on this demo page?
https://flosports-component-library.herokuapp.com/fullscreen

I tested in 13.3 and it works but don’t have a device with that exact version to test with

Testing on iPhone X running on iOS 13.3

It seems that the fullscreen on the video player works (3rd fullscreen), but the buttons related with 1st and 2nd container doesn't. Infact, the buttons are not visible on the iPhone screen

Those two buttons won’t show on iOS since it does not support the fullscreen API. the third button is special and shows because it’s attached to a video element which does have a fullscreen event it can fire.

I haven’t documented these subtleties so understandably confusing.

Sorry for the lack of information from my end, I wasn't yet sure what the problem was considering it worked on all devices including iPad.
Thank you for pointing out the problem :)

I think another thing to consider is to DISABLE the buttons instead of removing them from the DOM like the current directives do. That’s a feature I’ve been thinking about lately.


lecture05 eventProcessor

Анастасия Нейманова

Coverage remained the same at 34.454% when pulling 754febd061ef713cc7bb9667f3b80bed0a1999cf on najada12:lecture05 into eefa4cfbdd0783d675d9cb315278aa5d24a67c42 on rybalkinsd:lecture05.

Coverage increased (+28.05%) to 62.5% when pulling 1418b0443ea11ed588f78da76b4d9c16fcc7e732 on najada12:lecture05 into eefa4cfbdd0783d675d9cb315278aa5d24a67c42 on rybalkinsd:lecture05.


fixed-output derivation produced path XXX instead of the expected hash YYY for fetchFromGithub

I have this:
    src = fetchFromGitHub {
      repo = "bup";
      owner = "nh2";
      rev = "5170c3fde72d45ddcf4e1d657e2788f7b4560831";
      sha256 = "0401067152dx9z878d4l6dryy7f611g2bm8rq4dyn366w6c9yrcb";
    };

building it after an upgrade to nixpkgs-18.03, I get
fixed-output derivation produced path '/nix/store/cn22m5wz95whqi4wgzfw5cfz9knslak4-source' with sha256 hash '1c0sv4rqixvinrc7vmdmgm6gf7f9dc7blscp9372v1hcfzg15r0z' instead of the expected hash '0401067152dx9z878d4l6dryy7f611g2bm8rq4dyn366w6c9yrcb'
cannot build derivation '/nix/store/8savxwnx8yw7r1ccrc00l680lmq5c15f-bup-0.29.1-network-fs-improvements.drv': 1 dependencies couldn't be built

What's going on? How can the hash change given that my rev is fixed to a commit SHA?
I've #39308 but that's because of file upper/lower case normalisation on Darwin, and I'm on Linux.
Maybe fetchFromGithub changed?
Technical details

nix on Ubuntu 16.04
nix (Nix) 2.0.2; the earlier fixed-output derivation was obtained with the last 1.11 point release

nix-prefetch-url --unpack https://github.com/nh2/bup/archive/5170c3fde72d45ddcf4e1d657e2788f7b4560831.zip prints 1c0sv4rqixvinrc7vmdmgm6gf7f9dc7blscp9372v1hcfzg15r0z. You might have updated rev without updating sha256, and then either GCed Nix cache or update Nixpkgs to the version of fetchFromGithub that downloads into the source directory, which made Nix rebuild the source derivation and find the hash mismatch.

You might have updated rev without updating sha256, and then either GCed Nix cache or update Nixpkgs to the version of fetchFromGithub that downloads into the source directory

@orivej I still don't understand 100% how either of these approaches can associate a wrong hash with what was downloaded before.
If the steps are as follows:

Originally write that .nix file; write correct sha256 = 123 and rev = a
Update to rev = b but forget to update sha256

then I think what happens is that nix doesn't do anything and just reuses the sha you already have. Or is that not correct and it actually associates rev=b with the wrong hash 123?
I'm not clear on how exactly that works.

When instantiating a fixed output derivation, Nix computes its store path (/nix/store/{storehash}-{name}), and if this path does not exist, it builds it and verifies that the actual sha256 of the contents matches the specified sha256. The storehash part of the store path depends on its name and sha256, but it does not depend on other arguments to fetchFromGithub (such as repo or rev). This is conceptually right since different repos and revs can have the same content, but this also lets you change rev and miss that you should change sha256 too. If you really want to prevent this, you can include rev in name like this:
    src = fetchFromGitHub rec {
      name = "github-${owner}-${repo}-${rev}";
      owner = "nh2";
      repo = "bup";
      rev = "5170c3fde72d45ddcf4e1d657e2788f7b4560831";
      sha256 = "0401067152dx9z878d4l6dryy7f611g2bm8rq4dyn366w6c9yrcb";
    };

Thanks!


More realistic end-to-end workflows for benchmarking.

We have a few realistic workflows for benchmarking in the benchmark suite

test_vorticity: seems to be representative of lots of xarray workloads we think
test_quickstart: maybe a bit small/simple, but at least uses real world data
Maybe the H2O benchmark suite counts as another?

I'm probably missing some, but I don't think that I'm missing too many.  That's ok.  It makes sense to have benchmarks that are more clean and isolated.  I think that we might be weighting them too heavily though in some cases (see https://github.com/coiled/coiled-runtime/issues/493).
I'll propose a few more that we've seen recently:

uber/lyft data transformation workflow: https://github.com/mrocklin/nyc-taxi/blob/main/notebook.ipynb which is pretty typical of basic data transformation workflows.  read_parquet, do some basic stuff, repartition, to_parquet ...
xgboost training: https://github.com/dask/dask-examples/issues/230 -- although maybe we make this simpler and drop threads so that we have everything in one cluster that we can measure.  We might also drop HPO if we think that this introduces randomness.

Workflows like the above are things that I see pretty often.  Improvements to them, along with maybe test_vorticity, would be, I think, as-or-more motivating than improvements to the rest of the benchmark suite.

I also don't mean to say "only these workflows".  If there are other things that we see many different groups doing frequently then we should consider them.

I agree that the benchmark suite is not representative and I've seen this causing some bias already. However, it's also not too far off
Here are a couple of other useful things

test_shuffle very simple. Doesn't cover a lot of different data but this is running on in-memory generated data and tests pretty much just a dataframe shuffle on a single integer column
test_dataframe_align very simple high level df1 - df2 but the dataframes don't have same partitioning which triggers a complex computation. I don't have any data but would expect this to happen frequently.
test_basic_sum. Not basic at all but rather a non-trivial map-reduce. Non-trivial, again due to "bad partitions". I think this represents again a fairly simple operation (in this case a sum) that is slow because of the details behind the scenes.
test_join_big + test_join_big_small are, well, joins. We're again not covering the entire hyperspace of problems

I don't mind introducing more end to end workflows to this suite as long as their runtime are within reason but I still consider benchmarking individual operations important.

uber/lyft data transformation workflow:

Apart from using actual taxi data, this workflow is

type casting
repartition / set_index

It is a bit shocking that we don't have any repartitioning and/or set_index operation in here. Just like we don't have something that performs type casting, specifically categorization.
Strong +1 for introducing this.
Apart from the end-to-end chain, I would suggest to introduce a smaller benchmark for either operation individually. If there are perf gains or regressions this makes it easy to see what's going on (and it should be easy to add).
I'm happy to use taxi data or any other real data source if loading doesn't become a bottleneck. I would prefer us benchmarking without IO (unless the test intents to cover IO specifically)

although maybe we make this simpler and drop threads so that we have everything in one cluster that we can measure. We might also drop HPO if we think that this introduces randomness.

+1

Maybe the H2O benchmark suite counts as another?

A problem I see with our implementation of the H20 suite is that

It is a lot of IO and we're testing too many irrelevant things https://github.com/coiled/coiled-runtime/issues/654
We're only implementing half of them. There are also a couple of join focused H20 tests that might be interesting. (https://github.com/h2oai/db-benchmark/blob/master/dask/join-dask.py) I mention this just for completeness. I do think the examples you mentioned are more valuable right now

Yeah, let met zoom out here and say why I'm currently motivating larger representative workflows.  Maybe there is another way to get what I want.

I'm seeing people show images of the benchmark suite with lots of red or lots of blue from a certain change, and using that information to motivate a design decision.  However, lots of those rows are pretty much the same test (like most of H2O just being read_parquet).  I get the sense that people aren't taking this nuance into account
Sometimes people take certain benchmarks that, I think, aren't that critical.  An example here I think is that shared memory work was motivated by tensordor + spill, which isn't something that I think matters much (at all?).  (I know relatively few people who use tensordot, and those people tend not to spill)

On the other hand, we have test_vorticity, which does represent a large user base, and represents them well I think.  That's currently just one row in the benchmark suite, probably overshadowed by lots of rows that are just read_parquet and on even ground with tensordot+spill.  The test_vorticity benchmark is, I think, more important than these, but I'm not sure that this is being taken into account.  I'd like to see more workloads that represent what we think users care about.  A real world workflow like uber/lyft is, I think, very representative, probably moreso than test_vorticity.
If we'd rather break things up into more atomic pieces that's fine, but then I'd want us to do some pretty serious thinking about how we weight the different benchmarks for importance.

2. We're only implementing half of them. There are also a couple of join focused H20 tests that might be interesting. (https://github.com/h2oai/db-benchmark/blob/master/dask/join-dask.py) I mention this just for completeness. I do think the examples you mentioned are more valuable right now

Regarding this, we were only able to replicate the code the smaller dataset (~5GB) we (with Ian and James) tried to convert the code to dask, to generate the ~50GB dataset and it was so convoluted that we couldn't. If there is any value on running the case for ~5GB join dataset I can create that case fairly quickly. Above that size,  we would need to invest time in designing a better join dataset.
The conversion of the original R code to python to generate the join dataset is here https://github.com/coiled/coiled-runtime/issues/379#issuecomment-1278310977 .
Discussion of the original data design can be found here https://github.com/h2oai/db-benchmark/issues/106
cc: @hendrikmakait as we chatted about this.

Thanks for the additional context, @ncclementi I think what I'm also getting at is that we're not actually testing H20 but rather a derived version and subset from it. Looking at the test cases we have they are basically filter+aggregate tests. Maybe we should rename them as such? "H20 benchmarks" always sounds like we were implementing a full benchmark suite but in reality they are only covering a very small area of our API.

If there is any value on running the case for ~5GB join dataset I can create that case fairly quickly. Above that size, we would need to invest time in designing a better join dataset.

We have some join tests but our test data is very simple. I guess the H20 data is marginally better but my gut feeling tells me we're not at a stage where these differences should matter a lot.
All of this is low prio, I believe. Getting more different use cases in is more important right now.

Yeah, let met zoom out here and say why I'm currently motivating larger representative workflows. Maybe there is another way to get what I want.

I agree with all of what you're saying. I think there are multiple problems here to fix

We are lacking sufficient coverage, especially of some common workflows (e.g. rechunk/set_index).
We're measure things we don't actually care about (https://github.com/coiled/coiled-runtime/issues/654, maybe test_tensordot_stress?)
Relative importance between tests is unclear. Adding more tests doesn't necessarily help us identifying which ones are relevant. Maybe tagging tests with "common workflow" and "auxiliary" or smth like this helps?
Knowledge of what the tests are actually testing. In the past it's been criticized that it is hard to find out what test is testing/stressing network, for example. I'm wondering if some grouping / categorizing, e.g. introduce subfolders or even allow filtering on the dashboard might help with this.

If there is appetite for 2/3 I can write an additional issue. My only hesitation here is that I don't want to invest too much into this and rewrite everything. I would like to see a low tech solution for this (maybe pytest markers?)

If we'd rather break things up into more atomic pieces that's fine

as with functional integration and unit tests I prefer having both if feasible

Thanks for the additional context, @ncclementi I think what I'm also getting at is that we're not actually testing H20 but rather a derived version and subset from it. Looking at the test cases we have they are basically filter+aggregate tests. Maybe we should rename them as such? "H20 benchmarks" always sound like we were implementing a full benchmark suite but in reality, they are only covering a very small area of our API.

Just for completion, the h2o benchmarks consist of only two sets of tests:

the groupby set: which we do completely
the join set: which we do not do.

Regardless of whether we do or not the join, I do agree that these benchmarks, are covering a small amount of the API. But they are a "standard benchmark" and that was the initial thought behind targeting them.

@fjetter and @mrocklin I'm not sure what kind of workflows you are looking for, but I want to mention that last year I had a couple of meetings with JD from RenRe to get a synthetic dataset that represented their production workflow (the one with did the PoC) and we have code to generate such dataset and scale it. Plus code that represents their challenges.
Here is the code to generate the data and the workflow: https://github.com/coiled/imbalanced-join

I think that the RenRe workflow would be helpful to include as a larger
worked example.
On Tue, Jan 10, 2023 at 7:53 AM Naty Clementi @.***>
wrote:

Thanks for the additional context, @ncclementi
https://github.com/ncclementi I think what I'm also getting at is that
we're not actually testing H20 but rather a derived version and subset from
it. Looking at the test cases we have they are basically filter+aggregate
tests. Maybe we should rename them as such? "H20 benchmarks" always sound
like we were implementing a full benchmark suite but in reality, they are
only covering a very small area of our API.
Just for completion, the h2o benchmarks consist of only two sets of tests:

the groupby set: which we do completely
the join set: which we do not do.

Regardless of whether we do or not the join, I do agree that these
benchmarks, are covering a small amount of the API. But they are a
"standard benchmark" and that was the initial thought behind targeting them.
@fjetter https://github.com/fjetter and @mrocklin
https://github.com/mrocklin I'm not sure what kind of workflows you are
looking for, but I want to mention that last year I had a couple of
meetings with JD from RenRe to get a synthetic dataset that represented
their production workflow (the one with did the PoC) and we have code to
generate such dataset and scale it. Plus code that represents their
challenges.
Here is the code to generate the data and the workflow:
https://github.com/coiled/imbalanced-join
—
Reply to this email directly, view it on GitHub
https://github.com/coiled/coiled-runtime/issues/652#issuecomment-1377479231,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTBPFW6OLV6VBWSFVCLWRWAYLANCNFSM6AAAAAATTKQ33I
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
https://coiled.io
Matthew Rocklin CEO

I think that the RenRe workflow would be helpful to include as a larger worked example.

@fjetter let me know if I can help with this when the time comes.

Added #675

This issue got a bit stale and doesn't specify a very concrete scope. The one "workflow" that has been discussed here that is not already implemented is the imbalanced join based on the synthetic data that can be generated with https://github.com/coiled/imbalanced-join
I'll open a dedicated ticket (https://github.com/coiled/benchmarks/issues/882) for that such that and close this one


ImportError: cannot import name OrderedDict

Hi,
I am using an Bash environment to run moltemplate on my windows 10 machine. After getting it to recognise moltemplate (v 2.19.12) as an command and making sure it recognises my python installation (v 3.9), I end up with an error message: ValueError: Attempted relative import in non-package, it enters the exception after which Bash presents me with: ImportError: cannot import name OrderedDict.
This happens both on v2.19.12 and v2.19.11 of moltemplate. The ValueError was solved by removing the "." in the moltemplate script. I struggle to find a solution for the import error.
If I write "lttree_check.py" in bash, I get the exact same error message.
I understand that this isn't a bug as per say, but I was hoping I could receive some help in getting it to work.
Thanks for your time!
H2O2

Hi H2O2
Thanks for reporting this issue.  You are using a more modern python distribution than I am.

I am using an Bash environment to run moltemplate on my windows 10 machine.

I'm curious: Are you using WSL/ubuntu or cygwin (or something else)?

After getting it to recognise moltemplate (v 2.19.12) as an command and making sure it recognises my python installation (v 3.9),

Incidentally, this seems similar to like the kind of error you can get when you are using python 2 instead of python3.  (I'm curious: Is this a fresh, modern linux installation?  Or is this an old linux OS that originally had python2, and you upgraded to python3?  In that case it's possible that moltemplate.sh is invoking the wrong version of python on your computer.  This can happen if there are multiple versions of python installed.)

I end up with an error message: ValueError: Attempted relative import in non-package, it enters the exception after which Bash presents me with: ImportError: cannot import name OrderedDict.
This happens both on v2.19.12 and v2.19.11 of moltemplate.

You don't have to try installing older versions of moltemplate.   But I am curious: Have you been using moltemplate for a long time and only noticed this problem with recent versions?  Or is this the first time you've tried moltemplate?

The ValueError was solved by removing the "." in the moltemplate script.

I could not follow this part of your message.  What line of the moltemplate.sh script did you change?
It also helps me to know how you installed moltemplate.  Did you

Use pip?, or did you
Augment your PATH (edit ~/.bashrc)?

I've found that debugging moltemplate issues, it often helps to install moltemplate by using method 2 and avoid pip.  That way you can make changes to the moltemplate.sh script and see what happens.  So if you installed moltemplate using pip earlier, I suggest uninstalling it, and using method 2.  This might also fix the problem in the short run.  (See below.)

I struggle to find a solution for the import error.

I've attached new versions of ttree.py, nbody_by_type_lib.py, and nbody_by_type.py to this message.
moltemplate_source_updates_2021-7-16.zip
Please unpack the archive and copy these files into the directory where they currently are located (typically ~/moltemplate/moltemplate/) and then reinstall moltemplate (preferably using method 2), and let me know if it fixes the issue.
If this does fix the issue (and if I haven't worn out your patience yet), then try installing moltemplate using method 1, and see if the problem comes back.  (In that case it would tell us that this is a nasty pip/packaging related issue and not an error in the code.  Packaging bugs are no fun to debug, so I hope it's not that.)

If I write "lttree_check.py" in bash, I get the exact same error message.
I understand that this isn't a bug as per say, but I was hoping I could receive some help in getting it to work.
Thanks for your time!
H2O2

Thanks for reporting.

Hi jewattaij,
Thanks for your quick response!

Are you using WSL/ubuntu or cygwin (or something else)?
Git Bash.

Or is this the first time you've tried moltemplate?
This is indeed my first time trying moltemplate.

I'm curious: Is this a fresh, modern linux installation? Or is this an old linux OS that originally had python2, and you upgraded to python3?
I freshly installed everything to my windows 10 machine and am trying to use git bash to run the system.

It also helps me to know how you installed moltemplate. Did you

Use pip?, or did you
Augment your PATH (edit ~/.bashrc)?

I downloaded all the files from the github and changed the path in ~/.bashrc. After that I downloaded a Python installer from the web and installed version 3.9.
When I get back to the university, coming monday, I will try replacing the files. I will also make sure only one version of Python is installed and running on the PC.
Thanks again,
H2O2

I closed the issue. What I did was the following: I installed a linux VM and reinstalled everything. Leaving the windows environment solved my issues. The python version within the VM is 3.8.5 and the newest version of moltemplate is working!
Thanks so much for your patience and time!

That's good news.  I'd love to make it easier to use moltemplate in windows, but there are several different ways to install bash and python in windows, and it's hard to cover all of them.  What you did (install a linux VM, or WSL+linux) is probably the best way to set things up in windows.  So that's what I'll advocate to other windows users.
Thanks for getting back to me to let me know how you fixed it.
-Andrew


can not found gfa_sort function in sort.py

Hi,
I installed gaftools according to the process and tried to index, but found the following error:
$ gaftools index t.gaf t.gfa
Traceback (most recent call last):
  File "/share/home/miniconda3/envs/podman/bin/gaftools", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/share/home/software/gaftools/gaftools/__main__.py", line 88, in main
    module.main(args)
  File "/share/home/software/gaftools/gaftools/cli/index.py", line 206, in main
    run(**vars(args))
  File "/share/home/software/gaftools/gaftools/cli/index.py", line 24, in run
    from gaftools.cli.sort import gfa_sort
ImportError: cannot import name 'gfa_sort' from 'gaftools.cli.sort' (/share/home/software/gaftools/gaftools/cli/sort.py)

How to solve?
Thanks

Hello,
I added the script for gfa sorting in the new commit. Give the indexing a try with the latest commit.
Regards,
Samarendra

Hi Samarendra,
Thanks for your help, now I can run indexing without the above errors. But what bothers me now is how to obtain the rgfa format file. I tried to use the vg convert command but the gfa obtained does not contain the rgfa tags. I would like to ask how you generally convert it.
Many Thanks!
Yumin

minigraph is the most well known tool to create rGFA format pangenomes.
I maintain a list of software here, as there are other tools which do this too.
https://github.com/colindaven/awesome-pangenomes

A GFA to rGFA converter seems like a good idea. This toolkit was developed keeping the HPRC minigraph rGFA in mind. But it makes sense to make a GFA to rGFA converter to allow a broader range of utility. The converter might already exist as part of gfatools (not sure).


Days seem to be 1 off

The day numbers and days of the week appear to be off by one for me.  Not sure why and in looking at dateFormatter.js, I don't see anything that makes me think that would be occurring.

Eh, is it possible for you to open this app, press ctrl+shift+I, select console and input new Date().toLocaleString()? It should print the correct time, otherwise it seems to be a bug of Electron framework.

Running the suggested does output the correct date and time in the console.

I think the problem is related to standard() inside of date-formatter.js.  You return the date string in ISO format.  Thus, when you pass that string back to format(), it creates a Date object in UTC.  You really want to be returning a local string, right?  You have something like this here

Excellent! I haven't realized this issue because I live in the Eastern Hemisphere 🌏 . Fixed by this commit.

Works great now!  Thanks very much!


Provide script to upsert users in APIM (developer portal)

Is your feature request related to a problem? Please describe.
Currently, there is no way to easily manage or automate the creation of users in APIM to grant them access to the Developer Portal.
Because of this, this remains a manual step.
Describe the solution you'd like
This can be automated by using the REST API to take care of the creation/update of users, defining whether they get access to the legacy dev port, whether they need to be invited,...
A first test has been created here:
https://github.com/mbraekman/Powershell/blob/master/Azure/APIM-InviteUserToDevPortal.ps1
What isn't included in this PoC-scripts is:

the removal of users
adding/removing users to groups (+ group-management)

@mbraekman  is this still relevant, it seems that there are Az scripts that offer this functionality (or maybe I'm not fully understanding the feature request 😉)
See:
https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/new-azapimanagementuser?view=azps-8.0.0
https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/set-azapimanagementuser?view=azps-8.0.0
https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/remove-azapimanagementuser?view=azps-8.0.0

Only thing I do not notice at first glance from the docs to those operations in the Az-module, is support for:

invite vs signup (user provides pwd vs pwd is set via script)
send a notification after registering (bool)
grant access to legacy developer portal vs "new" dev portal

The last two might be ignored, but the first option I would consider quite critical?

@mbraekman thanks for your input! Sorry for the late response, a lot of things got in the way 😒
Good point about the invite part 👍🏻
I think we can create a script (based on https://github.com/mbraekman/Powershell/blob/master/Azure/APIM-InviteUserToDevPortal.ps1) that will create a user and gives the option to invite or signup.
Regarding:

What isn't included in this PoC-scripts is:
the removal of users
adding/removing users to groups (+ group-management)

I don't think we have to include this, since users can be removed using https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/remove-azapimanagementuser?view=azps-8.0.0 and group management can be done with https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/add-azapimanagementusertogroup?view=azps-8.0.0, https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/remove-azapimanagementuserfromgroup?view=azps-8.0.0, https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/add-azapimanagementproducttogroup?view=azps-8.0.0 and https://docs.microsoft.com/en-us/powershell/module/az.apimanagement/remove-azapimanagementproductfromgroup?view=azps-8.0.0.
@mbraekman  do you agree or any other ideas?

Creating the script to remove users or assign groups definitely isn't high-prio, since the az-module offers some options.
An option would be to provide a RemoveUser-function that allows people to only specify the email address, instead of having to perform a Get-AzApiManagementUser to retrieve the userId, themselves.
All of this logic could become part of the newly created function.
Is this an absolute mush-have? No
Would it be useful and make lives easier for some? Yes
The same applies to the group-related stuff.
As mentioned before, up to you to decide whether this should end up on the backlog.
Personally, I would kind of like the idea of having something handling the complexities/error-handling for me, so I don't have to combine several functions myself. Especially if this is something I'd be using across multiple projects (which would result in copy/pasting).

Creating the script to remove users or assign groups definitely isn't high-prio, since the az-module offers some options. An option would be to provide a RemoveUser-function that allows people to only specify the email address, instead of having to perform a Get-AzApiManagementUser to retrieve the userId, themselves. All of this logic could become part of the newly created function. Is this an absolute must-have? No Would it be useful and make lives easier for some? Yes

Created a new issue specifically for this here


Add library.properties for Arduino Library Manager

Also fixes a small typo in library.json

@sstaub Next time a new release for Ticker is published to GitHub, the library can be added to the Arduino Library Manager:
https://github.com/arduino/Arduino/issues/10642

This is done with release 3.2.0, thank you.


docker-storage-setup on dedicated disk

We need to deploy docker to a dedicated disk.
I will work on a change to the chef cookbook to allow this to be an option.

:+1:

# This section reads the config file (/etc/sysconfig/docker-storage-setup.
# Currently supported options:
# DEVS: A quoted, space-separated list of devices to be used.  This currently
#       expects the devices to be unpartitioned drives.  If "VG" is not
#       specified, then use of the root disk's extra space is implied.
#
# VG:   The volume group to use for docker storage.  Defaults to the volume
#       group where the root filesystem resides.  If VG is specified and the
#       volume group does not exist, it will be created (which requires that
#       "DEVS" be nonempty, since we don't currently support putting a second
#       partition on the root disk).
#
# The options below should be specified as values acceptable to 'lvextend -L':
#
# ROOT_SIZE: The size to which the root filesystem should be grown.
#
# DATA_SIZE: The desired size for the docker data LV.  Defaults to using all
#            free space in the VG after the root LV and docker metadata LV
#            have been allocated/grown.

eg:
root@ldtdsr001003356 DEV # /usr/bin/docker-storage-setup
Checking that no-one is using this disk right now ...
OK

Disk /dev/vdb: 208050 cylinders, 16 heads, 63 sectors/track
Old situation:
Units: cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/vdb1          0       -       0          0    0  Empty
/dev/vdb2          0       -       0          0    0  Empty
/dev/vdb3          0       -       0          0    0  Empty
/dev/vdb4          0       -       0          0    0  Empty
New situation:
Units: sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
/dev/vdb1          2048 209715199  209713152  8e  Linux LVM
/dev/vdb2             0         -          0   0  Empty
/dev/vdb3             0         -          0   0  Empty
/dev/vdb4             0         -          0   0  Empty
Warning: partition 1 does not start at a cylinder boundary
Warning: partition 1 does not end at a cylinder boundary
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
  Physical volume "/dev/vdb1" successfully created
  Volume group "docker" successfully created
  Rounding up size to full physical extent 104.00 MiB
  Logical volume "docker-poolmeta" created.
  Logical volume "docker-pool" created.
  WARNING: Converting logical volume docker/docker-pool and docker/docker-poolmeta to pool's data and metadata volumes.
  THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
  Converted docker/docker-pool to thin pool.
  Logical volume "docker-pool" changed.
root@ldtdsr001003356 DEV # cat /etc/sysconfig/docker-storage-setup
# Edit this file to override any configuration options specified in
# /usr/lib/docker-storage-setup/docker-storage-setup.
#
# For more details refer to "man docker-storage-setup"

DEVS=/dev/vdb
VG=docker
DATA_SIZE=99G

Todo:

template for the storage file
4 options (defaulting to '')
if options are blank, what do we do?

how much logic do we want in the chef script (I will assume none, and leave to the script itself).

logic has been done : https://github.com/IshentRas/cookbook-openshift3/pull/3


minification failing for dependency ArgHandler.js through create react app script

I'm trying to use xlsx-populate as a dependency with one of my react app. The minification as part of create-react-app script is failing
Failed to minify the code from this file:
./node_modules/xlsx-populate/lib/ArgHandler.js:9

I had the same issue, but
import XLSX from 'xlsx-populate/browser/xlsx-populate';

does the trick.

Thanks @dtjohnson @mekto - That solves it. 👍


fix: fixed padding related Issue.

There were some padding related issues in the secondary navbar and subscribe-toast

So I fixed them

Kindly merge the PR with the hacktoberfest-accepted lable.


cannot compile myrtille Freerdp

H,
Hi, I get following error when building FreeRdp
2>tls.obj : error LNK2019: unresolved external symbol _BIO_meth_new referenced in function _BIO_s_rdp_tls
2>tcp.obj : error LNK2001: unresolved external symbol _BIO_meth_new
2>tsg.obj : error LNK2001: unresolved external symbol _BIO_meth_new
2>rdg.obj : error LNK2001: unresolved external symbol _BIO_meth_new
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_set_data referenced in function _transport_bio_buffered_new
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_get_data referenced in function _transport_bio_buffered_ctrl
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_set_init referenced in function _transport_bio_buffered_new
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_get_init referenced in function _transport_bio_simple_ctrl
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_set_shutdown referenced in function _transport_bio_simple_ctrl
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_get_shutdown referenced in function _transport_bio_simple_ctrl
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_set_next referenced in function _transport_bio_buffered_free
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_write referenced in function _BIO_s_buffered_socket
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_read referenced in function _BIO_s_buffered_socket
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_puts referenced in function _BIO_s_buffered_socket
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_gets referenced in function _BIO_s_buffered_socket
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_ctrl referenced in function _BIO_s_buffered_socket
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_create referenced in function _BIO_s_buffered_socket
2>tcp.obj : error LNK2019: unresolved external symbol _BIO_meth_set_destroy referenced in function _BIO_s_buffered_socket
2>certificate.c.obj : error LNK2019: unresolved external symbol _RSA_get0_key referenced in function _key_new_from_content
Please help

@elich913 on the first glance it looks like you miss openssl. Please have a look to https://github.com/freerdp/freerdp/wiki/BugReporting and provide more information..

OK, thank you.
I installed free OpenSSL Win32OpenSSL-1_0_2n.exe
and checked the library path and SSL errors  disappeared
( I have OpenSSL before but another version)
but this BIO_meth_... error still remained, may be it depends of some other library ?

@elich913 No, these are part of OpenSSL. Check if the version detected is correct.
For further assistance please use IRC or mailing list.

OK, thank you, I just succeeded.
I compiled zip version of FreeRDP first
it became OK after I did git clone...


Enhancement: Venue Duplication in the Admin

When adding events from the admin side, the venue list shows many of the address options twice.
You'd expect some overlap / duplication if organizers used slight variations , but I'm curious how that list is being generated and perhaps there's something causing many of them to show the same option twice.

OpenWorks shows 4 times, but there are two of each variant.

Originally posted by @allella in https://github.com/hackgvl/hackgreenville-com/issues/240#issuecomment-2196073677

after thinking about this - it will be a bit of challenge to actually de-duplicate this data -- since we are getting this data from providers who send us this data -- including lat/lon which sometimes come in slightly off depending on the precision they give provide us.
One option is, to take all the data that comes in, and standardize it, using a geocoder for example.
Thoughts? @allella @irby

@bogdankharchenko Would be my first time working with geocoding. What did you have in mind in terms of how the inputs and outputs would be sanitized?

I'm not opposed to pairing down the venue feature.  It's causing a log of trouble and we don't even have a feature on the site that's attempting to show events by venue.
It would be nice, but in the past we did a simple version of this by tagging organizations, like tag #1 = OpenWorks and I use that to do a dashboard at OpenWorks.  It's not perfect, but certainly less trouble than trying to normalize venues across 3 or more event services.


chore(vertexai): fork vertexai sdk away from generative ai sdk.

Description
Fork Vertex AI sdk from dependent from generative ai sdk.
This PR contains breaking changes and will be merged into the GA preparation branch.
Related Issues
Replace this paragraph with a list of issues related to this PR from the issue database. Indicate, which of these issues are resolved or fixed by this PR. Note that you'll have to prefix the issue numbers with flutter/flutter#.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (melos run analyze) does not report any problems on my PR.
[ ] I read and followed the Flutter Style Guide.
[ ] I signed the CLA.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[ ] No, this is not a breaking change.

There are tests we should bring over from th
I think the api client tests can likely be copied over directly. The chat tests too, though some might need to be deduplicated. Response parsing tests might need some fiddling, but with more of the parsing logic moving here we'll want to bring over the tests that match vertex.


typo: LocationNameParamter should be LocationNameParameter

https://github.com/Azure/azure-rest-api-specs/blob/028312222e05fbca114068577aeba11cc93d99a1/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/sharedGallery.json#L49
Proposing a temporary suppression in https://github.com/Azure/azure-rest-api-specs/pull/12580, but probably good to fix before it leaves preview

@olayemio Can you please look into this issue?

@olayemio Can you please look into this issue?

This is a typo that will be fixed by the team. Changes should be reflected by Feb 26.

This is a typo that will be fixed by the team. Changes should be reflected by Feb 26.

👍 if the suppression PR lands before you fix, you can clean out the entry when it's fixed 😉

👍 if the suppression PR lands before you fix, you can clean out the entry when it's fixed 😉

There is a PR out to fix this typo. Waiting for a sign-off for it to be published.

@nschonni The PR has now completed and the typo has been fixed

Awesome! Looks like it's still in the old preview version, so I'll leave the suppression just for that file


Adding support for bool in python bind variables.

In python, isinstance(True, int) is true, resulting in a bug in our bind
variable encoding: the type would be query_pb2.INT64, but the value
would be 'True' or 'False', resulting in server errors.
Instead, now bool is special-cased, and encoded as '0' or '1' for False
and True, respectively.

LGTM

isinstance(True, int)
True
isinstance(False, int)
True

That's unexpected.


Drop 'Enum' prefix from enum class names

Pending on clearing up the enum situation first.

Or not. https://github.com/FabricMC/pomf/commit/b56b270f458434245537a25dc7be138a3d6ed1b0


Alternate method for access_row_tuples_by_indexs

Recently, access_row_tuples_by_indexs method has been removed from daru. Please let us know the alternative.
Refer: #454, Sciruby/daru-view#103 (issue)

@Prakriti-nith , please create a PR in daru repo and putting the same method in same place (revert the changes for this method) with testcases.
Thanks!


Export of exsting terms and definitions

Description of the issue
I have been asked for a list of existing terms and defintions as list, e.g. in a pdf file.
Ideas of solution
I general it can be done with the export function of the robot library: http://robot.obolibrary.org/export. I will try to setup a unix script which can generate a nicly formatted list of terms based on the robot library.
Workflow checklist

[x ] I am aware of the workflow for this repository

Once created, the list should be linked on the OEP @Ludee

@markus-rothkoetter or @sfluegel05 : Are you familiar enough with ROBOT to create such a script for the release process?

@l-emele
It shouldn't be a problem from the ROBOT-side for me.
Their HTML export is super. Also a conversion to e.g. PDF via pandoc is straightforward.
I haven't been part of a release-session, yet.
So, concerning the exact integration into release-process I cannot comment (yet).
Maybe I can simply attend the next release session.
Concerning time allocation I won't find time before the next release as I'm focusing on the script-stuff for #1154

Unassigning myself, as @stage1407 has taken over this issue.

There is a little problem, because the definitions contain symbols like ',' and '\t', so .csv and .tsv are not suitable for this problem. I will look for a better solution in the next days. Nevertheless, the current version of the script is already available under the respective feature branch.

You can quote fields in double quotes in CSV
The row
"A,B"," C"

Contains two fields.
On Fri, 2 Sep 2022, 23:31 stage1407, @.***> wrote:

There is a little problem, because the definitions contain symbols like
',' and '\t', so .csv and .tsv are not suitable for this problem. I will
look for a better solution in the next days. Nevertheless, the current
version of the script is already available under the respective feature
branch.
—
Reply to this email directly, view it on GitHub
https://github.com/OpenEnergyPlatform/ontology/issues/1020#issuecomment-1235912342,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3Y3ZY6BKMZTMZ7HAGXJGTV4JW4JANCNFSM5OAPJDDA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I tried this now and found out that it was not because of that, but because of how the export command in ROBOT handles line breaks.
For example, in line 11,12 of src/ontology/edits/oeo-social.omn, ROBOT reads a definition that contains '\n' and does not process it as the contents of the definition when converting to a .csv file. This causes another part of the definition to be written to a new line of the .csv, breaking the format.
I could try other file formats. But if they are coded and serialized the same by ROBOT, then I could still try owlready2 or we reconsider using new lines in definitions.

The associated pull request #1319 was merged. Is there a reason why this issue is still open.

I don't think so


Dictionary AttributeError in score_utils.py (Python3 Related)

When trying to use smirky from the command line, I encountered this error:
File "/home/nathanlim/anaconda3/envs/icebox/lib/python3.5/site-packages/smarty/score_utils.py", line 53, in load_trajectory
    if not timeseries.has_key( iteration): timeseries[iteration] = {}
AttributeError: 'dict' object has no attribute 'has_key'

According to the docs 'has_key' was removed with Python 3

Removed. dict.has_key() – use the in operator instead.

@bannanc - can you have a look? I think in python3 this would be if not iteration in timeseries, which I believe also works in python2.7.
@limn1 - it also might be good to update me on Slack what you're doing with Smirky, as it's not totally obvious to me and I'm curious. :)

@limn1 - I'm also curious what you're doing with smirky?
@davidlmobley - I'll fix this and double check we aren't using similar dictionary checks. I thought I had a test for all the functions I wrote, but I must have missed some of them in score_utils, so I'll look into that as well.

He was just trying the example for fun, @bannanc . :)

see pull request #200

Fixed with pull request #200


Add medical skills on lockers

As initially proposed by #6

@ArwynFr PR is still blocked by auto checks, is that the expected behavior ?

The status check to ensure merged code is buildable is broken.
I opened #7 for me to fix it


How to create quant model without origin float model

I have my own training framework (conda based) and seems incompatible with vitis-ai quantization environment， so I install vai_q_pytorch from source code . I successd in 'calib' quant mode（with fast finetune）, but failed in 'export_xmodel'.
Now I want to decople the training env (python, pytorch, vai_q_pytorch  and others) and the deploy environment (vitis ai docker,  vai_q_pytorch and xir). Then I use training env to get quant model, but how to export xmodel in deploy env without origin float model? maybe just use the quantize_result ?

@ZQ-zz :
Origin float model is must to get quant model.
Please strictly follow the steps of the example resnet18.


Share Mocha's test context.

This ensures that the contexts in various mocha hooks are the same as
the hooks used in unit/integration tests.
[Rebase of #87]

@dgeb we should probably do the same in https://github.com/switchfly/ember-mocha/blob/master/lib/ember-mocha/setup-test-factory.js#L14-L17

@Turbo87 good call - see #91


Error when running fastlane

I get the following error when attempting to run fastlane:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:2007:in `raise_if_conflicts': Unable to activate cupertino-1.3.3, because highline-1.6.21 conflicts with highline (>= 1.7.1) (Gem::LoadError)
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1176:in `activate'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1212:in `block in activate_dependencies'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in `each'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in `activate_dependencies'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:in `activate'
	from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:48:in `gem'
	from /usr/bin/fastlane:22:in `<main>'

This after doing a sudo gem update fastlane (I was previously running 0.5 I believe)

Can you run sudo gem update, which will update all your dependencies?

That seems to have fixed it, thanks!


How to use TorchToggle and SwitchCameraButton

Can you please give an example how to use TorchToggle and SwitchCameraButton? Thank you

The example project activate by default the torch and camera switch buttons.
The only way to work with these buttons is via the initializer method:
init(cancelButtonTitle: String, coderReader: QRCodeReader, startScanningAtLoad: Bool, showSwitchCameraButton: Bool, showTorchButton: Bool)


Root Config File to Control Build Test Rules Default Values (RDT-621)

For now the default running targets for build & test are all defined in one place, --default-build-targets, could be more flexible with
default_rules:
  esp32: true  # build and test
  esp32h2:
    build: true
    test: false
  # test: true and build: false is invalid...
  # we skip unlisted ones, consider as build: false, test: false

if default_rules is not set, we use the same behavior as before, i.e. build & test the officially supported targets under the specified IDF_PATH.

maybe also need enable_test to "whitelist" some build based on a target which has test: false by default.


Bare T.type_parameter in method body is untyped and does not emit error

Input
→ View on sorbet.run
# typed: true
class A
  extend T::Sig

  sig {type_parameters(:U).returns(NilClass)}
  def foo
    T.reveal_type(T.type_parameter(:U))
  end
end

Observed output
editor.rb:7: Revealed type: T.untyped https://srb.help/7014
     7 |    T.reveal_type(T.type_parameter(:U))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  From:
    editor.rb:7:
     7 |    T.reveal_type(T.type_parameter(:U))
                          ^^^^^^^^^^^^^^^^^^^^
Errors: 1

Expected behavior

Probably something more similar to what would have happened in this example, which has T.any in the body of a method:
→ View on sorbet.run
# typed: true
class A
  extend T::Sig

  sig {returns(NilClass)}
  def foo
    T.any(Integer, String)
  end
end

editor.rb:7: Returning value that does not conform to method result type https://srb.help/7005
     7 |    T.any(Integer, String)
            ^^^^^^^^^^^^^^^^^^^^^^
  Expected NilClass
    editor.rb:6: Method foo has return type NilClass
     6 |  def foo
          ^^^^^^^
  Got <Type: T.any(Integer, String)> originating from:
    editor.rb:7:
     7 |    T.any(Integer, String)
            ^^^^^^^^^^^^^^^^^^^^^^
Errors: 1

^ Note that in this case, inference decideds the result of the T.any is a MetaType, which should probably also be the case for the T.type_parameter example.

This is probably the same bug as #1715 but I'll keep this one open just in case they do in fact end up being different bugs.


combination virtual-repeat with sortable-columns

Hi iamisti.
i use in last month with the md-data-table the all feature work nice in demo.
when i want to use with virtual-repeat and sortable-columns i get this result.
http://codepen.io/anon/pen/BjvzeQ?editors=1000
i get two level of header.

Hi @AmosHchmon ,
Thanks for reporting this bug. I'll fix this as soon as possible. This bug has priority to me, since it's quite a big visual bug and probably it'll easy to fix.

I found one solution, try if this works for you.
I have added one condition ( ng-if="!virtualRepeat" ) in the template "generateTable.html"
<th class=\"column\"\n      ng-if=\"!virtualRepeat\"         ng-repeat=\"headerRowData in headerData track by $index\"\n    ng-class=\"{\'clickable\': sortableColumns}\"\n                mdt-add-align-class=\"headerRowData.alignRule\"\n                mdt-sort-handler\n                md-ink-ripple=\"{{rippleEffect}}\">\n\n                <mdt-generated-header-cell-content></mdt-generated-header-cell-content>\n            </th>


Tutorials

Hi
Will you bring out step by step tutorials to go with your very great app  I find thr console + great.. with tutorials it will be even greater!!!

great console + app

Have you seen the tutorials in the feature branch? It still needs some time and work, but you can already see what is coming. These will be tutorials 1. to get started with Ruby programming and 2. to get started with the SketchUp Ruby API.
Is that what you were asking for?

Many thanks for your reply.
My goal is to create menus and toolbar to catalog similar plugins together as my plugin list is very long. I would also like to learn the language so that I can read other people work and understand what they do and build my own efforts.
Thanks again
Sent from my iPad

On 23 Nov 2018, at 3:31 pm, Aerilius<EMAIL_ADDRESS>wrote:
Have you seen the tutorials in the feature branch? It still needs some time and work, but you can already see what is coming. These will be tutorials 1. to get started with Ruby programming and 2. to get started with the SketchUp Ruby API.
Is that what you were asking for?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


In patch_trg, i cant understand why do you change the data shape like that

my dataset is composed with horizontal
i didn't use transpose(0,1)
so i changed your code like below
def patch_trg(trg, pad_idx):
       trg , gold = trg[:, :-1], trg[:, 1:].contiguous().view(-1)
       return trg, gold

And my dataset example is composed with below
sample_1 = bos, 346, 32, 124, 214, eos
sample_2 = bos, 346, 124, 214, eos
...
sample_N = bos, 346, 32, 32, 32, 124, 214, eos
every length of sample data is different
so, this is my question.
if i running your code, when making trg parameter, the eos token of longest sample is deleted
that means, in every batch, the longest sample will be trained without eos token
so i want to know the correct role of that code(trg[:, :-1] and trg[:, 1:])?
i think that gold made for to get rid of bos token but i dont know the trg parameter

Hi bro, how did you get the program to work? The dataset doesn't download, the preprocess.py file doesn't work.

@Gi-gigi actually, i didn't use the dataset that jadore091120 prepare. i just use my datset and i have to change to something in preprocess.py. easily i customize the transformer code.

Perhaps I can answer your question.
The ‘trg’ will be used as the input of decoder, and the decoder will predict the next word of known information. The 'gold' will be used as the label of predicted word. Let me give you an example.
sample_1 =
trg:   bos, 346, 32, 124, 214
gold: 346, 32, 124, 214, eos
So, the 'eos' in the trg is meningless, and the loss function does not include it.


Definition proposal: 'data visualizer software'

Definition: Software that specifies the execution of some data visualization process.
'data visualization process' - A planned process that has as specified output some diagram.

Wouldn't it be realized by a data visualization process, or even better,
the data visualization process achieves the planned objective of the
software?
On Tue, Sep 19, 2017 at 11:34 AM, Matthew Diller<EMAIL_ADDRESS>wrote:

Definition: Software that is the specified input of some data
visualization process.
'data visualization process' - A planned process that has as specified
output some diagram.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ApolloDev/apollo-sv/issues/196, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABMe9pKjwvGjT6_cIZT2DnoWhocisCjCks5sj98KgaJpZM4Pcl3e
.

I like the latter.


docs: remove unused region tags

Finalizes work started in #104 and #106 now that changes have proliferated on devsite.

This should be a trivial PR as the new correct region tags are now used in docs. Please merge, thank you for helping with this and related PRs!


Added Code Review to Contributing.md

Fixes #593
Checklist

[x] I have made a material change to the repo (functionality, testing, spelling, grammar)
[x] I have read the [Contribution Guide] and my PR follows them.
[x] I updated my branch with the master branch.
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation about the functionality in the appropriate .md file
[x] I have added in line documentation to the code I modified

Short description of what this PR does:

Added Code Review to Contributing.md

If you have questions, please send an email to Sendgrid, or file a Github Issue in this repository.

Looks good, ready for merge, anytime.

Looks good, ready to merge, anytime.

Hello @mptap,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX

@igauravsehrawat
If you are interested, we would love the opportunity to talk to you about Hacktoberfest and our API libraries.
Our agenda would be: Explore what you liked and is there anything we can do to improve?
You can grab a time on my calendar that works for you and we can have a chat on Google Hangout or Skype. If you prefer, you can email me using my GitHub username at my company’s domain.
Thank you so much,
Matt Bernier - @mbernier - SendGrid Developer Experience Product Manager
Elmer Thomas - @thinkingserious - SendGrid Developer Experience Engineer
@SendGrid


⚠ Bofrost.be has degraded performance

In a90326d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1476 ms

Resolved: Bofrost.be performance has improved in c989053.


Updating examples

Hi, I just wanted to ask which parts of the examples "need to be updated":
def demo(seed=None):
    """
    Create a discrete time Hawkes model and generate from it.
    :return:
    """
raise NotImplementedError("This example needs to be updated.")

from

/examples/inference/standard_bfgs_demo.py

and other files.
Thanks in advance.

Hi @thonic, thanks for reminding me about this.  I changed the constructor signature last year and I never got around to backporting it to the BFGS/GD/SGD examples.  It only required some minor changes to get bfgs back up and running.  Unfortunately, this demo is still not as nice as the discrete and continuous demos in the examples directory.
See https://github.com/slinderman/pyhawkes/commit/279fbb4f034356c651614a8f67d94c9489e7758a
I'll leave this open until I can clean up the other examples too.


Add support for Tuya TS0046

Made in colab with @MattWestb and @javicalle (mostly by them) as discussed in #2034

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 83.566%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
6773

Relevant Lines:
8105

💛  - Coveralls

Codecov Report
Base: 83.54% // Head: 83.56% // Increases project coverage by +0.02% :tada:

Coverage data is based on head (d490f5b) compared to base (cec721e).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #2094      +/-   ##
==========================================
+ Coverage   83.54%   83.56%   +0.02%
==========================================
  Files         251      252       +1
  Lines        8095     8105      +10
==========================================
+ Hits         6763     6773      +10
  Misses       1332     1332

Impacted Files
Coverage Δ

zhaquirks/tuya/ts0046.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Pleas add fixes: #2034 in  the opening post so its closing the initial issue for the device request :-))


SCM providers for vscode is now available

http://code.visualstudio.com/updates/v1_10#_contributable-scm-providers

Yes, this is part of the plan! :)

Let me know if you want help with this feature, I'm very interested in seeing if we can use this as well. You might have heard that parts of Microsoft use Source Depot which is a fork of Perforce (which is why I submitted a PR to allow configuring the executable for this extension)
Depending on how you implement the SCM provider, it might continue to work with Source Depot which would be fantastic :-)

That's a good thing to know!
Source Depot seems to be proprietary to Microsoft, I couldn't find much info on the differences with 'vanilla' Perforce.
Please let me know if there is anything I can do to make it customizable enable to support it.

So far the "add" and "edit" and "diff" commands are working and that's about the most I've needed it for.
But now that there is a possibility for slightly deeper integration, I'm interested in seeing how it can work. If I'm not mistaken, there isn't an official API out, right? The vscode team is just moving the git support out into an extension and building the API that way with hopes that in April or May there will be something more concrete?
At that point I'd be happy to look at it and look at what you have and see if I think there will be problems. I don't expect 100% support, of course, only to avoid unnecessary feature gaps.

Work in Progress

Now supported in version 2.0.0.
Please let me know if there is any compatibility issue with Source Depot


Nice errors

Created new branch for more informative error messages

Coverage remained the same at 0.0% when pulling 68b915bdd51f8efd9950b44c7e00f3ff09e21761 on david-pl:nice_errors into 014c86b8e1a14d9cace63c875dfaa08799cf3748 on bastikr:master.


(PE-17093) Fix noask directory path

Prior to this commit I attempted to use a variable that doesn't exist
noask_directory.
This commit uses the opts[:copy_dir_external] varible instead, which
should be provided by beaker, and default to /root

😠
👍
🔥

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/2887/

@puppetlabs-jenkins retest this please

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/2890/

@highb would you add a spec test so that we can get this code path exercised & make sure we don't break it going forward?

I'm working on this in #1238 while Brandon is out.


RN: Upgrade ESLint Packages

Summary
Upgrades ESLint to v7.28.0. This is the latest version before v8.0.0, which would be a more involved upgrade.
Upgrades all ESLint-related dependencies to their latest version, except for eslint-plugin-flowtype. This is because<EMAIL_ADDRESS>dropped support for ESLint v7.
Changelog
[General][Changed] - Upgraded packages to the latest versions for ESLint v7.
Test Plan
# See no new errors or warnings.
$ yarn run lint

For this to work with eslint 8 and typescript, the eslint-typescript plugin needs to be upgraded to the latest version (5.4.0).
@yungsters you would like me to do a PR for it?

@wcandillon, sure! Thanks.

@wcandillon Were you able to set up a PR to upgrade the eslint-typescript plugin to support eslint v8? 🙏🏻

@Kerumen yes at #33448


Braw Toolbox does not appear in the inspector

The BRAW Toolbox effect is applied WITHIN the Synchronised Clip.
If you create Multicam Clips from BRAW Toolbox, then you'll need to open the Multicam Clip, then open the first angle, which is a Synchronised Clip, to access the BRAW Toolbox controls.
See: https://brawtoolbox.io/installation/#instructions


question: how to add a component dynamically

If I have some code like the following. how would I add any component at the given location? Having a bunch of if/switch statements is cumbersome.
<button onclick="@addcomp1">add comp1</button>
<button onclick="@addcomp2">add comp2</button>
<div style="border:dashed 1px black;width:500px;height:100px">
     /// component goes here
</div>
@functions{
 protected void addcomp1()
    {
       // what goes here?
    }
}

I am very interested in Blazor for an internal application.  We build up components dynamically in WPF based on markup from the server., and we are looking to make a HTML version of the application.  If Blazor had a nice API for building up a tree of components programmatically, it would be amazing.  In the meantime, I am going to test out this suggestion.

Has this now improved yet? Or is the above mechanism still the only way?

I am also very much interested ... any designer app has to have the ability to add components dynamically. WYSIWYG editors, process modelling UI, dashboarding UI ...

Same as above.  It would be a nice feature to be able to add components dynamically for plug in architectures.

You certainly can do that, as described above. You can wrap this up in a helper method for convenience if you plan to do this widely.

Hello, Is there any new way of doing it now ? Thanks


On some devices, date list item indicators get cut off

This may be fixed when date scroller is reworked.

Hi @derekcaneja not sure if it's a groundDB issue?
(The status indicators /dots are not updated reactivly yet - I hope to get it up and running later today)

Wrong project, oops!


Software itemType

Could you support the software itemType? From looking at the tested item_types.json it doesn't look supported. Thanks!

Could you also support preprint?

Available item types are governed by the return value of the  Zotero API /itemTypes call and retrieved using pyzotero.item_types(). Currently, Software is the localized string of the computerProgram item type and Preprint is the localized string of the preprint item type. When retrieving an item template in order to create new items you have to specify the itemType, not the localized string.
As per the issue template, please provide context and concrete data about what you're trying to do and what went wrong when you tried to do it, otherwise I have to try to infer whether there's a bug or a misunderstanding, which can be an unreliable process…


Updated index.ts - test of email notif at start, fixed memory leak

Description

Testing

New dependencies

Thanks for the memory fix! Lets work on the sendNotification and go from there.


Tembo Toml Struct

Yes it is. I made a simplified struct and the types in Extension and Postgres Configurations to implement it from the Instance struct in control plane


Pitch grid edges deallocated from memory if using ds.hottailgrid.setCustomGrid(xi_f=...) resulting in error in ther dreami executable

The error was
*** Error in `/DREAM/build/iface/dreami': double free or corruption (!prev): 0x0000000001de6f40 ***

The problem was in line 25 in "fvm/Grid/PXiGrid/XiCustomGridGenerator.cpp". Commenting this line and rebuilding DREAM fixed this issue.

Also the PCustomGridGenerator class has the same bug.


Re-customize traffic

Issue

Targeting issue: the issue will be CLOSED once the PR merged. If there is no issue that addresses the problem, please open a corresponding issue and link it here. Uses the Closes keyword to close them automatically.
Closes https://github.com/Telenav/osrm-backend/issues/83

Any other related issue? Mention them here.

Description
A summary description for what the PR achieves.

Re-customize traffic per several minutes by osrm-customize/osrm-datastore.

Tasklist

[x] CHANGELOG-FORK.md entry (CHANGELOG)
[ ] profiles/CHANGELOG.md entry if any Lua changes
[ ] update relevant Wiki pages
[ ] add tests (see testing documentation

Prerequirements

Want to contribute? Great! First, please read this page Contribution Guidelines.
If your PR is still work in progress please attach the relevant label.

Great work.
Better to have this diagram in the Description


chore: update scripts

Context

Closes #172.
Changes proposed in this pull request

Extension builds preview

Name
Link

Latest commit
11d1fc3c5b45404c87b3c65004baa30d77267e8d

Latest job logs
Run #8280152420

N/AN/AN/AN/A


change name in package.json to not conflict with the real backbone

Give backbone lite a unique package name so that jest-haste-map doesn't get confused.  Without jest outputs the following error:
jest-haste-map: Haste module naming collision: backbone
  The following files share their name; please adjust your hasteImpl:
    * <rootDir>/third_party/javascript-khansrc/backbone-src/package.json
    * <rootDir>/third_party/javascript-khansrc/backbone-lite-src/package.json

 FAIL  javascript/sat-mission-package/fixtures_test.js
  ● Test suite failed to run

    The name `backbone` was looked up in the Haste module map. It cannot be resolved, because there exists several different files, or packages, that provide a module for that particular name and platform. The platform is generic (no extension). You must delete or blacklist files until there remains only one of these:

      * `/Users/kevinbarabash/khan/webapp/third_party/javascript-khansrc/backbone-lite-src/package.json` (package)
      * `/Users/kevinbarabash/khan/webapp/third_party/javascript-khansrc/backbone-src/package.json` (package)

      3 | /* To fix, remove an entry above, run ka-lint, and fix errors. */
      4 | var $ = require("jquery");
    > 5 | var Backbone = require("backbone");
        |                ^
...

This is needed for https://phabricator.khanacademy.org/D53481.

I see, this has already happened on the lite branch.


Use built-in sets for whitelists & blacklists

See #226 for discussion and #205 for context. boltons seems to be a light dep but there doesn't seem to be a compelling reason to need order/indexing/etc in the whitelist blacklist. Maybe it could help in debugging but that part of the package seems pretty stable now.
Probably squash & merge this one, or I can clean up the git history.

This closes #226


Video classification, k400 test, top1 is only 0.03

I ran the test code before and found that top1 is only 0.03. I can guarantee that my data and labels must be aligned. Because there is no dataset provided by the author, I can only find the dataset on the Internet, so the labels I use, they are all generated by myself based on the data set, but the results that came out were so disappointing to me. In previous issues, I found that other people also had this problem, and then I based on the kinetics_400_categroies.txt provided by the author
, the test.csv is regenerated, which means that the test.csv file must be regenerated using the kinetics_400_categroies.txt provided by the author . Then I ran it again with the new kinetics_400_categroies.txt and test.csv, this time with a top1 of 0.81. This is really weird. This is really weird. This is really weird,

Can you provide the LOG file and the test.csv? I'm not sure whether you have already loaded the models correctly.

Maybe you should check your log like Here.
Moreover, our Kinetics dataset can be downloaded from BaiduYun, the password is vpgd.

cat xa* | tar xj

Since the Video Demo works in huggingface and the pre-trained models are good for other video tasks, I'm sure the weights are correctly uploaded.

Maybe it's my problem, but fortunately, the problem has been solved. Thank you very much!
Oh, by the way, can you tell me where your data preprocessing code is? Data preprocessing about test.

Thanks for your try! You can explain the problems you meet, thus others can avoid it~~
As for the data preprocessing, if you only want to test, you can reuse the code in my Video Demo.

Using the kinetics_400_categroies.txt you provided, I generate test.csv, top1 can reach ~0.82

But if I have a kinetics_400_categroies.txt (the contents in it are sorted according to A-Z), and I generate test.csv, the top1 is only 0.03.

Hi! Does the 0.82 means 82%? If it means 82%, the testing is correct.

I have thought 0.82 means 0.82%......
Because we use different label indexes, it is sure that the accuracy is low ~~
Thanks for your try!

eeee，I mean top1 is 81.63 and 0.03

As there is no more activity, I am closing the issue, don't hesitate to reopen it if necessary.