Complete user needs analysis

TODO

Analyze input from GCWP session
Determine if we need additional sessions
Follow-up session with DS team to review and prioritize against roadmap
Final roll up so we can refer back for MVP + future phases

Outcomes

Support "Proof of concept for end to end integration with a pilot" goal.

Deliverables

Final roll up so we can refer back for MVP + future phases

Estimated Effort

[ ] XS: 1 to 2 hours
[ ] S: half a day
[ ] M: 1-2 day
[x] L: 1 week
[ ] XL: Move to an epic

Out of scope

Allowing input until Nov. 22. Aim to have follow up session with to DS group by end of Nov.

Cards are grouped - we're booking a session to review. Post the link to the document so people can review them async before the meeting.
Session next week.
Everyone to review the document before the meeting.

@adeyfarah to book a session for this on Tuesday afternoon at 3pm.

To review:  All the user needs https://docs.google.com/spreadsheets/d/1hh-jy4HQ6pXrBVDtkjotD4ApFgORwyvoQFHQapp8Po8/edit#gid=1455223052
Summary: https://miro.com/app/board/o9J_lkSA6hQ=/

reviewed by Laura! tx


Update tibber-graph.js

Modified to show tomorrow's electricity prices 0-12 when time is more than 14. Also change color and dims tomorrow's bars even further to indicate that it is tomorrows prices.

Hej.
Grymt intiativ.
Jag gjorde förändringen som du noterade att du vill ha (som även jag ville ha).
"I'd like to have it change at 13.00 and update the graph to show today 12-23 and tomorrow 00-11. The tomorrow data is already in priceObject.tomorrow"

Aha! Thanks a lot for the PR and update. However it took a little while for me to understand that it was changed. :) Now I see that the first part of the graph shows tomorrow, but I find it a little unintuitive.
The image below shows like how I wanted to show it, so tomorrow comes after today, which i think would be easier to follow.
Are you able to rearrange it to be shown like this? This unfortunately requires you to mess with the numbers and alignments below.. :)

I tried to do it first but did not get it to work directly so I just wanted to get something out. :)
I agree that it is better to change so that the time scale is 12-12 when tomorrow's prices has arrived.
I will take a look at it next weekend.
/T

From: Niclas @.>
Sent: 31 October 2022 16:58
To: nicmar/tibber-widget @.>
Cc: Tobias Lind @.>; Author @.>
Subject: Re: [nicmar/tibber-widget] Update tibber-graph.js (PR #1)
Aha! Thanks a lot for the PR and update. However it took a little while for me to understand that it was changed. :) Now I see that the first part of the graph shows tomorrow, but I find it a little unintuitive.
The image below shows like how I wanted to show it, so tomorrow comes after today, which i think would be easier to follow.
Are you able to rearrange it to be shown like this? This unfortunately requires you to mess with the numbers and alignments below.. :)
[image]https://user-images.githubusercontent.com/3955579/199052142-76234d66-a1b2-4fcd-813e-009af388fef3.png
—
Reply to this email directly, view it on GitHubhttps://github.com/nicmar/tibber-widget/pull/1#issuecomment-1297309975, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AD2GXVMSQXVVU7GNNCTSLSLWF7UEDANCNFSM6AAAAAARSNZP54.
You are receiving this because you authored the thread.Message ID: @.***>

Updated so that timeline changes when new prices arrives.

Nice work!

Thanks.
I have some js code in another repo https://github.com/TobiasLind/tibber-dashboard that plot your historical consumption and historical prices of you want to steal any js for other tibber projects.
/T

From: Niclas @.>
Sent: 02 November 2022 13:25
To: nicmar/tibber-widget @.>
Cc: Tobias Lind @.>; Author @.>
Subject: Re: [nicmar/tibber-widget] Update tibber-graph.js (PR #1)
Nice work!
—
Reply to this email directly, view it on GitHubhttps://github.com/nicmar/tibber-widget/pull/1#issuecomment-1300286213, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AD2GXVM235AG52QDIO5QKV3WGJMVNANCNFSM6AAAAAARSNZP54.
You are receiving this because you authored the thread.Message ID: @.***>


Wrapping Vue.observeable() in a proxy breaks it

Version
2.6.10
Reproduction link
https://codesandbox.io/embed/w2my2j2w8?codemirror=1
Steps to reproduce
Wrapping an observeable in a proxy to capture set operations so you can do Vue.set() prevents the observer from working, and correctly passing global state via a global mixin
What is expected?
Vue.observable() to work correctly
What is actually happening?
Not working, state isn’t reflected on observer deps

This... just won't work because you are returning recursive proxies - and Vue 2's getter/setter overwrite via Object.defineProperty doesn't work on actual proxies.
hint: if it is that easy we would have already done it in Vue 2.

Okay, thanks for the quick reply.
Keen for Vue 3 then.


Upload step fails with 'detected dubious ownership in repository...'

Full log:
Run<EMAIL_ADDRESS>/usr/bin/docker exec  4[7](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:8)fe6deb3c3fc61d[8](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:9)fe751548f556cea802a06fdb639e461df98c9feacc90516 sh -c "cat /etc/*release | grep ^ID"
Validating that this action was invoked from a pull request...
Getting difference within the pull request...
fatal: detected dubious ownership in repository at '/__w/salesforce/salesforce'
To add an exception for this directory, call:

	git config --global --add safe.directory /__w/salesforce/salesforce
node:internal/errors:841
  const err = new Error(message);
              ^

Error: Command failed: git remote add -f destination https://github.com/Chief-eng/salesforce.git
fatal: detected dubious ownership in repository at '/__w/salesforce/salesforce'
To add an exception for this directory, call:

	git config --global --add safe.directory /__w/salesforce/salesforce

    at checkExecSyncError (node:child_process:828:11)
    at execSync (node:child_process:8[9](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:10)9:15)
    at getDiffInPullRequest (/__w/_actions/mitchspano/sfdx-scan-pull-request/v0.1.7/index.js:96:3)
    at main (/__w/_actions/mitchspano/sfdx-scan-pull-request/v0.1.7/index.js:325:3)
    at Object.<anonymous> (/__w/_actions/mitchspano/sfdx-scan-pull-request/v0.1.7/index.js:333:1)
    at Module._compile (node:internal/modules/cjs/loader:1[10](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:11)5:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:[11](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:12)59:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:[12](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:13)) {
  status: 128,
  signal: null,
  output: [
    null,
    Buffer(0) [Uint8Array] [],
    Buffer(196) [Uint8Array] [
      102,  97, 116,  97, 108,  58,  32, 100, 101, 116, 101,  99,
      116, 101, 100,  32, 100, 117,  98, 105, 111, 117, 115,  32,
      111, 119, 110, 101, 1[14](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:15), 1[15](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:16), 104, 105, 112,  32, 105, 110,
       32, 114, 101, 112, 111, 115, 105, 1[16](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:17), 111, 114, 121,  32,
       97, 116,  32,  39,  47,  95,  95, 119,  47, 115,  97, 108,
      101, 115, 102, 111, 114,  99, 101,  47, 115,  97, 108, 101,
      115, 102, 111, 114,  99, 101,  39,  10,  84, 111,  32,  97,
      100, 100,  32,  97, 110,  32, 101, 120,  99, 101, 112, 116,
      105, 111, 110,  32,
      ... 96 more items
    ]
  ],
  pid: 266,
  stdout: Buffer(0) [Uint8Array] [],
  stderr: Buffer(196) [Uint8Array] [
    102,  97, 116,  97, 108,  58,  32, 100, 101, 116, 101,  99,
    116, 101, 100,  32, 100, 1[17](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:18),  98, 105, 111, 117, 115,  32,
    111, 1[19](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:20), 110, 101, 114, 115, 104, 105, 112,  32, 105, 110,
     32, 114, 101, 112, 111, 115, 105, 116, 111, 114, 121,  32,
     97, 116,  32,  39,  47,  95,  95, 119,  47, 115,  97, 108,
    101, 115, 102, 111, 114,  99, 101,  47, 115,  97, 108, 101,
    115, 102, 111, 114,  99, 101,  39,  10,  84, 111,  32,  97,
    100, 100,  32,  97, 110,  32, 101, 1[20](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:21),  99, 101, 112, 116,
    105, 111, 110,  [32](https://github.com/Chief-eng/salesforce/actions/runs/4611359737/jobs/8151027057#step:5:33),
    ... 96 more items
  ]
}

Closing this issue as the root cause actually has nothing todo with this excellent plugin.
If anyone else finds this issue via search, here's what happened to me.
I was using a container parameter, specifically container: salesforce/salesforcedx:latest-full and not installing the SFDX cli, as it comes with that container. For whatever reason, running this plugin inside a container fails with a dubious ownership fatal error (above). Running this without the container, on just 'ubuntu-latest' works fine.


[FLINK-6281] Create TableSink for JDBC.

This PR implements the StreamTableSink interface for the JDBC connectors so that the streaming SQL APIs can directly interact with them.

Hi @haohui, I think a JdbcTableSink would be a great feature!
However, there is a big issue with wrapping the JdbcOutputFormat. OutputFormats are not integrated with Flink's checkpointing mechanism. The JdbcOutputFormat buffers rows to write them out in batches. When records are buffered that arrived before the last checkpoint, they will be lost in case of a failure because they will not be replayed.
The JdbcTableSink should be integrated with Flink's checkpointing mechanism. In a nutshell, it should buffer records and commit them to the database when a checkpoint is taken. I think we need to think a bit more about a proper design for this feature. @zentol and @aljoscha might have some thoughts on this as well as they are more familiar with the implementation of checkpoint-aware sinks.
What do you think?

Thanks for the review. I'm not aware of the fact that OutputFormats are not integrated with Flink's checkpointing mechanism.
To address this problem, maybe we can do something similar to the FlinkKafkaProducerBase? What do you think @zentol and @aljoscha ?

There is GenericWriteAheadSink, which buffers elements and writes to Cassandra. I think this needs some more thought, maybe a design outline on the Jira issue. I'm also not 100 % sure if the generic write-ahead sink will work for this. @zentol might have a better answer, though.

The GenericWriteAheadSink would work for this. It can be implemented just the CassandraWriteAheadSink. Since we can also use transactions it can be a bit more sophisticated even.

Thanks for your pointer of the prototype!

Do you intend to provide exactly-once guarantees for arbitrary updates?

As I think about it a little bit more, I think it might make sense to start with the at-least-once semantic first. In practice we make the JDBC call idempotent using INSERT IF NOT EXISTS.
The exactly-once part is more tricky and let's separate it out for now. What do you think?

I think an at-least-once sink with support for upserts would also be very useful.

Great, just wanted to make sure we're on the same page.
Why did you revert the usage of the GenericWriteAheadSink? Now we're back to where we started, not having any guarantee that data is written when a checkpoint is being completed.

Correct me if I'm wrong -- will something like the following work?
+	@Override
+	public void snapshotState(FunctionSnapshotContext context) throws Exception {
+		outputFormat.flush();
+	}

@fhueske @zentol can you please take another look? Thanks.

+1.

Thanks @zentol!
I'll have a look at it as well.

It is important to have some flexibility on the query as different SQL engines have slightly different syntax on DML.
For example, SQLite supports INSERT OVERWRITE where MySQL supports REPLACE INTO to upsert records with unique keys.
I like the APIs you proposed, do you think it addresses your concerns if it forwards the parameters to JDbCOutputFormat and construct it internally?

Yes, I think that would work well. We could provide a builder for the table source and forward calls to the JDBCOutputFormatBuilder.
Regarding the query template: we can also make it an optional parameter to override the standard INSERT INTO ... VALUES template if set.
If you want the source to support upsert writes you might want to implement the UpsertStreamTableSink rather than the AppendStreamTableSink. The UpsertStreamTableSink supports append writes as well as updates and deletes by exposing the unique key fields of a Table.

It would also be good to add the JdbcTableSink to the documentation (incl. an example) once the API is fixed.

Thanks @fhueske ! Updated the PR to address the comments.

Thanks for the update @haohui.
I'll merge this PR :-)
I have to change some of the type mappings to make it work with JDBCOutputFormat. I think it would be a good idea to redesign the type handling in JDBCOutputFormat. I'll open a JIRA for that.
Thanks, Fabian


Merge nested objects together

Hi altogether, I have a simple question:
DataObjectParser.prototype.set overwrites property sections complete when adding properties to the resulting model. Is it possible to add a merge mechanism like $obj[$key] = _.merge($obj[$key]||{},$data); in line 35 in dataobject-parser.js? So nested properties can survive in the merge process like in this example:
dataobjParser.set('a',{projectId : 'common',route : 'a',fragment:{key : 'looser', anotherProp : 'I will survive'}})
dataobjParser.set('a', {projectId : 1, route : 'a',fragment:{key : 'winner'}})

I would like to see the the property 'anotherProp' from the first object even when overwriting the second one...
Greetings Olli

Not comfortable with adjusting behavior of set method but we could add a merge method so as to fit your needs.


[FEATURE] Change encryption key option

Is your feature request related to a problem? Please describe.
Their is currently no option to change encryption key when expired.
Add a feature to do that.
Describe the solution you'd like

make a new modal for that
verify password and check encryption key
update that in local storage
when user log in on new device then prompt to set private key again

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@priyanshuverma-dev
go for it


BGP router only learn one bgp route

test service use EIP <IP_ADDRESS>,  the pod assigned to two Node (<IP_ADDRESS>, <IP_ADDRESS>),

porter-manager can find 2 routes

but bgp neighbor only learn one route  <IP_ADDRESS> nexthop via <IP_ADDRESS>

I use gobgpd as test BGP Router
global:
    config:
        as: 65109
        router-id: <IP_ADDRESS>
neighbors:
    - config:
        neighbor-address: <IP_ADDRESS>
        peer-as: 65053

i expect BGP Router learn to route

env:
porter version: v0.4.1
k8s version: 1.17.9

You can follow the steps below to see if add-path is not enabled by checking the relevant configuration properties of neighbor
root@i-y0a0i550:~# kubectl exec -n porter-system  porter-manager-847f66dfc7-cl8nw  -ti /bin/sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
/ # gobgp neighbor
Peer          AS  Up/Down State       |#Received  Accepted
<IP_ADDRESS> 50003 00:19:05 Establ      |        0         0
/ # gobgp neighbor <IP_ADDRESS>
BGP neighbor is <IP_ADDRESS>, remote AS 50003
  BGP version 4, remote router ID <IP_ADDRESS>
  BGP state = ESTABLISHED, up for 00:19:14
  BGP OutQ = 0, Flops = 0
  Hold time is 90, keepalive interval is 30 seconds
  Configured hold time is 90, keepalive interval is 30 seconds

  Neighbor capabilities:
    multiprotocol:
        ipv4-unicast:   advertised and received
        ipv6-unicast:   received
    route-refresh:      advertised and received
    extended-nexthop:   advertised
        Local:  nlri: ipv4-unicast, nexthop: ipv6
    graceful-restart:   received
    4-octet-as: advertised and received
    add-path:   advertised and received
      Local:
         ipv4-unicast:  send
      Remote:
         ipv4-unicast:  receive/send
         UnknownFamily(1174405191):     none
    enhanced-route-refresh:     received
    long-lived-graceful-restart:        received
  Message statistics:
                         Sent       Rcvd
    Opens:                  1          1
    Notifications:          0          0
    Updates:                0          1
    Keepalives:            39         44
    Route Refresh:          0          0
    Discarded:              0          0
    Total:                 40         46
  Route statistics:
    Advertised:             0
    Received:               0
    Accepted:               0
/ #

You can reference this doc https://github.com/osrg/gobgp/blob/master/docs/sources/add-paths.md

You can reference this doc https://github.com/osrg/gobgp/blob/master/docs/sources/add-paths.md

3Q,
enable add-paths  can learn  right routes

global:
    config:
        as: 65109
        router-id: <IP_ADDRESS>
neighbors:
    - config:
        neighbor-address: <IP_ADDRESS>
        peer-as: 65053
      add-paths:
        config:
          receive: true
          send-max: 8


Remove from Hacking.md the minikube section and make platform-container

minikube section is (?) no longer applies nor is make platform-container supported, remove them from Hacking.md

What file are you talking about?  I don't see any file Hacking.md in the Go distribution.  Do you have a URL?

What file are you talking about? I don't see any file Hacking.md in the Go distribution. Do you have a URL?

this file : https://github.com/airmap/platform/blob/master/HACKING.md


Proxying with HTTP CONNECT and OPA to enforce block rules does not work as expected

Title: Proxying with HTTP CONNECT and OPA to enforce block rules does not work as expected
Description:
I have a dynamic forward proxy as described in https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/dynamic_forward_proxy_filter#config-http-filters-dynamic-forward-proxy being used to implement a forward proxy. I have used instructions from https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/upgrades#:~:text=Envoy also has support for,Find below some usage scenarios.&text=Note that when using HTTP,when you have the choice. to configure support for HTTP CONNECT. I am also trying to use OPA as an external authorizer to implement a blacklist for blocking certain websites.
Without OPA, both HTTP and HTTPS based sites are proxied correctly. However, with OPA in the mix only HTTP based sites work and for HTTPS, OPA does not get the request from Envoy and the request times out eventually.
Repro steps:
HTTP proxying working
$ curl -k -v -x <IP_ADDRESS>:10000 http://neverssl.com

Rebuilt URL to: http://neverssl.com/
Trying <IP_ADDRESS>...
 CSS from Mark Webster https://gist.github.com/markcwebster/9bdf30655cdd5279bad13993ac87c85d -->
    </style>

NeverSSL

What?

This website is for when you try to open Facebook, Google, Amazon, etc
on a wifi network, and nothing happens. Type "http://neverssl.com"
into your browser's url bar, and you'll be able to log on.

How?

neverssl.com will never use SSL (also known as TLS). No
encryption, no strong authentication, no HSTS,
no HTTP/2.0, just plain old unencrypted HTTP and forever stuck in the dark
ages of internet security.

Why?

Normally, that's a bad idea. You should always use SSL and secure
encryption when possible. In fact, it's such a bad idea that most websites
are now using https by default.

And that's great, but it also means that if you're relying on
poorly-behaved wifi networks, it can be hard to get online.  Secure
browsers and websites using https make it impossible for those wifi
networks to send you to a login or payment page. Basically, those networks
can't tap into your connection just like attackers can't. Modern browsers
are so good that they can remember when a website supports encryption and
even if you type in the website name, they'll use https.

And if the network never redirects you to this page, well as you can
see, you're not missing much.

* Connection #0 to host <IP_ADDRESS> left intact
HTTPS proxying not working
$ curl -k -v -x <IP_ADDRESS>:10000 https://www.google.com

Rebuilt URL to: https://www.google.com/
Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 10000 (#0)
allocate connect buffer!
Establish HTTP proxy tunnel to www.google.com:443

CONNECT www.google.com:443 HTTP/1.1
Host: www.google.com:443
User-Agent: curl/7.58.0
Proxy-Connection: Keep-Alive

... times out eventually
Config:
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ .Values.envoy_proxy.name }}-config"
namespace: {{ .Values.namespace }}
labels:
config: "{{ .Values.envoy_proxy.name }}-config"
data:
envoy.yaml: |
static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: <IP_ADDRESS>
port_value: 10000
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
cluster: dynamic_forward_proxy_cluster
- match:
connect_matcher:
{}
route:
cluster: dynamic_forward_proxy_cluster
upgrade_configs:
- upgrade_type: CONNECT
connect_config:
{}
http_filters:
- name: envoy.filters.http.ext_authz
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
transport_api_version: V3
with_request_body:
max_request_bytes: 8192
allow_partial_message: true
failure_mode_allow: false
grpc_service:
google_grpc:
target_uri: opa:9191
stat_prefix: opa
timeout: 10s
- name: envoy.filters.http.dynamic_forward_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig
dns_cache_config:
name: dynamic_forward_proxy_cache_config
dns_lookup_family: V4_ONLY
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
http_protocol_options: {}
upgrade_configs:
- upgrade_type: CONNECT
clusters:
- name: dynamic_forward_proxy_cluster
connect_timeout: 1s
lb_policy: CLUSTER_PROVIDED
cluster_type:
name: envoy.clusters.dynamic_forward_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig
dns_cache_config:
name: dynamic_forward_proxy_cache_config
dns_lookup_family: V4_ONLY

Any clues as to why OPA does not get called for HTTP CONNECT requests? Is there any obvious issue with the configuration used. Any help would be greatly appreciated!

@mattklein123 , i observed that the HTTP CONNECT requests are not passed to ext_authz filters only GET is sent. This is probably expected but was not sure, so thought to check. For Lua filters, i do see the filter get all the requests.

@mattklein123 , i observed that the HTTP CONNECT requests are not passed to ext_authz filters only GET is sent. This is probably expected but was not sure, so thought to check.

there is probably an issue here but it was not confirm hence closing.


use_ssl gives error when sending email??

I am trying to sent alert on my email but when i set use-ssl true in rule yaml file they give me this error:
caused by: SSLError(EOF occurred in violation of protocol (_ssl.c:765))
How can i solve this error?

Are you sure the endpoint is actually using SSL? Does it give you an error when use_ssl is false?


fix the issue of document pictures

Issue #, if available:
Description of changes:
preview
Checklist:

[ ] Have you successfully deployed to an AWS account with your changes?
[ ] Have you successfully deployed to an AWS China account with your changes?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully tested with your changes locally?
[ ] If new dependencies have been added, have they been pinned to specific versions?
[ ] Is this change also required on the AWS Solution version?
[ ] Have you updated openapi.yaml if you made updates to API definition (including add, delete or update parameter and request data schema)?
[ ] If you had to run manual tests, have you considered automating those tests by adding them to end-to-end tests?
[ ] If you are updating the changelog and vending out a new release, have you updated versionNumber and versionDate in .defaults.yml

AS review ticket id:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #94 (dc69f61) into develop (e236cf4) will decrease coverage by 8.98%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop      #94      +/-   ##
===========================================
- Coverage    51.71%   42.73%   -8.99%
===========================================
  Files          302       17     -285
  Lines        17219      922   -16297
  Branches      2659      173    -2486
===========================================
- Hits          8905      394    -8511
+ Misses        7317      439    -6878
+ Partials       997       89     -908

Impacted Files
Coverage Δ

lib/user/user-authz-service.js
24.07% <0.00%> (-52.40%)
:arrow_down:

lib/helpers/utils.js
21.21% <0.00%> (-45.99%)
:arrow_down:

lib/user/user-service.js
65.21% <0.00%> (-5.38%)
:arrow_down:

...type-config/env-type-config-steps/BasicInfoStep.js

lib/helpers/table-migrator.js

src/parts/files/FileDropZone.js

src/helpers/sage-maker-service.js

lib/plugins/aws-account-mgmt-plugin.js

src/models/studies/StudyPermissions.js

lib/authentication-provider-public-controller.js

... and 278 more

Continue to review full report at Codecov.

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


Add scheduled time

This plugin is great!
Would it be possible to enhance the plug in so that it pulls/sends the time that an item is scheduled for? At the moment if you have a todo in todoist scheduled for '6pm today', the plugin will pull the date, but not the time it is scheduled for.

This should be available in v3.3.1 but only for pulling tasks and not for sending tasks.

That's great! Thank you :)

Breaking change: Did a major refactor. Now when you send tasks, there is a popup to indicate the above parameters. Do update if you require the change.


Issue in Franklin Templeton Segregated Units

Hello team,
Franklin Templeton created few Segregated Portfolio's for some stressed Mutual Funds. The data is read incorrectly in some cases. In the example given below - there are 2 Segregation records - one for qty 215931.176, and second for qty 0.008, but the parser scans the 2nd one as qty 215931.184 ...
{"scheme": "Franklin India Credit Risk Fund- Segregated Portfolio 1 (8.25% Vodafone Idea Ltd-10JUL20-Growth Plan)",
"advisor": "ICICIRON",
"rta_code": "FTI880", "type": "DEBT", "rta": "CAMS", "isin": "INF090I01TJ6", "amfi": "147954", "open": "0.000", "close": "0.000", "close_calculated": "215931.176", "valuation": {"date": "2020-07-17", "value": "0.00", "nav": "0.0818"},
"transactions": [
{"date": "2020-01-24", "description": "Creation of units - Segregated Portfolio\t\t215,931.176", "amount": "0", "units": "215931.176", "nav": "0", "balance": "215931.176", "type": "SEGREGATION", "dividend_rate": null},
{"date": "2020-01-24", "description": "Creation of units - Segregated Portfolio\t\t0.008", "amount": "0", "units": "215931.184", "nav": "0", "balance": "215931.184", "type": "SEGREGATION", "dividend_rate": null},
{"date": "2020-06-15", "description": "Payment - Units Extinguished", "amount": "-1338.33", "units": "-16360.996", "nav": "0.0818", "balance": "199570.188", "type": "REDEMPTION", "dividend_rate": null},
{"date": "2020-07-10", "description": "Payment - Units Extinguished", "amount": "-16324.84", "units": "-199570.188", "nav": "0.0818", "balance": "0.000", "type": "REDEMPTION", "dividend_rate": null}]}

It looks like the addition of SEGREGATION transaction types doesn't consider multiple incoming transactions in a segregated folio.
ref: https://github.com/codereverser/casparser/commit/132386ea36438cb87691871fee842d8a83d77183
shall fix this soon. Can you please post a partial screenshot of the transactions for testing the fix?

I suspect the field 'Description' seems to mess up the Qty ...
"description": "Creation of units - Segregated Portfolio\t\t0.008"
Have attached the screenshot of actual CAMS statement

Yes. that's one issue. but there is also this line, that sets wrong units for a segregated transaction
                 units = amt
                 balance = amt
                 amt = 0
                 nav = 0

Can you please try testing with the pre-release version 0.5.2b1?
pip install casparser==0.5.2b1

Thanks!! Tested the version and works fine for me!!
On Sat, 7 Aug 2021 at 00:51, Sandeep Somasekharan @.***>
wrote:

Closed #46 https://github.com/codereverser/casparser/issues/46 via #47
https://github.com/codereverser/casparser/pull/47.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/codereverser/casparser/issues/46#event-5124454088,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AU4R7ALRPWM7GKJYXJVXJYLT3QY4ZANCNFSM5AZIU7MA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

Many thanks for testing.
btw I had a query if you can answer.. How do you calculate capital gains on such a folio? There is no purchase price associated with the payout transactions. Does it need to be matched with the purchase from the original/parent  fund?

I believe the entire thing will have to taken as Capital Gains. And it
should be indexed against the original purchase date.
But, I am no tax expert:)
Regards
Ram
On Wed, 11 Aug 2021 at 12:22 PM, Sandeep Somasekharan <
@.***> wrote:

Many thanks for testing.
btw I had a query if you can answer.. How do you calculate capital gains
on such a folio? There is no purchase price associated with the payout
transactions. Does it need to be matched with the purchase from the
original/parent fund?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/codereverser/casparser/issues/46#issuecomment-896549615,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AU4R7AKT35EX7FPEMT7IWOTT4IM4BANCNFSM5AZIU7MA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.


Player Chicken not prioritized over taking potion

Happened to me several times now that instead of chicken the bot first trys to trink potions even so the take potions % are lower then the chicken %:
chicken=0.8
take_health_potion=0.7
take_rejuv_potion_health=0.6
If players for example death teleports (also happens quite often) right into the pindle group he should be hit, fall below chicken% and chicken right away, but instead it starts a wild trinking of potions orgy and health gets lower and lower until he dies.
[2022-02-27 16:31:22,702] INFO         Health Manager is now active
[2022-02-27 16:31:25,814] DEBUG      Found Match: PINDLE_0 (78.4% confidence)
[2022-02-27 16:31:29,261] DEBUG      Teleport cancel detected. Try same teleport action again. (0.0226)
[2022-02-27 16:31:30,470] DEBUG      Drink rejuv potion in slot 3. HP: 59.0%, Mana: 0.0%
[2022-02-27 16:31:30,644] DEBUG      Drink health potion in slot 1. HP: 59.3%, Mana: 0.0%
[2022-02-27 16:31:30,662] DEBUG      Drink mana potion in slot 2. HP: 59.3%, Mana: 0.0%
[2022-02-27 16:31:37,321] DEBUG      Drink mana potion in slot 2. HP: 100.0%, Mana: 49.2%
[2022-02-27 16:31:38,240] DEBUG      Drink health potion in slot 1. HP: 81.2%, Mana: 88.8%
[2022-02-27 16:31:41,422] WARNING    Trying to chicken, player HP 0.0%!
[2022-02-27 16:31:41,906] DEBUG      Waiting for Template ['SAVE_AND_EXIT_NO_HIGHLIGHT', 'SAVE_AND_EXIT_HIGHLIGHT']
[2022-02-27 16:31:41,923] DEBUG      Found Match: SAVE_AND_EXIT_NO_HIGHLIGHT (77.8% confidence)
[2022-02-27 16:31:42,273] WARNING    You have died!
Chicken% should always be prioritized if higher than drinking potions - so the player would be hit and log of immediately and not die drinking potions while getting hit locked. Guess thats what chicken is for?!
or
if potion% is higher then chicken % once the health falls below the chicken % for the first time it should also chicken right away.

"Chicken% should always be prioritized if higher than drinking potions"
chicken=0.8
take_health_potion=0.7
You never put chicken higher then pots threshold EVER. Its a bad config. Correct your config and im sure you wont run into this issue.

Correct your config and im sure you wont run into this issue.

So lets see how the original settings perform:
take_health_potion=0.8
take_rejuv_potion_health=0.42
chicken=0.35
lets say with a bot with 1.000 health.
Sorc bot teleports right into a group of monsters (eg. the pindle death dive) - human behavior would be to log out immediately or teleport out of the group immediately. Bot does neither, On the contrary, Bot stops to attack and stands still and is hit by the first monster in reach for lets say 100 damage, trinks a potions, giving the next monster time to join in, damage is now 200 per hit, drinks a potion, next monster joins in damage now 300, trinking potions can't keep up with the damage anymore, until bot runs out of potions eventually life is down to the chicken threshold of 350 life or less, now bot tries to chicken but all the monster around had time to join in total damage taken is now in the thousands, Trying to chicken bot dies.
A full tal rasha sorc with cta died this way. So did my next 4 sorcs.
Not sure if the chicken is triggered as a priority if the health falls under its threshold or the higher percent take_health/rejuv gets triggered first and by that cancelling the chicken -> which it should not. First time health drops below the chicken threshold the bot should chicken as a priority over trying to heal otherwise it will be too late.

I would join the discord chat to troubleshoot this. You do not have your botty setup correctly. Sorcs do not face check pindle.

she does.
with the teleport cancel detection bug -> bot says "teleport cancel detected. try same teleport again"
even so the initial teleport went through and teleports once more from the safe attack distance right into pindel.
(doesn't matter by the way to what cast_frames you set the bot, mine would be 8 yet I use 20 ... still happens from time to time)
-> When the robot runs, it goes deep into Pindle Skin and dies #578

I would join the discord chat to troubleshoot this. You do not have your botty setup correctly. Sorcs do not face check pindle.
I'll try to check by later - right now I'm at work xD

I invite you to review botty/src/health_manager.py

will review!


add QR option in factorize (for dense ITensors)

The main goal of this PR is to re-enable the usage of QR in orthogonalize! for dense ITensors, as discussed in https://github.com/ITensor/ITensors.jl/issues/220.
One thing I was not sure about is what to do with the Spectrum object in the case of QR. Currently I set it to nothing but maybe one would like to actually return an empty spectrum with zero truncation error.

Thanks for the contribution Ori, I'll take a closer look in the next few days.
I think returning a Spectrum object with zero truncation is better (since this is supposed to be a black box function, where QR is just one special way to do a decomposition which happens to not truncate).

Also one thing I was wondering about this functionality was whether ortho = "right" should do something like an LQ decomposition. But maybe "LQ" could just be a separate option (and perhaps the way we use ITensor indices, it already is something like an LQ decomposition). I think there could be situations where you specifically want either upper triangular or lower triangular matrices, like in more advanced methods for gauging MPOs that are sums of local terms (https://arxiv.org/abs/1909.06341).

It’s not a totally obvious thing, but I’d also vote for an empty Spectrum object (making sure that it reports a 0.0 truncation error) over returning nothing. The argument I’d make is that it will work more smoothly in generic code that sometimes truncates and sometimes doesn’t.

I also think it's better to return something. My main problem with returning a Spectrum is that it's not really a spectrum, just truncation information, so it might lead to some problems if one tries to compute entanglement-entropy with entropy(spec). I guess we can make entropy throw an exception in that case.
Another option would be to rethink the name of the Spectrum object or maybe adding a type parameter to distinguish the different cases.

Also one thing I was wondering about this functionality was whether ortho = "right" should do something like an LQ decomposition.

How I implemented it now, if ortho=="right" it amounts to calling qr(A,Rinds). I guess this is equivalent to doing QR decomp. of A_{lr}^T and then returning  R^T , Q^T  which is in fact an LQ decomposition ?

I also think it's better to return something. My main problem with returning a Spectrum is that it's not really a spectrum, just truncation information, so it might lead to some problems if one tries to compute entanglement-entropy with entropy(spec). I guess we can make entropy throw an exception in that case.
Another option would be to rethink the name of the Spectrum object or maybe adding a type parameter to distinguish the different cases.

Good point about the entropy function (and also the same would apply for the eigs function here). What we could do is extend the parametrization of Spectrum here to Union{<:AbstractVector, Nothing}. Then, for cases like this where it is not natural to compute the eigenvalues, we can make the eigs field nothing. (Also a side point, it might be nice to rename eigs to eigavals to be in line with the Julia LinearAlgebra eigvals function).

Also one thing I was wondering about this functionality was whether ortho = "right" should do something like an LQ decomposition.

How I implemented it now, if ortho=="right" it amounts to calling qr(A,Rinds). I guess this is equivalent to doing QR decomp. of A_{lr}^T and then returning R^T , Q^T which is in fact an LQ decomposition ?

Indeed, it looks like in your current implementation, ortho = "left" returns a QR decomposition (A_lr = Q_lq R_qr) and ortho = "right" returns an LQ decomposition (A_lr = L_lq Q_qr). Perhaps we want ortho = "right" to return an RQ decomposition. Then we can have a separate which_decomp = "ql" option (which we can add later) that either returns a QL or LQ decomposition depending on the ortho keyword. I guess I would expect if the keyword is which_decomp = "qr", it would always return an upper triangular matrix for the non-orthogonal factor. @emstoudenmire, do you have an opinion on this choice?
Taking a step back from this, I would say that the only guarantee of the function factorize is that if you use ortho = "left" or ortho = "right", the left or right factors are orthogonal bases. Then, which_decomp gives more specific hints about how it should do the decomposition. If you want more guarantees about the output, then you should use more specific decomposition functions, like qr(...), and we can offer other options like rq(...), ql(...), and lq(...). So I would consider this choice to be non-breaking (in the sense that people should be aware specific outputs can change, like in this PR if no truncation is requested), and we can decide later if one or the other is more useful.

In the latest NDTensors and ITensors, Spectrum now allows the eigs field to be nothing, as you can see in these tests: https://github.com/ITensor/ITensors.jl/blob/master/test/decomp.jl#L86. So we can have the QR version of factorize return that type of Spectrum object.
I think also for now, we can just keep the ortho = "right" case as it is, and decide later about whether we want it to do an RQ or LQ decomposition.

Thanks Matt I'll update the PR.

I think also for now, we can just keep the ortho = "right" case as it is, and decide later about whether we want it to do an RQ or LQ decomposition.

I was just now looking at this, it seems that there is no rq wrapper currently implemented in LinearAlgebra (one can access the LAPACK functions directly though), so this gives me the feeling that it would be cleaner to use LQ decomposition at the moment.

Yes, I also noticed there is no rq wrapper in LinearAlgebra. We may want that eventually, but not a high priority right now.

I updated the PR to return an empty Spectrum. I also tried to update the docstring a bit, not sure if it is clear enough.

Looks good Ori, thanks for the contribution! I started working on the QN version of the QR decomposition, I'll try to finish that soon.

Thanks Ori! Appreciate the high-quality code as usual


LogoCDT: incorrect result with restoreConformity = true

LogoCDT produced invalid result when restoreConformity=TRUE parameter for addConstraints.
I don't know if this option should be valid.

This is unexpected.  I will have to revision the LogoCDT to see what's
going on.  I might ask you to run your geometry checking code to see if the
geometry is okkay.
On Oct 8, 2017 10:04 AM, "Martin JANDA"<EMAIL_ADDRESS>wrote:

LogoCDT produced invalid result when restoreConformity=TRUE parameter for
addConstraints.
I don't know if this option should be valid.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/gwlucastrig/Tinfour/issues/19, or mute the thread
https://github.com/notifications/unsubscribe-auth/ASyR4dr2IkU7Ok8ozajzukeDWxhyqpuxks5sqNZZgaJpZM4Pxtx2
.

JTS validation - no error
Integrity Check Results:
No Error Detected
No Delaunay violations detected
restoreConformity=FALSE

restoreConformity=TRUE

Thanks. I will see if i can troubleshoot this issue.
On Oct 9, 2017 12:00 AM, "Martin JANDA"<EMAIL_ADDRESS>wrote:

JTS validation - no error
Integrity Check Results:
No Error Detected
No Delaunay violations detected
restoreConformity=FALSE
[image: logo-cdt-rc-false]
https://user-images.githubusercontent.com/7425758/31324806-d0c0eee2-acb6-11e7-8e42-57be7d3846d7.png
restoreConformity=TRUE
[image: logo-cdt-rc-true]
https://user-images.githubusercontent.com/7425758/31324810-d5b9b424-acb6-11e7-8b02-6f4b0d2a7863.png
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/gwlucastrig/Tinfour/issues/19#issuecomment-335063082,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ASyR4f221JIjqU18dYPWF2SFR_l2Pyv0ks5sqZpQgaJpZM4Pxtx2
.

The picture was a big help.   Thanks again.
The issue occurs when the restore-conformity operations create new edges.  For example, note that the left edge of the letter D gets split into two smaller edges when conformity is restored.  Unfortunately, the code is not correctly transcribing all the area-related attributes when the new edges are created. I will be reviewing the code and making sure that these get added.  Doing so will require some care because the details are important to the correct functioning of the code.  I intend to make these changes in the incremental-TIN classes, but it may be better to add a new "edge-split" method to the edge pools to accomplish this.

Martin,
While you're waiting for me, here's something you can try.  In SemiVirtualIncrementalTin.java, about line 2120, there is a line that reads am.setConstrained(mb.getConstraintIndex()).  On the next line, add the following block
if(mb.isConstrainedAreaMember()){           am.setConstrainedAreaMemberFlag();       }
This occurs in the restoreConformity method where the line is split.  I need to check my notes and think a bit about the way the constraint flags are set.  This may be all that's needed. But there may be a few more changes required, particularly with regard to preserving which side of the edge the area flags are assigned to.

I am working on a fix for this issue.  The temporary fix that I suggest to Martin will become part of the permanent code. I hope to have an update ready sometime in the next week or two.
Unfortunately, the feature the issue describes is not well documented. In fact, I had to refer back to my personal notes to clarify how it works.  Also, it turns out that the names I selected for the relevant methods in the IConstraint interface were not good choices.   So I’m going to offer some explanation here.   And when I post an update to the code, I may be renaming the method names to something more descriptive of their meaning and function.
So a long explanation follows.  Those who are interested can read it.  For others, I will post a much shorter explanation when I submit the code fixes and close out this item.
Please feel free to comment since, as always, I think it is important that users help shape the direction of the project.
The Long Explanation:
For the constraint classes, I considered the idea of enabling a constraint instance to serve as the boundary between two regions. For example, think of an application where constraints were based on national borders. France borders Spain and, just for added complexity, Andorra borders both.  The problem with that feature was that it meant that a constraint edge would have to carry extra attributes for each bounding entity.   Extra attributes would require more memory use.  Most likely, that would mean an additional 2 elements, or 2x4=8 bytes, per edge.   For each vertex in a Delaunay triangulation of sufficient size, there are approximately 3 edges per vertex.  Thus the memory use of Tinfour would increase by 24 bytes per vertex.  For the standard implementation this would be an increase of 10 percent (up from 240 bytes per vertex).  For the SemiVirtual implementation (120 bytes per vertex), the relationship would be more complicated, but it would amount to a maximum of about 20 percent.
There are things I can do to reduce the extra memory, though it would add complexity to the implementation.  If there is a requirement to do so, I can implement derived edge classes to be used only in those cases where edges were derived from constraints. I would also have to add special handling in the edge-pool classes to store the special edges separately from regular edges.  And I'd have to make sure that the extra conditional logic required to support this function does not bog down processing. All of this is feasible, but I want to have a user with an identified need before I do so.  I also think that there is a fair chance that anyone who wants to use this kind of feature may be better served by more direct computational geometry routines (or mainstream GIS applications)…  But I would be glad to be persuaded otherwise.
Anyway, back when I was writing the original code, there was a feature that I was able to add which would operate within the existing memory footprint.  Although a constraint edge could not define the boundary between two regions, it could be used to indicate the boundaries of the general domain of a data set (the term "domain" being used as it is in mathematics).  For example, in my CDT Logo demo, the constraints partition the plane into two separate domains: The “inside domain” and the “outside domain”.  You could also read these as the “domain” of the data set and the “non-domain” of the data set.
This partitioning scheme also allows Tinfour to perform an action that resembles the idea of a “flood fill” routine used in old-school computer graphics.   The CDT Logo demo uses that to mark all the edges inside and outside the letter domains as belonging to distinct sets.  Then when rendering the feature, it can suppress the lines that are outside the data domain.
So that's how the existing feature works. It also explains some of the special behaviors embedded into the implementation. But, I did make a mistake in naming the methods in the IConstraint interface as “definesDataArea” and “setDataArea”.     The term “area” is vague and simply doesn’t mean the same thing as “domain”.  So in the update, I will probably be renaming these methods to “definesDataDomain” and “setDataDomain” or perhaps something similar.

Thank you for "partial fix to missing constraints"

You're welcome.
I'm still working on this feature.  It's a little complicated, so I am
trying to be careful.
In issue #19, I wrote a long post about changing some of the method names.
Did you have an opinion in that matter.  Will it cause you much
inconvenience if I change the names from "data area" to some variation of
"domain"?
Děkuji
Gary
On Sun, Oct 22, 2017 at 1:43 PM, Martin JANDA<EMAIL_ADDRESS>wrote:

Thank you for "partial fix to missing constraints"
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/gwlucastrig/Tinfour/issues/19#issuecomment-338495455,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ASyR4ff0gTufdnGiTl77GLhktiOZNRAwks5su360gaJpZM4Pxtx2
.

Changes are mostly complete and I am current performing final testing. I expect to upload code this weekend.  The changes improve internal behaviors and add some much needed usage explanation into the javadoc.
The changes will involve renaming the "constraint area" method calls to the "constrained region" variation I described in my earlier post.  In practice, I think that relatively few applications will be affected by this change.  Most of the renamed methods are used by Tinfour internals but are unlikely to be used by external application code.
The three renamed methods that are most like to be used by application code will be:

IConstraint.setDefinesDataArea() becomes setDefinesConstrainedRegion()

IQuadEdge.isConstrainedAreaEdge() becomes isConstrainedRegionEdge()

IQuadEdge.isConstrainedAreaMember() becomes isConstrainedRegionMember()

Thank you. I'm looking forward to use it.

I am still performing testing, but the initial results have been sufficiently successful that I am now submitting changes to address this issue,
The API for the IConstraint interface changed to reflect a better use of math terminology and a more correct use of concepts from plane geometry. Some methods were removed and others renamed. Existing applications that used constraint features will be affected by the following changes:

The setDefinesDataArea() method no longer exists.  The setDefinesConstrainedRegion method was also abandoned.  Instead, all Polygon Contraints define constrained regions
IQuadEdge.isConstrainedAreaEdge() becomes isConstrainedRegionEdge()
IQuadEdge.isConstrainedAreaMember() becomes isConstrainedRegionMember()

I am still working on performance improvements for the semi-virtual incremental tin class when adding polygon constraints.

The problems with incorrectly assigning constraint status to interior edges is now resolved.  Therefore I am closing this issue.
Thank you for identifying this problem.  Resolving it led to a significant improvement in the constraint management logic and related API design.
As a parting note, I am including a picture that was created using a TIN built from polygon constraints. The constraints were taken from the public-domain Natural Earth Data. This test provided an excellent test case for the new constraint logic.

Although the rendering logic used to create the image is not part of the Tinfour project, the ability to read Shapefiles is supported.


3/25 Publish

Docs Build status updates of commit 11c3ac9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

FromYmlToTOC-INDEX-MAP.ps1
:white_check_mark:Succeeded

rd/index.yml
:white_check_mark:Succeeded
View

rd/map.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


review ticket #2

code.org up to lesson 5:
bash nb:
jupyter nb with primitives learning:
fastpages thinking:
Link to Fastpages

I'd give this a 2.7 + because Saumya completed the Canvas Requirements and added a hack.


[R20-1701] show deeply nested children in filters

Issue: https://digital-vic.atlassian.net/browse/R20-1701
What I did

This will show nested children within the child dropdown for the dependent filter, i.e. if someone accidentally drags an option too deep it can still be displayed and used on the frontend.

Checklist

For all PR's

[ ] I've added relevant changes to the project Readme if needed.
[ ] I've updated the documentation site as needed.
[x] I have added unit tests to cover my changes (if not applicable, please state why in a comment)

For new components only

[ ] I have added a story covering all variants
[ ] I have checked a11y tab in storybook passes
[ ] Any events are emitted on the event bus

Just closing this for now to clean up the PRs, as it's not going anywhere.


Add United Technical College!

Adding United Technical College, where I am currently doing my undergraduate Computer Engineering degree!
United Technical College is an Engineering college located at Bharatpur-11, Chitwan in Province 3 of Nepal, and is affiliated to Pokhara University, Nepal.
The official domain of the institution is unitedtechnicalcollege.edu.np, and the website homepage is located at http://unitedtechnicalcollege.edu.np/.
The college offers educational emails to students, lecturers and other staffs in the format<EMAIL_ADDRESS>You can validate that this is the official domain of the institution by visiting the webpage containing list of Affiliated Colleges in the Pokhara University website: https://pu.edu.np/academics/schools-colleges/affiliated-colleges/
I am looking forward to seeing this Pull Request being merged.

@TheBinitGhimire Pull request merged. Thank you!


[Wait for #1121] [tflite] implement build operations in subgraph

[tflite] implement build operations in subgraph

This patch implements build operation in the subgraph

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1122. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @zhoonit, nntrainer/compiler/tflite_interpreter.cpp does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: Oooops. The administrator of CI server must install a debian package to support 'cov-build' command.

:octocat: cibot: Oooops. The administrator of CI server must install a debian package to support 'ndk-build' command.

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1122-202104272122440.92066192626953-7338f5e4d2df4c2b40c63c4a19d123aa8add3372/.


[ Question ] Raw json configuration

Hello , what configuration should I make to have a raw json response like this
[ { "id": 1, "name": "Player 1" } ]
instead of the json-ld/hydra response
{"@context":"\/api\/contexts\/Player","@id":"\/api\/players","@type":"hydra:PagedCollection","hydra:totalItems":1,"hydra:itemsPerPage":30,"hydra:firstPage":"\/api\/players","hydra:lastPage":"\/api\/players","hydra:member":[{"@id":"\/api\/players\/1","@type":"Player","team":null}]}

You'd have to add a custom controller and return your own Response object. I don't see the point of using this library without json-ld though.

The purpose of what i do right now is experimenting this api on various project .
Maybe it's better to treat the json answer client side is a better option .


Confusing usage of app.json_provider_class and app.json

Python version: 3.10.4
Flask version: 2.3.2

Recently I updated to Flask 2.3.2 and found that JSONEncoder  is removed, so I tried to find the new way to change the default json formatter. By searching the code, I found the class DefaultJSONProvider and wrote my own. And after I set app.json_provider_class = CustomJsonProvider, I found it does not work as expected. After a long time reading the source code and debugging, I realized that the app.json variable was not changed.
Just like what #5052 has discussed, I also think it's better to improve this API. Whether making app.json_provider_class  both getter and setter or making the API private might be better. I mean, not everyone will read the document of every framework, and when I want to modify the json formatter, I would like to just type app.json and see what the IDE will show.  Moreover, when using flask, it's rarely to see someone extends the class Flask to reset the json_provider_class, they just change the property of the global variable app instead.
If needed, I'm glad to PR.

Plus a million to this. This costed me 2h of debugging because I could not understand what was going on. I think the easiest fix it to allow json_provider_class to be set in the constructor or the Flask object. I really like flask and I am really gratefully for all the effort the maintainers are putting into this. But, I am sorry to say that this is a very pointless footgun, I am absolutely open to the idea that there is a good reason to design it like this but I really cannot understand what it would be.


add seq/par and hook

fix #80
fix #43
fix #44 (any m can be lifted into Spec so you can lift Effect too)
fix #63
fix #68  (in the end user can hoist Either to Aff)
it might somewhat fixes #73 haven't looked into it yet

Initially I tired to rebase #52  on top of #82 but using the approach taken in #52 it was not possible to define afterAll and nesting of hooks was not possible too. So instead I ported this version from hspec.
things left to do:

[x] need to fix reporter to handle case when there is nesting of describe in parallel (see logs of delaySpecExample)
[x] add docs of hooks (probably copy and modify from hspec)

Besides what was commented as part of the review I have change type of hoistSpec and mapSpecTree so the type in which SpecTrees are accumulated can also be changed, it can be useful for example if some part of test is using Spec type (which uses Identity) and then you want to use it in some SpecT with other monad like this: hoistSpec (un Identity >>> pure) (const identity) someTest

After we merge this we should probably update ps-spec-* libs

purescript-spec-discovery because now one can interleave some monadic effect in test generation the discover can have signature like this: discover :: MoandEffect m => String -> SpecT g i m Unit.
purescript-spec-reporter-xunit should be easy to update.
purescript-spec-quickcheck doesn't even depend on ps-spec and I guess needs no change.
purescript-spec-mocha updating this might not be trivial as we support parallel execution of tests but mocha doesn't. as I understand the main (if not only) benefit of using mocha for user is ability to run tests both in browser and node. it can be accomplished by striping suing console.log instead of process.stdout.write (this article can be useful for using colors etc in browser console output). so what i propose is to deprecate that and add make our built in reporters work in browser.

Let me know what others think about this.

Also do you think it's worth releasing this changes as v4.0.0-rc1 (maybe people can play with it and get some feedback) or we should go straight to v4?

🏓 ping

I'm good with these last changes! And yeah, I think releasing an RC would be good.

@felixmulder you good with merging this?

👏

Made a release v4.0.0-rc1


Add Tooltip & TooltipIcon components

Where
Add simple Tooltip and TooltipIcon components
What
Components receive tooltip text from props. So it can be used with or without redux
Screenshots

In future I plan extend tooltip features:

allow show at left/right side
totally decouple tooltip and tooltip icon (theoretically tooltip can be applied to any component, not only to TooltipIcon)

But at the moment, this PR blocks https://coverwallet.atlassian.net/browse/C4A-742


Set FillPercent=1.0 in 'bolt compact'.

By default, pages are split when they reach half full. For 'bolt compact' we want to fill the entire page for maximum compaction.
I tested on a copy of a production DB of 2.1G. Without setting FillPercent, 'bolt compact' outputs a 1.6G file. After this change, 'bolt compact' outputs a 1.1G file.

@benbjohnson @vincent-petithory


Change precedence in 'getResolvedState'

Previously existing props would overwrite passed in state
Now passed in state gets precedence

I'm unsure of the implications of doing this.  It seems to be right, but this could affect a lot of internals.  Have you tested each story in the storybook thoroughly to ensure this will be okay?

I'll take a look through the storybook tonight and make sure it's covered. If I remember correctly the function only gets called with args in one other instance. Thanks for the feedback, I'll update with my findings soon.

From what I can tell, the only other call to getResolvedState() that passes arguments is in componentWillReceiveProps(). Line 39 in lifecycle.js accepts nextState as the 2nd argument. In this case nextState represents the React context which I don't believe ReactTable is currently setup to consume so nextState is always the Object prototype.
Currently the precedence goes: new props -> previous props -> context -> component state
This PR would change that to: new props -> context -> previous props -> component state
Since ReactTable doesn't use context right now, swapping it with previous props won't have any effect on current operation but I can see why some might want to keep it the way it is. If that's the case then the call to getResolvedState on line 65 of lifecycle.js would need to swap the order of arguments. That may come with other side effects that would still need to be investigated. Either approach would resolve #163 however.
FWIW I ran through the storybook and didn't run into any issues with the change in this PR. There aren't any stories for fully controlled components however. If I have some time I'll try to add one or two.
Thoughts?

If you could add a fully controlled story entry then I think we're good to
merge :)
On Tue, Apr 4, 2017 at 6:53 PM Eric Abbott<EMAIL_ADDRESS>wrote:

From what I can tell, the only other call to getResolvedState() that
passes arguments is in componentWillReceiveProps(). Line 39 in lifecycle.js
accepts nextState as the 2nd argument. In this case nextState represents
the React context which I don't believe ReactTable is currently setup to
consume so nextState is always the Object prototype.
Currently the precedence goes: new props -> previous props -> context ->
component state
This PR would change that to: new props -> context -> previous props ->
component state
Since ReactTable doesn't use context right now, swapping it with previous
props won't have any effect on current operation but I can see why some
might want to keep it the way it is. If that's the case then the call to
getResolvedState on line 65 of lifecycle.js would need to swap the order of
arguments. That may come with other side effects that would still need to
be investigated. Either approach would resolve #163
https://github.com/tannerlinsley/react-table/issues/163 however.
FWIW I ran through the storybook and didn't run into any issues with the
change in this PR. There aren't any stories for fully controlled components
however. If I have some time I'll try to add one or two.
Thoughts?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tannerlinsley/react-table/pull/166#issuecomment-291693978,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCUM7KPXOjkJGfBpXGyi4e50WxpEgks5rsuYWgaJpZM4MyNs4
.

Added a story entry with controlled sorting, page, and pageSize. Everything seems to be working as expected. If you were to revert commit 383554d2 you would see the behavior described in #163 and #145

Stupendous! You rock man. Merging this now.


Allow ToggleToolbar to be toggled programmatically

My use case is that I have a ToggleToolbar with an AutoComplete.Toolbar as the toolbar and I'd like to show the toggledToolbar if there are no suggestions available.
Perhaps something like this?
ToggleToolbar(
  toolbar: AutoComplete.Toolbar(
    suggestions: autocompleteContext.suggestions,
    locale: keyboardContext.locale,
    suggestionAction: { keyboardContext.textDocumentProxy.insertAutocompleteSuggestion($0) }),
  toggleToolbar: MyCustomToolbar(),
  isToggled: autocompleteContext.suggestions.isEmpty
)

I would expect isToggled to only set the default state of the toolbar and for the user to still be able to switch to the empty autocomplete toolbar if that's what they really want. Although maybe there should also be a way to disable the toggle too.

Hi @doubleo2
Thank you for the suggestion! I will add an isToggled binding in the next version of KK Pro 👍

This is added in the upcoming 8.6 version.


fix(sqllab): Force trino client async execution

SUMMARY

We are currently unable to stop trino queries, because the underlying trino client blocks until the query completes, and doesn't make the query ID or any other info available in the meantime. Unfortunately it doesn't look like they plan to change that any time soon, either.
Make the following changes:

Add a new method execute_with_cursor to db_engine_spec which combines execute with handle_cursor, factoring it out of the one place it's used, deep in the execute query logic.
Make handle_cursor poll the cursor for query ID, as it's going to be populated asynchronously. Add warnings that the trino impl will require using execute_with_cursor. Currently nothing is directly calling handle_cursor, with the one original call eliminated.
Override execute_with_cursor for the trino engine and execute the two tasks in parallel to allow us to poll for the query ID while the query is still blocking.

TESTING INSTRUCTIONS

Test that trino queries can be stopped in SQL Lab, that database errors from trino are still reported correctly, and that queries in other engines still run / stop correctly.
ADDITIONAL INFORMATION

[x] Has associated issue: #24858
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Tests are passing with a small modification to the way the mock is used, and I've just pushed a fix for the small formatting issue black corrected in the tests I modified, so build should now pass.
I'm looking at adding a unit test for this scenario in test_trino.py but the test scenario here will be quite fiddly / timing-based because I need  to call execute_with_cursor and then prove that query_id has been found and populated prior to that call returning, which means my test will need a threaded solution similar to what I've done in the actual code, and my execute mock call will have to wait for an arbitrary period of time; there's potential to slow down tests and introduce flakiness based on timing issues with that approach, so I'm not keen.
Existing test coverage covers trino's handle_cursor, along with the new call to handle_with_cursor in sql_lab, but there's no coverage for trino's handle_with_cursor specifically. Perhaps simpler coverage of the trino method will suffice; i.e. make sure that we at least make the expected calls on and fetch the appropriate query_id from the cursor eventually, and not worrying about the timing of that. That won't fully test the scenario I've fixed here, but will at least provide basic coverage of the method.

Added a basic coverage unit test as described above.

@nytai @villebro would you mind reviewing this? I know @villebro was working with the cancel query logic in the past and I suspect this was previously tested with Trino—though I may be wrong.

After discuss with @giftig and find out this issues is caused by
https://github.com/trinodb/trino-python-client/blob/d6047a80c1a772cb8240f4a81df810b0d48af4df/trino/client.py#L819-L821
I'm gonna ask Trino community about this to figure out it's should be fix in Trino or Superset side.

To share the feedback from the trino team via @dungdm93 :+1:

Because before this change lot of people didn't use the API correctly and assumed that DDL queries for example didn't need fetch methods to be called.
One option is to have a thread pool within the DB-API client itself on which the queries execute so that Cursor.execute can return eagerly but that's not something we have considered since no one has complained about the change until now.
Also it was an easy solution to fix a bug we had about not implementing protocol correctly - see https://github.com/trinodb/trino-python-client/pull/220

So it doesn't sound like there are immediate plans to fix the issue in the client, though there's a suggestion how it might be done.
Currently the lack of that feature in the client causes a bug in superset so imo the way forward it to merge this PR to fix the issue and to follow up and try to get a more direct fix merged into the trino client. We'll then have to upgrade the trino client in superset, and my understanding from @villebro is we'd prefer to stay a couple of versions behind the latest, so we can assume some lead time to catch uip with changes we make there. Once we've upgraded we can revert this workaround.
Thoughts @dungdm93 @villebro ?

Sorry to nag @villebro @dungdm93 but can we discuss any remaining concerns with this PR and try to get this moving? I understand there's an alternate fix being proposed by @dungdm93 in parallel, but I think we all agree that will take quite a while to be ready to go into master, and in the meantime this remains a fairly impactful bug. I'd like to get this workaround merged into master in the meantime, with the understanding it can be reverted / dropped from future releases once we've managed to upgrade to a trino client release containing @dungdm93 's fix.
Happy to address any comments which come up on this PR in the meantime, and talk through any reasoning / the testing I did as needed.


Show download numbers on the app

If the API allows it, show download numbers. This would be useful for uploaders.

AFAIK appdb APIs don't have download numbers. You can request it here: https://forum.appdb.to/index.php?/forum/41-appdb-api/
I'll keep this open in case there are further updates

Hi, I added them. (Commit 17a33c9)
Available in the latest release 1.1.5


Hackage

Any thoughts on making this package available via hackage?

Are you using this, and is it working for you? I wrote this for a project a few years ago, and I don't even have access to the project anymore, so I don't know if the thing is at all usable. If it is, I'd be happy to upload it to hackage. I just don't want to upload something that's totally useless, and I don't have anything great to embed this in for testing right now.

I use ekg-core + ekg-statsd now and want to do a wai wrapper using ekg-json package. If you don't mind I'll take the hackage name and publish my version there.


[Infrastructure] Install procdump and capture dumps on build hangs

Enables procdump to capture dumps on build hangs on Windows.
Enables procdump to capture dumps when a child process hangs inside a test.

The initial commit simply ports the changes from https://github.com/aspnet/AspNetCore/commit/85af1fd66b27c5483e599aac848c329f6f8499ad and adapts them for this build pipeline.
Other changes enable procdump to capture dumps for child processes when they hang and make the tests fail.


Do you have any localization tools for God of War Ragnarok ？

Do you have any localization tools for God of War Ragnarok ？

No


Reduce allocation of strings for error messages

Describe the improvement you'd like to request
Audit error and help messages, particularly those declared with #[error("...")] and #[diagnostic(help("..."))], for those that contain calls to functions that produce String only to incorporate those strings into the main error/help message with {}.  For example, in coreschema.rs, the call to pretty_print() in
#[error("context `{}` is not valid for `{action}`", pretty_print(&.context))]

or, also in coreschema.rs, the call to invalid_resource_type_help() in
#[diagnostic(help("{}", invalid_resource_type_help(&.valid_resource_tys, .action.as_ref())))]

These can be replaced with the new thiserror syntax #[error(fmt = some::function::call)] which does not allocate an intermediate String.  And presumably some equivalent miette syntax for the diagnostic(help()) case.
This issue is low priority because performance improvements on the error path are low priority, and this code only runs when an error has occurred.  It's not even clear that these are the most important performance improvements to be had on the error path.  However, they may be reasonably low-hanging fruit.
Describe alternatives you've considered
The status quo is acceptable, particularly because performance improvements on the error path are low priority.
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this internal improvement
[ ] ⚠ This feature might incur a breaking change

see
https://github.com/cedar-policy/cedar/blob/df4f53ef08374c8e3b7ce5fdacab40b7d2e73e5c/cedar-policy-core/src/ast/policy.rs#L305-L313
and
https://github.com/cedar-policy/cedar/blob/df4f53ef08374c8e3b7ce5fdacab40b7d2e73e5c/cedar-policy-core/src/ast/policy.rs#L342-L355
for one error variant that already does this


Permission based triggers

What about adding the permission: switch to NPC triggers?
trigger name:click state:true permission:group.admin
Only admins can click.
trigger name:click state:true
Re-declaring the trigger without the permission switch removes it, now everyone can click.
Or, perhaps we could add a permission sub-key to the actual trigger blocks.

This is a basic usage question, not a feature request
- if <player.has_permission[someperm]>:
  - ...

Join the Discord to ask basic questions about how to use Denizen like this one https://discord.gg/Q6pZGSR


Fixing readme link

Hey @nglgzz, just fixing the readme link.

Thanks for the fix @spekulatius!

No worries, happy to help out!


combination.py large number n, r case too slow to find a combination

hi, when i test combination.py, I found specific case with input large n, r too slow to find combination.
combination(50, 10) <-<PHONE_NUMBER>0 // too slow
in my opinion, using memoization method, can problem solving (using dictionary)
Can i send PR you?

you can use factorial and combination function.
https://github.com/huseyindalbudak/mathpy/blob/master/combination.py
the code is so faster for combination(50, 10) than keon algorithms


Python does not start services automatically

Hello, to execute a simple demo. I can see the query result is correct but in the end there is a weird message:
Demo:
from blazingsql import BlazingContext
bc = BlazingContext()
import time
nation = bc.create_table('nation', '/tmp/nation_0_0.parquet')
sql = "select n_nationkey, n_comment from nation"
result_gdf = bc.sql(sql).get()
print(result_gdf)
Output:
(blazingsql) root@8d16c30f8ae3:~# python hola.py
connection established
columns =     n_nationkey                                          n_comment
0             0   haggle. carefully final deposits detect slyly...
1             1  al foxes promise slyly according to the regula...
2             2  y alongside of the pending deposits. carefully...
3             3  eas hang ironic, silent packages. slyly regula...
4             4  y above the carefully unusual theodolites. fin...
5             5                    ven packages wake quickly. regu
6             6             refully final requests. regular, ironi
7             7  l platelets. regular accounts x-ray: unusual, ...
8             8  ss excuses cajole slyly across the packages. d...
9             9   slyly express asymptotes. regular deposits ha...
10           10  efully alongside of the slyly final dependenci...
11           11  nic deposits boost atop the quickly final requ...
12           12               ously. final, express gifts cajole a
13           13  ic deposits are blithely about the carefully r...
14           14   pending excuses haggle furiously deposits. pe...
15           15  rns. blithely bold courts among the closely re...
16           16      s. ironic, unusual asymptotes wake blithely r
17           17  platelets. blithely pending dependencies use f...
18           18  c dependencies. furiously express notornis sle...
19           19  ular asymptotes are about the furious multipli...
20           20  ts. silent requests haggle. closely express pa...
21           21     hely enticingly express accounts. even, final
22           22   requests against the platelets use never acco...
23           23  eans boost carefully special requests. account...
24           24  y final packages. slow foxes cajole quickly. q...
resultToken =<PHONE_NUMBER>9824492479
interpreter_path = <IP_ADDRESS>
interpreter_port = 8891
handle = [<numba.cuda.cudadrv.driver.IpcHandle object at 0x7ff86d2819b0>]
client = <pyblazing.api.PyConnector object at 0x7ff86d2daef0>
calciteTime = 301
ralTime = 310
totalTime = 851
error_message =
Exception ignored in: <function ResultSetHandle.del at 0x7ff86d2e42f0>
Traceback (most recent call last):
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/pyblazing/api.py", line 310, in del
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/pyblazing/api.py", line 229, in free_result
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/pyblazing/api.py", line 47, in _send_request
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/blazingdb/protocol/init.py", line 71, in send
TypeError: can only concatenate str (not "tuple") to str
Exception ignored in: <function PyConnector.del at 0x7ff86d2d6c80>
Traceback (most recent call last):
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/pyblazing/api.py", line 64, in del
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/pyblazing/api.py", line 108, in close_connection
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/pyblazing/api.py", line 46, in _send_request
File "/miniconda3/envs/blazingsql/lib/python3.7/site-packages/blazingdb/protocol/init.py", line 61, in init
TypeError: can only concatenate str (not "tuple") to str
Colla

Looks like I ran into the same issue:
Unexpected error on _run_query_get_results, can only concatenate str (not "tuple") to str
Unexpected error on _run_query_get_results, can only concatenate str (not "tuple") to str
columns = None
                    resultToken =<PHONE_NUMBER>3250841573
                    interpreter_path = <IP_ADDRESS>
                    interpreter_port = 8891
                    handle = None
                    client = <pyblazing.api.PyConnector object at 0x7fcf338f9748>
                    calciteTime = 21
                    ralTime = 0
                    totalTime = 0
                    error_message = Unexpected error on _run_query_get_results, can only concatenate str (not "tuple") to str

Same as https://github.com/BlazingDB/pyBlazing/issues/117 fixed!