importing in Typescript does not work

allow importing in Typescript like
import { getFingerprint } from 'thumbmarkjs'

@noe this should now work. The package is published in npm as thumbmarkjs and can be imported into a typescript project.
The version is 0.11.3-rc1. I'd appreciate if you can confirm it works for your use case and I'll release a final version after that.
I'll add more comments around this later, but the functions that are currently exposed are getFingerprint, getVersion and getFingerprintData

I confirm it works.
However, it seems that, when the package is imported, navigator is used. This is an inconvenience for Next.js projects, as that import may happen server-side, where navigator is not defined.
I worked around this problem by using a dynamic import. It would be great to change this behaviour or add a warning in the readme to let Next.js users about it.

I've started a discussion, since I don't fully understand 😁
https://github.com/ilkkapeltola/thumbmarkjs/discussions/5


Plugin creation testers wanted

I recently added a plugin creation utility (plugincreate.py). It's a bit rough, but I'm really excited about this feature and it's improvement so I'm looking for testers. Please try it out, let me know what you think, and report any bugs, ideas, and impressions.

I want to join...

@tanmoydeb07 Awesome! There's no official signup, just try it out at let me know what you think. If you have any questions, I can assist. Thanks!


Tableau sign with verify True option always fails.

The following code fails
    tableau_auth = tsc.TableauAuth(username, password, site)
    server = tsc.Server(server)
    server.add_http_options({ 'verify': True })
    return server, tableau_auth

with the following error
Exception : HTTPSConnectionPool(host='host', port=443): Max retries exceeded with url: //api/2.3/auth/signin (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))) at Line : 62

Where should i specify certificates in tableau library ?

Any recommendations ?

I think this should actually work as is by passing in the name of a complete certificate chain as .pem, but I haven't tested it.
e.g
server.add_http_options({ 'verify': 'server.pem')
See this article for how to find the certificates you're using or generate a PEM file if that's not what you have.


[storage.v1] Generated API uses core.Object instead of storage.v1.Object

The generated code for the storage.v1 API and possibly others has defaulted to
As seen here in the return type of (storage.v1.ObjectsResource.get)[https://pub.dev/documentation/googleapis/latest/storage.v1/ObjectsResource/get.html] where it should be using (storage.v1.Object)[https://pub.dev/documentation/googleapis/latest/storage.v1/Object-class.html].
Currently to make the Google Storage API work you need to cast the result. To be clear it is not just this API but all Storage APIs that refer to the Object type.

Ping me on twitter. Let's figure this out...

NOT A BUG! By design!
This is a WEIRD function. It support two flavors "normal" and "with medatada" so the returned type can be different.
It's weird.
One could argue – for Dart – that we should just generate two flavors of functions here so we could have better types.

ah, I see. Sorry for the "wild goose chase". It doesn't help the return type is the same name as the generic. Perhaps it should have get and download methods.

Something like that!
On Thu, Nov 17, 2022 at 2:20 PM Simon Lightfoot @.***>
wrote:

ah, I see. Sorry for the "wild goose chase". It doesn't help the return
type is the same name as the generic. Perhaps it should have get and
download methods.
—
Reply to this email directly, view it on GitHub
https://github.com/google/googleapis.dart/issues/461#issuecomment-1319282777,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEFCV45NQVDFOPXV5GMB3WI2VSLANCNFSM6AAAAAARLEWJO4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Diagnostics for user support

While the Airstory plugin has been designed to be as intuitive as possible for users to get started with, beta users have run into some environment-specific troubles. @chrislema has recommended adding a simple diagnostics tool that enables users to easily report any troubles they've run into and get some of that Heroic Support that Liquid Web is so known for.

Fixed via #34 and #35.


Sitemap generation

Would be cool if it was possible to generate sitemap so it can be supplied to google for correct indexing of the page :) I guess it could be an optional webpack plugin that generates sitemap file next to the build artifacts.

I don't have much experience with this but would be happy to accept a PR!

@thieryw this could be a quick win.
Forking from our plugin for typeroute we could get this implemented in a couple of hours.

Just updated the Type Route website (https://type-route.zilch.dev/) and was looking into this. Reading some docs it appears that a sitemap wouldn't make a difference in the case of this project: https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview?hl=en&ref_topic=4581190&visit_id=638082056476728778-2506658020&rd=1#do-i-need-a-sitemap. Let me know if I'm missing anything. Happy to reopen this if so!


Change to line 124

Line 124 asks to select a "storage account" which is wrong in this context. It should be logical SQL Server

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

#sign-off Looks good.
@svchandramohan please edit your browser URL to point to azure-docs-pr for future changes, so that they go through with less intervention. Sign up details

@JasonWHowell: I'm sorry - only the author of this article, @viseshag, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


should_continue is a function - API 40.x

First, thanks for all your great work. I am learning a lot from your codes.
https://github.com/toddaustin07/edge_upnp/blob/792dc04be1d856aa82b1e1cee8a9a3debf02094a/upnpdrivertemplate.lua#L398
According to API 40.x below, should_continue is a function.
So the first condition above is always true.
It should be a quick fix just by adding () to call that function without any parameter.
local should_continue = function() return self.discovery_state.is_running or false end
self.discovery_state.is_running = true
self.discovery_state.thread:queue_event(self.discovery, self, opts, should_continue)

Thank you, you are correct!  I never use should_continue myself, so never caught this error!  For my LAN drivers I usually use my own retry counter :-)
I will make this change in the file.


New schema for counters and service quick list.

please review proposed schema for our updates this month

@denny351 @gil0109 please let me know if this look good to proceed with.

Closed.  Updated Pull Request coming with conflicts resolved.


Introduce additional File and Path Refaster rules

Suggested commit message:
Introduce additional `File` and `Path` Refaster rules (#1282)

I expect that SonarCloud will flag the new createTempFile "calls"; if so, I'll push another commit with suppressions.

Didn't happen :eyes:. Likely due to the custom directory being specified.

Anything else from you side @timtebeek 😄 ?


1.28.2 sap.m.Popover|ResponsivePopover and inline list content

Just trying to migrate a Page List into a Popup.
It seems, that inside Popups only BindedLists are supported while inline data is not redered?!?
Am i forced to use a model in such situations?
The problem with models are, that i can not use i18n text translations (currently ;-)
The result is a list with body "no data!"
Used Fragment:
<core:FragmentDefinition
    xmlns="sap.m"
    xmlns:core="sap.ui.core">
    <ResponsivePopover
        title="Menu"
        placement="Bottom">
        <content>
            <List id="list">
                <StandardListItem
                    data:key="ALL"
                    data:filter=""
                    title="Alle Benutzer"
                    icon="sap-icon://group"
                    info="5"
                    infoState="None"
                    type="Navigation" />
                <StandardListItem
                    data:key="NEW"
                    data:filter="UmeAccount/isRegistrated___EQ___ "
                    title="Neuanmeldungen"
                    icon="sap-icon://alert"
                    info="1"
                    infoState="Warning"
                    type="Navigation" />
            </List>
        </content>
    </ResponsivePopover>
</core:FragmentDefinition>

Found the issue!
Missing declarative
xmlns:data="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
leads to the given result.
It would be helpful to have some console output concerning errors.
In this case the use of customData without declarating kills listitems without any error.
Sorry for creating the ticket ;-(
Cheers Holger

Hi Holger,
i contacted the developer of the xml view if we can log an error in this case.
So i keep the issue open its just a different topic now.
best regards,
Tobias

Since this is a very old ticket for a long outdated UI5 version, we are closing this issue.
In the meantime the error handling in the XML was reworked multiple times, so the original issue might not persist anymore.


allow/validate bitbucket_username / bitbucket_password in private config schema

closes #8445

I think its just oversight. The one thing I can think of where setting credentials for this could cause a problem would be if we weren't setting authorizedOrigins properly, but we're hard-coding an appropriate value in https://github.com/badges/shields/blob/ae018cdddc34b1638868edb6c05defa19844d691/services/bitbucket/bitbucket-pull-request.service.js#L66-L73 so I am not worried about this.
I think in general, the BitBucket badges are a bit of a patchwork: Not all of them work with both BB server and BB cloud. Not all of them support auth if you have credentials set. There's definitely some tidy up needed, but I don't think this causes any problem.


rewrite & monorepo

Total rewrite into a monorepo:

@rpearce/image-zoom: vanilla JS (typescript) implementation of image/whatever zooming
react-medium-image-zoom v5: useImageZoom hook around @rpearce/image-zoom

Closes #243
Closes #254
Closes #227
Closes #213
Closes #166
Closes #164
To do:

[ ] sort out some mobile scroll jankiness
[x] documentation needs a lot of love
[ ] get some tests in there

This is getting pretty close

Update: I encountered a couple of bugs that are unable to be worked around, and have had to go in a different direction. Stay tuned for updates. The short version is that consumers will be responsible for their own zoom button that triggers the lib because there are simply too many use cases to cover, and it's impossible to handle them all going back to IE11.

Converting back to draft while WIP and this is redone in a better way.

Closing, as it's too noisy to keep this open. I'll open another pull request with updates when they're ready and reference this.

Closing, as it's too noisy to keep this open. I'll open another pull request with updates when they're ready and reference this.

Closing, as it's too noisy to keep this open. I'll open another pull request with updates when they're ready and reference this.

Closing, as it's too noisy to keep this open. I'll open another pull request with updates when they're ready and reference this.


[FLINK-26929][table-runtime] Introduce adaptive hash join for batch hash join

What is the purpose of the change
Introducing adaptive hash join for batch sql hash join.  Adaptive hash join integrates the advantages of hash join and sort merge join according to the characteristics of runtime data. The adaptive hash join will try to use hash join strategy firstly, if failed, fall back to sort merge join, this can improve the stability of hash join.
In order to solve the problem of data skew, or too much data in the hash table, so here introduce one strategy fallback to sort merge join:

If some partitions are spilled to disk more than three times in the process of hash join.

This commit has implemented the main process of adaptive hash join, but regarding to the long key type, due to the physical operator is generated by codegen, so I will append another commit to support it.
In the future, we will support more flexible adaptive hash join strategy, for example, in the process of building a hash table, if the size of data written to disk reaches a certain threshold, fallback to sort merge join in advance.
Brief change log

If the data spill to disk exceeds the threshold {@code TABLE_EXEC_HASH_JOIN_SPILL_THRESHOLD} in the process of build hash table, fallback to sort merge join
If some partitions are spilled to disk more than three times in the process of hash join, fallback to sort merge join

Verifying this change
This change added tests and can be verified as follows:

Added uint tests in LongHashTableTest and BinaryHashTableTest
Added uint tests in Int2AdaptiveHashJoinOperatorTest

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (JavaDocs)

Thanks for all review, I've addressed comments.


fix input box issues

issues observed in this pr: https://github.com/microsoft/azuredatastudio/pull/15569

allow extension to set maxLength for input box
fix the placeholder text won't wrap for multiline text area

Pull Request Test Coverage Report for Build 880559313

0 of 6 (0.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.004%) to 43.4%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/api/common/extHostModelView.ts
0
2
0.0%

src/sql/base/browser/ui/inputBox/inputBox.ts
0
4
0.0%

Totals

Change from base Build 880205107:
-0.004%

Covered Lines:
26556

Relevant Lines:
55591

💛  - Coveralls


feat: fold for ArrayView

It was proposed in #669 to add a fold function to arrayview, but it has not been implemented yet.

Pull Request Test Coverage Report for Build 3152
Details

0 of 12 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

builtin/arrayview.mbt
0
12
0.0%

Totals

Change from base Build 3151:
0.0%

Covered Lines:
0

Relevant Lines:
4778

💛  - Coveralls


Fix and tests for mutable vector and hashmap

@mgsloan Re our last PR #108 the following are implemented:

The approach you suggested for vectors to only allocate vector of n elements if at least n bytes are available as input.
On here I put a maxNullaryVectorSize at 4096 (arbitrary). We could perhaps put this as a compile-time flag. Any thoughts?
Added a check so that when consuming maps, it checks that the input list is ordered by key, rejects it otherwise.

There're tests for each of these.

@mgsloan Build passes, ready for merge!


After idle, messages in web app are not sent

Problem
If the web chat app tab is left open for a while, then it loses the ability to send new messages via relay.
In the console, the following errors appear:
libp2p:mplex:stream initiator stream 2 reset +33m common.js:111:9
libp2p:mplex:stream initiator stream 2 reset +0ms common.js:111:9
libp2p:mplex:stream initiator stream 2 reset +1ms

Solution
This is most likely related to https://github.com/libp2p/js-libp2p/issues/939
Need to investigate if any mitigation can be done until this is fixed upstream.
Notes
Blocked on https://github.com/status-im/nim-waku/issues/534

A strategy would be to send mepty messages as a keep alice like nim-waku does https://github.com/status-im/nim-waku/pull/588

See https://github.com/status-im/nim-waku/pull/621

This should be unblocked now with the merging of https://github.com/status-im/nim-waku/pull/621. Note, however, that ping protocol is currently only available on test fleet nodes.

Let's see if #210 fixes it.

Still happening, need to discuss with chainsafe and understand if they have same issues. I believe it to be a symptom of https://github.com/libp2p/js-libp2p/issues/939

Note, however, that ping protocol is currently only available on test fleet nodes.

Just double-checking that you're still aware of this - prod is running the release (v0.4) which does not mount or us ping.

Note, however, that ping protocol is currently only available on test fleet nodes.

Just double-checking that you're still aware of this - prod is running the release (v0.4) which does not mount or use ping.

oooooooooooooh!!!! Thanks! I need to test on test fleet then.

This should be unblocked now with the merging of status-im/nim-waku#621. Note, however, that ping protocol is currently only available on test fleet nodes.

Confirmed on test fleet, it does not help with the relay issue. Which is kind of expected as the relay issue is due to the relay stream closing, a ping would use a different stream (a stream is for one protocol only).

So it fails exactly 10min in. I am guessing it is a TCP timeout.
I was not able to reproduce the issues in libp2p-gossipubsub test. I tried to see if it was possible to change the TCP timeout in node.http but did not seem the case. Could not reproduce by waiting 10min in the test either.
However, when running web-chat locally, I can systematically reproduce the issue: stream closes after 10min, then sending messages over relay fails because it attempts to write on a closed stream.
https://github.com/libp2p/js-libp2p/issues/744 could help with the keep alive feature. However I am not convinced as the keep alive is merely workaround (to my current understanding) as the fact that relay should simply not try to write on a closed stream.
some work for this second point has been ongoing on js-libp2p side since April:

https://github.com/libp2p/js-libp2p-mplex/pull/122
https://github.com/libp2p/js-libp2p-mplex/issues/120
https://github.com/libp2p/js-libp2p-mplex/pull/121
https://github.com/libp2p/js-libp2p-mplex/pull/115

I am also not sure I fully grasped the issue so I m asking more questions:

https://github.com/libp2p/js-libp2p/issues/939#issuecomment-884680698
https://discord.com/channels/593655374469660673/606584108449005598/867639718249627668 (ChainSafe Discord)

In the mean time I am attempting to implement a ping over relay.

Sounds like this might work. Crossing fingers! :) Assuming this will be viewed as a "normal" relay message by other clients? If there's a need we may have to expand the relay spec to accommodate relay pings.

SafeChain does not seem to encounter the issue due to a lack of idling:
https://discord.com/channels/593655374469660673/606584108449005598/867794263945510942

hmmm I don't think we've ever seen this bc our network is constantly sending gossip
iirc our stream handling is quite simple and doesn't do anything in the way of re-establishing connections
most of the stream handling stuff happens here: https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/interfaces/src/pubsub

Resolved with a relay keep alive: #243.
Keeping open to watch out for upstream solution libp2p/js-libp2p#744 .

Not happening anymore, same than https://github.com/waku-org/js-waku/issues/751


Support for virtual network peering

Is there an existing issue for this?

[X] I have searched the existing issues

/cc @grayzu for visibility
Description
This module would be more useful if it supported vnet peering. As you know due to limitations in AzureRM there are challenges doing this across subscriptions.
Suggest that AzAPI is used to create bi-directional peering to supplied resource ids.
New or Affected Resource(s)/Data Source(s)
azapi_resource (Microsoft.Network/virtualNetworks/virtualNetworkPeerings)
Potential Terraform Configuration
module "subnets" {
  source = blah
  # ... existing input varibles
  virtual_network_peering = {
    to_hub = {
      remote_virtual_network_resource_id = "/subscriptions/..."
      create_outbound_peering_only       = true # do we create both sides of peering here?
      outbound_peering_name              = "" # optional, autogenerated using uuidv5
      inbound_peering_name               = "" # optional, autogenerated using uuidv5

      outbound_use_remote_gateways      = true
      inbound_use_remote_gateways       = true
      outbound_allow_forwarded_trafffic = true
      inbound_allow_forwarded_trafffic  = true
      outbound_allow_gateway_transit    = true
      inbound_allow_gateway_transit     = true
    }
  }
}

References
This could be used by https://github.com/Azure/terraform-azure-modules/issues/8

Thanks @matt-FFFFFF for opening this issue, I'd like to create some new verified modules to provide different vnet peering topology, like hub-spoke one.
terraform-aws-vpc-peering provided by CloudPosse would be a perfect example.

Hi @lonegunmanb
I think H&S should be its own module. We should include azure firewall, route aggregation, etc. too.
I started an issue with a draft spec here:
https://github.com/Azure/terraform-azure-modules/issues/8
Happy to collaborate!


Fix release instructions for Vagrant installs

@tomdee - noticed some instructions that need to be updated for a specific release.  Can you review and hopefully merge before you do a release?

LGTM


What are the possible values for node phases?

I need to know what are the possible values that I can expect in the 'phase' field for each node.  E.g., the following is the partial output of a call to argo get -o json jjm-argotdb6d:
    "status": {
        "phase": "Succeeded",
        "startedAt": "2019-12-12T22:46:44Z",
        "finishedAt": "2019-12-12T23:41:53Z",
        "nodes": {
            "jjm-argotdb6d": {
                "id": "jjm-argotdb6d",
                "name": "jjm-argotdb6d",
                "displayName": "jjm-argotdb6d",
                "type": "DAG",
                "templateName": "jjm1",
                "storedTemplateID": "/jjm1",
                "phase": "Succeeded",
                "startedAt": "2019-12-12T22:46:44Z",
                "finishedAt": "2019-12-12T23:41:53Z",
                "children": [
                    "jjm-argotdb6d-3537880294",
                    "jjm-argotdb6d-3544258579",
                    "jjm-argotdb6d-3929880095"
                ],

I'd like to know what are the possible values at status.nodes.jjm-argotdb6d.phase so I can write a proper handler for each condition.  I could not find any existing documentation on this.
Thanks for your help!
-J

```
     NodePending   NodePhase = "Pending"
NodeRunning   NodePhase = "Running"
NodeSucceeded NodePhase = "Succeeded"
NodeSkipped   NodePhase = "Skipped"
NodeFailed    NodePhase = "Failed"
NodeError     NodePhase = "Error"

Perfect, thanks!


Handle postponed evaluation of type annotations

Fix #600.
Signed-off-by: Elazar Gershuni<EMAIL_ADDRESS>

Thank you for dissecting this problem! These type things are rather gnarly.
This was missing the typing import. I've added that, so let's see if the tests pass now.

Sorry to bump an old thread, but I just opened this PR, which attempts to reapply the changes from this PR on top of what we have now. Please let me know what I've missed 🙇


Set up default vscode launch.json and tasks.json

Our preset (and this repository) should provide a .vscode/launch.json and .vscode/tasks.json to provide better ergonomics to VSC users (as this is our recommended IDE).

Per https://github.com/eternagame/workspace-helpers/issues/5#issuecomment-1159310828 it seems like the nx console should work fine


Random issues with Traefik when Kobling is being used

Hi!

Yet there are no errors on traefik web.

This may have something to do with broadcasting the api@internals routers.
Can you share your config.yml as well as a picture of what routers are enabled in your main traefik instance. I don't need all of them, just the ones that have a PathPefix rule. Something similar to this picture:

Here you go:

Yep, every request with a path that starts with /api is being redirected to one both of your instances.
Can you send me your Kobling config and, if you can, the traefik.yml for oracle1 and oc-bom1?

servers:
  - name: "oracle1"
    apiAddress: http://oracle1.tailnet-d10c.ts.net:8090
    destinationAddress: http://oracle1.tailnet-d10c.ts.net:90

  traefik-home:
    container_name: traefik-home
    image: traefik
    restart: unless-stopped
    command:
      - --global.checknewversion=false
      - --global.sendanonymoususage=false
      - --entrypoints.http.address=:90
      - --api.insecure=true
      - --providers.docker=true
      - --providers.docker.defaultRule=Host(`{{ index .Labels "com.docker.compose.service" }}.oc1.nt`)
    extra_hosts:
      - "host.docker.internal:<IP_ADDRESS>"
    ports:
      - 90:90
      - 8090:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

It's the same for the other one.

I can't replicate it on my machine. Here's my setup:
On my local instance:
services:
  reverse-proxy:
    image: traefik:v2.9
    command:
      - --accesslog=true
      - --api.insecure=true
      - --providers.docker=true
      - --global.checknewversion=false
      - --global.sendanonymoususage=false
      - --entrypoints.http.address=:90
      - --providers.docker.defaultRule=Host(`{{ index .Labels "com.docker.compose.service" }}.domain.tld`)
    ports:
      - "90:90"
      - "8090:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  whoami:
    image: traefik/whoami
    labels:
      - "traefik.enable=true"

On the main instance:
services:
  traefik:
    image: traefik:latest
    ports:
      - 90:90
      - 8090:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command:
      - --accessLog=true
      - --global.checknewversion=false
      - --global.sendanonymoususage=false
      - --entrypoints.http.address=:90
      - --api.insecure=true
      - --providers.docker=true
      - --providers.docker.defaultRule=Host(`{{ index .Labels "com.docker.compose.service" }}.domain.tld`)
      - --providers.redis.endpoints=redis:6379
  redis:
    image: redis:6.2-alpine
    ports:
      - 6379:6379

I am checking that it works by calling the whoami container:
curl http://localhost:90/api/123 -H 'Host: whoami.lud.ar

And it returns the correct response. I can also see the request in the access log of both traefik instances.
Am I missing something here? Can you write a small example that can reproduce the issue?
I could also just add an option to ignore the api@internal services. That should solve this issue as well

Along with that, try accessing dozzle on dozzle.domain.tld, per the default Docker rule above:
  dozzle:
    image: amir20/dozzle
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    labels:
      traefik.enable: true
      traefik.name: logs

I can't really reproduce this issue. I added that container to my local instance and it seems to be working great:

Is there something I'm missing? If this issue comes from the exposed api@internal service, then having an option to not broadcast it should fix it. And we probably don't want to expose that to the main instance anyway

Try the latest :main tag and see if it is fixed!

I can confirm that the issue is fixed! Thank you.


Fix it pls

Hi!
After new update 29.04 - the game will crash when  i'm going to the game (in-game) with a cheat.
thx

wait)

csgo updates, oSimulatePlayerSimulatedEntities was changed

csgo updates, oSimulatePlayerSimulatedEntities was changed

when you fix it?


"Incorrect API key provided"

Running into Incorrect API key provided on index.query()
from gpt_index import GPTListIndex, Document
from gpt_index.embeddings.openai import OpenAIEmbedding
%env OPENAI_API_KEY=MY_KEY
index = GPTListIndex([])

embed_model = OpenAIEmbedding(model="text-embedding-ada-002")
doc_chunks = []
for foo in blah:
    data = get_text_data(params)
    print(f"Getting embedding for data {data}")
    embedding = embed_model.get_text_embedding(data)
    doc = Document(data, embedding=embedding)
    doc_chunks.append(doc)

for doc in doc_chunks:
    index.insert(doc)

response = index.query("QUESTION HERE")

Tried rotating the keys on the open ai site but hasn't worked, wondering if anyone has seen this before?
After restarting kernel, it also errors in get_text_embedding

actually it looks like there may have been a sudden issue with my API keys even on reset 😭

required a couple hard restarts but think we're good to go now -- not sure what happened :(


Not able to save API key in yaml file

I am not able to save my Open API key in parameters.yaml file.  I get permission denied , file cannot be saved in Transcribe directory.  Without using my API key, it is not answering any of the questions.  I do get error message in powershell that API key is needed.

Can use the cmd line argument -k to provide the key.
E.g.
python main.pi --api -k <OpenAI Key>
```
This will allow to continue using transcribe

I get the error below with the cmd line argument -k to provide the key
"AppData\Local\Programs\Python\Python311\python.exe: can't open file 'C:\WINDOWS\system32\transcribe\main.pi': [Errno 2] No such file or directory"

It works, ty !

Glad to hear you were able to resolve this issue.
I added an enhancement request #47 to make this better.


Branch 144457649

Jenkins, test this please.

Will send another one with the AVX config. Keeping this open to check on jenkins.

FWIW, I ran the timeout tests at master from a docker container on my box and they passed, so they are at most flaky.
https://ci.tensorflow.org/job/tensorflow-pull-requests-cpu/3237/console


⚠ ClamAV has degraded performance

In 2d11d0f, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 663 ms

Resolved: ClamAV performance has improved in e91381d after 13 minutes.


HTTP/2 does not work with outbound transparent

Once I fixed issue #7525, I could pass traffic for HTTP and HTTPS HTTP/1.1 with the certifier plugin.  But for HTTP/2 traffic I would get a 500 response.  Looking at the debug messages, it appeared that the HttpSM was very insistent about doing a DNS lookup on the domain.
Eventually tracked it down to the fact that the accept object transparent flags were not being propagated properly to the Http2Streams.  I am putting up a PR that fixes the issue, but perhaps in not the most beautiful way.
This is observed working on the 9.1.1 codebase.

Talked with @SolidWallOfCode about my original PR. He pointed out the proxy.config.hostdb.host_file.path which fixed quite a file things.  Setting it to 2 made my environment work where the gateway didn't have the same DNS access as the client.  I set up PR #8593 to clean up the documentation with obsolete info and highlighted this setting.
Changed the code PR #8594 to propagate the outbound settings to the HTTP/2 stream as they are being propagated to the HTTP1 client until we can get the session-based hook solution figured out.


System Theme Support

Hey everyone,
I am working on adding system theme support to Avalonia, currently this is only supported for Windows 10 (and 8.1).
Once I have finished the Windows 10 support I'll add further support for legacy Windows products and then move onto other operating systems.
It's still early days but I'll try update you while I make progress (perhaps on my forked branch w/o clogging up the issues here).
public enum AvaloniaTheme
{
    Light,
    Dark
}

ThemeResourceProvider
public interface IThemeResourceProvider : IDisposable
{
    bool TryGetResource(object key, AvaloniaTheme requestedTheme, out object value);
}

OS Registration
// Add OS specific ThemeResourceProvider
// i.e Avalonia.Win32
[assembly: ExportThemingSubsystem(OperatingSystemType.WinNT, 1, "WindowsResourceProvider", typeof(ThemeResourceProvider), nameof(ThemeResourceProvider.Initialize))]

ThemeResource Bindings
public class ThemeResourceExtension : IBinding
{
    // Implementation here
}

Setup Default Theme (Currently Light/Dark)
See RequestedTheme property
<Application xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="ControlCatalog.App"
             RequestedTheme="Dark">
  <Application.Styles>
    <!-- Add Styles here-->
  </Application.Styles>
</Application>

Usage (Note resource keys are not finalised)
<SolidColorBrush x:Key="HighlightBrush" Color="{ThemeResource SystemAccent}"></SolidColorBrush>

<Path Stretch="Uniform" Fill="{ThemeResource SystemAccentBrush}" Data="<some data>"></Path>

Override Application Theme
<Button RequestedTheme="Light">Light Theme</Button>

There's still a bunch of things to do but thought I'd let you know what I have been up too and welcome some feedback or recommendations that anyone might have.

Would be interesting to see how this would pan out with Linux and macOS :)

Just a few notes:
The intention of this is to get the environments' colour scheme, map those colours to ResourceKeys for use with styling the controls.
This is not intended to style the controls to look like the target system, that would be a massive undertaking and one I am not prepared to do in the foreseeable future.
The fact the the Avalonia controls look similar to those in Windows 10 (UWP) is most likely coincidental, the fact they are simple (flat) makes theme'n them somewhat trivial.
I will fire up my Ubuntu VM and see what I can find out from the OS about and getting theme/color information, that said Linux offers many different desktop environments.

@wdcossey
I'm afraid it's not exactly possible on Linux anymore. 20 years ago there was X resources thingy which most DEs kept in sync with their color theme. Nowadays nobody seems to be using those, everything is being styled in toolkit-specific way.
What makes it worse, toolkits (Qt 3/4/5, GTK 2/3/4) have several different theme engines (sometimes those are distro-specific) with incompatible sets of color settings.

what about s/t like this https://stackoverflow.com/a/56415144

Those:

require loading libgtk and friends
are theme-engine-specific
are GTK-specific (i. e. useless in pure KDE setup that might not even have GTK installed)

@kekekeks don't think there is any intention to style avalonia controls exactly like system ones just grab some color to match theme a bit if possible, it's far from ideal but no other way

We might end up with black text on black background because we've failed to understand the theme.

The only viable approach I can think of is to get the theme name from the system and ship pre-configured colors for the most popular ones. If a particular machine uses a theme outside of the pre-configured list, we should attempt to match one based on the current DE and distro name. For power users, we could look for an Avalonia-specific configuration file from somewhere in ~/.config/ and get colors from there.

@kekekeks I suspected that might have been the case with at least one or more operating systems, hence why this is currently focused on Windows.
The implementation I am working on focuses around ExportThemingSubsystemAttribute, thus making it configurable per OS, you aren't forced to implement anything for Linux based OS's or you could just simply make something completely bespoke.
{ThemeResource <Name>} attempts to load the requested resource from ResourceNodeExtensions.FindResource first (just like DynamicResource) before attempting to load the resource from the IThemeResourceProvider, this is done purposely, allowing developers to override the ThemeResource.

I will also add Default and Custom options to AvaloniaTheme (most likely to be renamed to ElementTheme [like UWP])
public enum AvaloniaTheme
{
    Light,
    Dark
}

Default for the current theme(s).
Custom with some custom logic to try replicate Windows 10 theme, i.e. overriding the SystemAccent colour generates a theme on the fly.

To be honest this should be optional and live in a separate repo. There are plans to support control themes. I don't understand the benefit of a ThemeResource. What is different to a regular DynamicResource? Most of my WPF projects just use DynamicResources for changing the look of the application.

I don't know if same can be applied to GTK, but in KDE there is a C++ library which allows getting current color scheme - dark/light theme is merely background color value there.

I am currently working on an alternative solution to the theming in Avalonia.
First I have to update the controls to support more colour/brush properties/options as the current implementation is a bit sparse (i.e ButtonBorderBrushNormal/Focused/Hover/etc)
Whilst I haven't dropped my idea of adding some system theme (colour) support it will be an addition to what I am currently working on.

Would be great to see ThemeResource support for those of use with UWP/WinUI code. XAML compatiblity is one really good reason to support this. I'm not entirely sure how Avalonia supports light/dark and default/fluent theme changes but I bet this would simplify some things there as well. In some several ways ThemeResource is a special-case of DynamicResource.
@Gillibald

I don't understand the benefit of a ThemeResource. What is different to a regular DynamicResource? Most of my WPF projects just use DynamicResources for changing the look of the application.

A dynamic resource defers value lookup until it's required. It also automatically re-evaluates the value when the resource dictionary is changed behind the scenes. A ThemeResource looks the value up right away -- but automatically changes to a different resource dictionary and looks the value up again when the theme changes. A DynamicResource cannot process these types of system theme change notifications and automatically change the UI. Some code must be swapping out the resource dictionaries to trigger the updates.

DynamicResource : Microsoft docs here. "A DynamicResource will create a temporary expression during the initial compilation and thus defer lookup for resources until the requested resource value is actually required in order to construct an object."
ThemeResource : Microsoft docs here are best "a ThemeResource reference can dynamically use different dictionaries as the primary lookup location, depending on which theme is currently being used by the system." Also note that a "ThemeResource can re-evaluate at run-time" and does so automatically whenever the theme changes.

I'm not entirely sure how Avalonia supports light/dark and default/fluent theme changes

DynamicResource can replace ThemeResource, so it does in Avalonia, although with overhead (as you described, ThemeResource is way more lightweight).
In same time we do not support ThemeDictionary that simplifies resources declaration per theme, so we have to create separated resource files per each theme and unload/load them in runtime to switch the theme.


Number inputs and toggle switches are hard to see in dark mode

Describe the bug
With themes dark or dracula, it is hard to see the contents/state of number inputs and toggle switches in the preferences window.
To Reproduce
Steps to reproduce the behavior:

Enable dark mode (either dark or dracula)
Open preferences

Expected behavior
Clear visibility of the controls.
Screenshots

Desktop (please complete the following information):

OS: Windows 10 21H1
Platform: Windows Electron app
Version 4.4.0

in version 4.4.1 the autocomplete is also obscured when executing a query or mutation

Looks like this is caused by the GitHub sync plugin. Can you try removing that plugin and checking the UI?

Going to close this issue as stale. Feel free to comment here if that is not the case.


Typescript typings

Hi AssemblyAI 👋
Thank you for this very interesting lib, could you please add some Typescript typings to make the fiddling with this lib easier?

I would find that useful as well!

Hi folks, the new 2.0 SDK is built using TypeScript and provides typings.


Understand how it scales

Hey @tomkerkhove, I'm learning how actors work in Dapr. Do you have a more elaborate description of how the whole architecture works ? I see the architecture diagram but I'm not sure how it scales for instance. Also what happens if the service goes down ? nothing works ? I understand that it registers Actor types but I'm not sure how crucial it is for the architecture.
Thanks

Dapr actors are turn-based and scaling happens through the underlying Dapr actor host, but I recommend reading the Dapr docs and ask for more details there

Yea I've read this and just watched the video where you explain it but was looking for more answers, especially feedback from users. Okay closing this issue.

For what it's worth, I was a customer when I recorded that video :)


news: announce osbuild-composer 26

Oh, I forgot once again. Thanks, @larskarlitski for an awesome article! :)


PyTorch UnitTest Hangs?

Hi,
I'm trying to run test_pytorch_dataloader_api.py but it hangs for two of the tests test_no_duplicates_with_multiple_workers and test_tiledb_pytorch_data_api_train_with_multiple_dim_data. Do I have to set any configuration? Do you run it on the command line? if so, could you pass me your command and where you run it from?
It hangs here(similar for both tests.
File "/home/rajiv/Documents/dev/python/TileDB-ML/tests/test_pytorch_dataloader_api.py", line 120, in test_tiledb_pytorch_data_api_train_with_multiple_dim_data
    for inputs, labels in train_loader:
  File "/home/rajiv/Documents/dev/python/TileDB-ML/venv/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 517, in __next__
    data = self._next_data()
...

I'm using Python 3.8.5 and a virtualenv
I don't know if it's related or not but there are two modules named tiledb in this project. One the library tiledb and secondly the folder(module) tiledb in this project (i.e. 'TileDB-ML/tiledb'). PyCharm statically refers to the library and not the module though the tests refer to the module

Hi,
I'm trying to run test_pytorch_dataloader_api.py but it hangs for two of the tests test_no_duplicates_with_multiple_workers and test_tiledb_pytorch_data_api_train_with_multiple_dim_data. Do I have to set any configuration? Do you run it on the command line? if so, could you pass me your command and where you run it from?
It hangs here(similar for both tests.
File "/home/rajiv/Documents/dev/python/TileDB-ML/tests/test_pytorch_dataloader_api.py", line 120, in test_tiledb_pytorch_data_api_train_with_multiple_dim_data
    for inputs, labels in train_loader:
  File "/home/rajiv/Documents/dev/python/TileDB-ML/venv/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 517, in __next__
    data = self._next_data()
...

I'm using Python 3.8.5 and a virtualenv
I don't know if it's related or not but there are two modules named tiledb in this project. One the library tiledb and secondly the folder(module) tiledb in this project (i.e. 'TileDB-ML/tiledb'). PyCharm statically refers to the library and not the module though the tests refer to the module

Hi @RAbraham! Thanks for you comment. Have you tried running 'python -m unittest discover tests' in TileDB-ML.

Hey @georgeSkoumas great to see you tonight. I look forward to the exciting work that you are about to do.
I ran python -m unittest discover tests' in TileDB-ML and it just hung(with one failure). Just to clarify, I can run the tests within PyCharm. I can successfully run the test test_except_with_diff_number_of_x_y_rows` but the tests mentioned above fail.

and thank you for the reference to hummingbird. It looks great.

Hey @georgeSkoumas great to see you tonight. I look forward to the exciting work that you are about to do.
I ran python -m unittest discover tests' in TileDB-ML and it just hung(with one failure). Just to clarify, I can run the tests within PyCharm. I can successfully run the test test_except_with_diff_number_of_x_y_rows` but the tests mentioned above fail.

@RAbraham It was very nice to talk to you too! Concerning test failure, that's strange especially taking into account that our CI workflow runs smoothly on github actions for Python 3.6, 3.7 and 3.8 for MacOS and Ubuntu. Are you running on MacOS or Ubuntu?

Hey @georgeSkoumas
I'm running on Ubuntu 20.04.
I also tried to run the project in a docker container and it was still hanging
$ git pull
Already up to date.
$ docker run --rm  -v $(pwd):/tiledb-ml -it python:3.7.4 bash
root@055d632887a0:/# cd /tiledb-ml/
root@055d632887a0:/tiledb-ml# python -m pip install --upgrade pip  # otherwise installation of TF 'errors' out with incompatible libraries for numpy etc.
root@055d632887a0:/tiledb-ml# python -m pip install --upgrade -r requirements.txt
root@055d632887a0:/tiledb-ml#python -m unittest discover tests # started at 9:06 AM

2021-05-24 13:06:08.449569: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2021-05-24 13:06:08.449611: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
.

# Interrupted at 9:21

Hey @georgeSkoumas
I'm running on Ubuntu 20.04.
I also tried to run the project in a docker container and it was still hanging
$ git pull
Already up to date.
$ docker run --rm  -v $(pwd):/tiledb-ml -it python:3.7.4 bash
root@055d632887a0:/# cd /tiledb-ml/
root@055d632887a0:/tiledb-ml# python -m pip install --upgrade pip  # otherwise installation of TF 'errors' out with incompatible libraries for numpy etc.
root@055d632887a0:/tiledb-ml# python -m pip install --upgrade -r requirements.txt
root@055d632887a0:/tiledb-ml#python -m unittest discover tests # started at 9:06 AM

2021-05-24 13:06:08.449569: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2021-05-24 13:06:08.449611: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
.

# Interrupted at 9:21

@RAbraham Seems like a Tensorflow problem while starting training a model. Could you please try to run it with -v argument and provide me with the output?

Sure. Please see below. it seems to be hanging at PyTorch(reusing the above docker enviroment) ..
root@055d632887a0:/tiledb-ml# python -m unittest discover tests -v
2021-05-24 19:58:49.704202: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2021-05-24 19:58:49.704245: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
test_except_with_diff_number_of_x_y_rows (test_pytorch_dataloader_api.TestTileDBDensePyTorchDataloaderAPI) ... ok
test_no_duplicates_with_multiple_workers (test_pytorch_dataloader_api.TestTileDBDensePyTorchDataloaderAPI) ...

Yes, if I remove num_workers it proceeds. Thanks @georgeSkoumas


When shall we use pcd_aug?

Thanks in advance for sharing your code for public research. The code is very standardized and easy to understand.
For my understanding, ./pc_processor/dataset/preprocess/augmentor.py is to preform PC augmenting operation such as flip, translation, etc. However, my concern is whether this will break image matching ( Lidar to camera2 matrix). Then I noticed that you have set the value of pcd_aug to false in ./tasks/pmf/trainer.py.
My questions:
1.  Do you adopt pcd_aug in training?
2.  In what situations should we adopt pcd_aug?
Looking forward to your reply, thanks.

Thanks for attention.

Use pcd augmentation in the training stage. What written in the ./tasks/pmf/trainer.py is just a default value, you can check augmentation related config for more info.
Pcd augmentation is to avoid over fitting, it's nearly always used in the training stage, but some methods will also adopt augmentation in the test stage, you can google test time augmentation or TTA for details, but I think it's more like a kaggle trick, which cannot improve the real ability of the algorithm.

Hi @hadonga Did you reproduce the performance reported in the paper using augmentation?

Hi there. Data augmentation is a nice try to improve the performance. However, as you mentioned in your email, it turns out the performance is even worse after w/ augmentation. In my opinion, it is because the simple augmentation(augmentor.py) will break the consistency between PC and image.  You can find some cross-modal augmentation papers to get more insights. good luck~  ps. pointaugmenting is a good paper.


Add healthcheck and fix commands syntax

% ./mwaa_cli.sh healthcheck --environment airflowV2 --region eu-west-1 --profile default

🚀 Airflow CLI command: "healthcheck"

  - Environment: forecast
  - Region: eu-west-1
  - Profile: tmp-fedid

⏳ Running ...

Very healthy

References

Checking Airflow Health Status
airflow dags show docs
airflow dags trigger docs

@raphaelmansuy


message.from() is null

message.from() 是null，但在消息前却携带了form wxid

Fixed by https://github.com/padlocal/wechaty-puppet-padlocal/commit/3aba53b70051db1b8d7ca9f61be0b4b59008920e, and published in version 0.1.5


Can't upgrade to 0.102.2

Home Assistant release with the issue:
0.101.2
Operating environment (HassOS/Generic):
Running HassOS on Raspberry Pi 3.
Supervisor logs:
These are the logs after pressing the Upgrade button
19-11-27 14:17:42 INFO (MainThread) [hassio.updater] Fetch update data from https://version.home-assistant.io/stable.json
19-11-27 14:17:52 INFO (MainThread) [hassio.homeassistant] Update Home Assistant to version 0.102.2
19-11-27 14:17:52 INFO (SyncWorker_12) [hassio.docker.interface] Update image homeassistant/raspberrypi3-homeassistant:0.101.2 to homeassistant/raspberrypi3-homeassistant:0.102.2
19-11-27 14:17:52 INFO (SyncWorker_12) [hassio.docker.interface] Pull image homeassistant/raspberrypi3-homeassistant tag 0.102.2.
19-11-27 14:17:58 ERROR (SyncWorker_12) [hassio.docker.interface] Can't install homeassistant/raspberrypi3-homeassistant:0.102.2 -> 500 Server Error: Internal Server Error ("readlink /mnt/data/docker/overlay2/l: invalid argument").
19-11-27 14:17:59 WARNING (MainThread) [hassio.homeassistant] Update Home Assistant image fails

Description of problem:
0.101.2 is the first version I installed. I installed it with the official docs on a Raspberry Pi including hassOS
Now, I saw that a new update is available. Because it supports Almond, I want to update! However, as you can see in the logs, it fails with the error message
ERROR (SyncWorker_12) [hassio.docker.interface] Can't install homeassistant/raspberrypi3-homeassistant:0.102.2 -> 500 Server Error: Internal Server Error ("readlink /mnt/data/docker/overlay2/l: invalid argument")
Steps I tried to solve

Restarted the Raspberrry Pi
Restarted the Supervisor (which is up2date btw)
Checked disk space (43% usage for root /)

I saw this link https://community.home-assistant.io/t/update-problem/103892/39 which suggests wiping and restoring from snapshot.  You can try fixing it by running hassio supervisor repair from the SSH commandline.

Thank you for your answer @frenck. I did it, the command completed sucessfully and I can now press the update button again without it failing right after a few seconds. However, I still have some questions and would be awesome if you could answer them :)

What does the supervisor do that a repair fixes the corruption of the Docker storage?
How did you know that the Docker storage was corrupted? Yes, there's a docker path in the error message, but how did you know? And how do you know the supervisor fixes this?
The update is running now. Is there any way I can monitor the update? The loading cirlce is just spinning and spinning. How do I know what progress it does? If I connect my Raspberry by HDMI it doesn't post any other logs, so is it somehow possible to see the current logs? Can I freely navigate inside hassio overview or just in the ssh session?

Thank you in advance and thank you once again for helping me. 👍

Once again, thank you @frenck. The upgrade has now succeeded and I'm running 0.102.2!

The overlay is a known issue, unfortunately, it happens quite a bit (especially on underpowered Raspberry Pi's as it seems), hence the repair was built.
It is basically a big cleanup/remove and re-install action for everything Docker (you config is stored outside of Docker, so that is never lost this way).
Glad you got it resolved! :+1:


GodMode: Enable Menubar Only Mode

Suggestion: Enable Mac Menubar mode in GodMode, the same way smolmenu allowed it.
Unsure if this is in the roadmap, but I really like the menubar feature without forcing a dedicated window.

we're definitely open to it, we miss part of it too :) @seanoliver likes the raycast experience, so we may try to replicate that but with our webapp first approach

@swyxio @seanoliver  (I have returned) what is the raycast + webapp approach look like? I'm happy to take a stab at it


Allow bulk configs to be overridable via mix tasks

config :recommender, Recommender.Elasticsearch.Cluster,
  # When indexing data using the `mix elasticsearch.build` task,
  # control the data ingestion rate by raising or lowering the number
  # of items to send in each bulk request.
  bulk_page_size: 5000,

  # Likewise, wait a given period between posting pages to give
  # Elasticsearch time to catch up.
  # 15 seconds
  bulk_wait_interval: 15_000,

Something like this:
mix elasticsearch.build users --cluster Recommender.Elasticsearch.Cluster --wait-interval 15000 --page-size 5000
On top of that. Allowing it to be configured per index level would also be nice.

Wow that was fast!
Thank you @danielberkompas

No problem! I released v0.4.0 with this change.


Memory leak from ssl_x509_fingerprint()

On the develop branch, pxyconn.c:pxy_debug_crt()
This fpr variable:
fpr = ssl_x509_fingerprint(crt, 1)
is never freed.
It's possible other calls to this function are also never freed, e.g. from pxy_srccert_create() and pxy_ossl_servername_cb().

The other invocations you mention should be freed when the respective ctx struct is freed. Please do object in case you disagree with this (somewhat rushed) analysis.
Thanks for reporting the memory leak!


Validate edge linestrings

So far, the core doesn't do anything with geometries. But if the edge linestring does not start at the from_node_id node point to the to to_node_id node point, that can lead to some very confusing situations, that have already happened. So we should consider validating this.
We should do this in Python on edge.add as well, if a linestring is passed.
In the core, I don't want to start relying on GDAL, but perhaps we can use (parts of) https://github.com/JuliaGeo/GeoPackage.jl.
We can just require snapping, so exact or Float64 approx equality should suffice. Note that I'm talking only about validating the start and end of the linestrings. This should handle both single and multi segment linestrings. Intermediate vertices of linestrings don't need to be validated; although it wouldn't be nice if they lie on Node points.

Whilst we plan to do this, we should postpone this until the end of the year, and communicate with @rbruijnshkv because their network generation will have to be updated for this, they have gaps from waterways to node points in the edges.
@DanielTollenaar wrote a Python function to check this separately; could you link that code here?

@visr you can find the code here: https://github.com/Deltares/Ribasim-NL/blob/7ede4725205bd9a5786649dc3667f47078a03308/src/ribasim_nl/ribasim_nl/network_validator.py#L93-L100 referring to this function applied for every row in the edge-table: https://github.com/Deltares/Ribasim-NL/blob/7ede4725205bd9a5786649dc3667f47078a03308/src/ribasim_nl/ribasim_nl/network_validator.py#L11-L24


Enable chat.experimental.variables.terminal by default

Only issue we should fix before this is done are some keybinding problems tracked in https://github.com/microsoft/vscode/issues/229854

I think this config check also needs to be removed https://github.com/microsoft/vscode/blob/a744313eb72ec82ca7986404ea8dc635068a5c25/src/vs/workbench/contrib/chat/browser/contrib/chatInputCompletions.ts#L614


validate_assignment=True and model_validator "after" doesn't prevent the improper value from getting through

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
As the example code shows, the model_validator "after" raises an exception if the attribute d is set to 100, which works properly. But you will also find the attribute d is set to 100 anyway.
The expected result should be the value of d remains unchanged, which is 1 in this case.
The builtin validator wouldn't change the value of d, when the d is assigned a string value as shown in the example code.
Example Code
from pydantic import BaseModel, ConfigDict, model_validator
class M(BaseModel):
    d: int
    model_config = ConfigDict(validate_assignment=True)

    @model_validator(mode='after')
    def after(self):
        print('-----', self)
        if self.d == 100:
            raise ValueError("100 is not allowed")
        return self

m = M(d=1)
print(m)

try:
    m.d = 'abc'
except Exception:
    print(m)    # d is 1, not changed

try:
    m.d = 100
except Exception:
    print(m)    # d is set to 100 incorrectly

Python, Pydantic & OS Version
pydantic version: 2.1.1
        pydantic-core version: 2.4.0
          pydantic-core build: profile=release pgo=false mimalloc=true
                 install path: /home/ykou/.local/share/virtualenvs/src-Notm8Sad/lib/python3.11/site-packages/pydantic
               python version: 3.11.3 (main, May 18 2023, 16:04:06) [GCC 12.2.0]
                     platform: Linux-6.3.3_1-aarch64-with-glibc2.36
     optional deps. installed: ['typing-extensions']

Selected Assignee: @davidhewitt

I can reproduce this. I have corrected your example so that it runs without any editing needed.

The solution is probably quite complicated, because the instance is already updated, we probably need to rollback the assignment.

An alternative may be to pass a proxy type to the validator in this case so that we don't need to mutate the instance until after the whole validation has completed.

Hi @davidhewitt,
It seems like the bug is still relevant, with Python 3.10.12 and pydantic==1.10.13, what's the status here ? Any plans ?


Loading jquery before angular and DOMContentLoaded (angular and jquery)

Just for some brief background, angular by default will load it's own jquery spinoff jqlite for DOM queries and manipulations, unless it sees jquery in which case it'll use that instead. From the angular docs:

To use jQuery, simply load it before DOMContentLoaded event fired.

Recently I converted over my angular application to use webpack and this is one of the only things left I've been unable to solve. I haven't found a way to have webpack load jquery prior to angular or prior to DOMContentLoaded for it to default to jquery. For the moment I'm just using $() to explicitly call jquery where I need to rather than relying on angular.element() which will fall back to jqlite. I was hoping the authors or any other heavy users of webpack would have some insight here as I've been unable to make this work on my own. Thanks.

I've try:
{ test: /jquery(\.min)?\.js$/, loader: 'expose?jQuery' }

but got error:
ERROR in ./~/angular/angular.js
Module not found: Error: Cannot resolve module 'expose'

running this  npm install expose-loader --save solve the issue.

An alternative is to use ProviderPlugin to automatically load jQuery when angular looks for it.
new webpack.ProvidePlugin({'window.jQuery': 'jquery'})

I'm not sure My situation fits. I used fancyBox plugin, and this plugin generated html <a href="javascript:jQuery.fancybox.jumpto(1);" . When I clicked this anchor, the error was jQuery is not defined. I used all the methods mentioned above, but still didn't work.
Any help please? I use Angular and webpack together BTW.

@jdivock @fredriks solution worked for me. You need to specify 'window.jQuery' not simply jQuery or $. I originally had
new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery:'jquery'
})

but was still seeing jQLite elements in my directives until i added 'window.jQuery':'jquery'. I had to keep jQuery:'jquery' because i was seeing an error from transition.js about jQuery being undefined. I don't have the time at the moment to understand why since a simple line fixes it.
Thanks!

Also this https://angulars.space/questions/ways-to-execute-a-jquery-function-in-angular-2-post-the-completion-of-each-component-load

@theangular this is a question from 2014 about AngularJS aka Angular 1


Feature/add tests

Adds framework to run E2E tests

@dismorfo , @andrewbattista  I asked you to review this. Could you please check that you can run tests using the instructions

I should be done by today.

2 failed, 2 passed, 40 warnings in 370.58s (0:06:10) in my end.
========================================== short test summary info =========================================== FAILED tests/test_ultraviolet_deposit.py::test_view - pywebpack.manifests.UnfinishedManifestError: {'status... FAILED tests/e2e/test_deposit_e2e.py::test_upload_form[Chrome] - AssertionError: assert 'New upload' == 'In..
Looks like the test might be running before webpack is done.

@dismorfo Could you check if somewhere in the out it complains about templates path ?

`
def test_upload_form(running_app, live_server, browser):
"""Test retrieval of upload page."""
browser.get(url_for('test_deposit.deposit_form', _external=True))
print(browser.get_log('browser'), file=sys.stderr)

  assert "New upload" == browser.find_element(By.TAG_NAME, "h1").text

E       AssertionError: assert 'New upload' == 'Internal Server Error'
E         - Internal Server Error
E         + New upload
tests/e2e/test_deposit_e2e.py:27: AssertionError
`
ERROR in ./js/invenio_theme/templates.js Module not found: Error: Can't resolve '@templates' in '/var/folders/p9/bb75s7pj1yn3wj4zb21t4zp80000gn/T/tmpngowltmg/assets/js/invenio_theme'

@dismorfo I removed webpack build  from configtest and modified the instructions, it's better to run it separately  to avoid collisions. Please try to run now using the new instructions. Before running delete the environment by running pipenv --rm.

@dismorfo , @andrewbattista based on the checks we made I've added requirements checks which run before test. Please try to install and run now

I got a "RuntimeError: Process exited with code 2" after I pull the latest changes and ran the command pipenv run invenio webpack buildall.
See: https://gist.github.com/dismorfo/bdcc52e2f88e77ce97993f370fb68d98

@dismorfo according to your gist there was one step skipped in the setup
pipenv run pip install -e .
That one register module's own entry points, so if it is missing there is a  build error. I was able to reproduce it.
Could you run the command above and then
pipenv run invenio webpack buildall

Ok. I will try again.

Test failed. I'm looking into the out put now.
See: https://gist.github.com/dismorfo/93fdd1eb234d3550417ae0cb9db58d8c

Just a white screen from the test in the .e2e_screenshots

From the gist it looks like Chromedriver is able to connect to the browser and there are no javascript errors ( warnings are fine). I am not getting any errors so it is something environment dependent. I am thinking probably it is a load delay issue due to lack of resources ? To exclude it  I've added a 5 minutes sleep to the first E2E test. Could you please pull it and just run
pipenv run ./run-tests.sh

@dismorfo as we discussed, I've added vagrant setup and confirmed that tests are passing on vagrant box (guest machine Centos 7). I used 2 different machines as hosts and it worked on both.  You can build the box from source or I can give you a box I already build


SC-2181 - Exhaust search API limit configuration

SC-2181  Create an Exhaust 'Manage' API for internal usage

Dependecny PR - https://github.com/project-sunbird/sunbird-analytics-service/pull/55
Internal exhaust API limit configuration
Type of change
Please choose appropriate options.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes in the below checkboxes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Ran Test A
[ ] Ran Test B

Test Configuration:

Software versions:
Hardware versions:

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Closing this since the API config is moved to sunbird-devops repo.


Make test fix

This uses the $(<D) and $(<F) variables in Make to ensure that the prove call works.
Also it ensures that the test target relies on sample.test being up-to-date.
P.S. I don't know how to get it to ignore all those merge-tracking commits :-/.

That seems to work fine on Windows too :)
This PR has 7 commits that are merges from the master.  Is there any way of no having that?  If not, as it's only a one-liner, perhaps a fresh fork?

Glad it works. I don't know how to get rid of the merge-tracking commits; will look into it... I gather that if I delete my fork we'll lose the links to the previous PRs (maybe that's not a big deal though).

Good point about the loss of data on previous PRs.

Through the dark magic of git rebase I believe I've cleaned up this branch (possibly a bit naughty, but now I know what I'm doing:

Don't use GitHub Desktop unless I accept getting the merge-tracking commits.
Rebase only before pushing for the first time, when synching with upstream.

Anyway, this PR should now contain only the actual change I made :-).


[Feature] Built-in Click Through Blocker

Given how many windows we have and such already, this merits investigation

Started writing a ClickThroughBlocker class omfg its so long. For dealling with console log issues.

Is this still being worked on and what's the status on this one?

Still being worked on. Had to start over basically cuz of the move. xd

"Merging" this into the master issue for the UI overhaul #127


New node page design

https://github.com/rancher/longhorn/issues/214

[ ] The Disks subtitle and the shadow was missing
[ ] The bar seems thinner than the design
[ ] Sorting not available for many fields.
[ ] The second line of text should be similar than the first line.
[ ] Only node level has the yellow indicator when almost full

Also:

[ ] We can add the Expand All button on the top left following this style (not the blue frame, that's selected)


conflict with ckeditor .textarea class name

I am running ckeditor on the same page as jquery-comments.  Not sure why the ckeditor plugin is conflicting with jquery-comments....

Okay fixed. CKEDITOR by default will auto hook up elements that have the contenteditable="true" attribute. You want to turn off the CKEDITOR's auto inline editing.
CKEDITOR.disableAutoInline = true;


Fixes broken link in contributing documentation

A simple fix for a link that was referencing to 404 page.

Thanks!


Should microphone.record_into() have an additional duration and/or buffer_offset parameters?

duration parameter
Currently, if we want to record a couple of seconds into a larger AudioFrame the way to do it would be:
my_audio = audio.AudioFrame(duration=4000)
microphone.record_into(my_audio, wait=False)
sleep(2000)
microphone.stop()

This works, but this is likely not very time-accurate (specially since uBit.sleep() can round to the 4ms of the CODAL ticker), and there currently isn't a way to check how much audio ended up recorded (https://github.com/microbit-foundation/micropython-microbit-v2/issues/196).
Providing a duration parameter, (record_into(buffer, duration, rate, wait)) that by default fills the buffer, could provide a more accurate way to record a fraction of the AudioFrame:
my_audio = audio.AudioFrame(duration=4000)
microphone.record_into(my_audio, duration=2000)

This also has the advantage of mirroring a bit more the record(duration, rate) function signature, so it's a more obvious way to achieve this than using the wait=False+stop().
But this is no enabling any new functionality or possibilities, it's a simplification and improvement of the current option, so this fall more into the "nice to have" basket.
buffer_offset parameter
As discussed in https://github.com/bbcmicrobit/micropython/pull/791/files#r1360487346 microphone.record_into() always starts recording from the beginning of the AudioFrame buffer. I agree that this is the right approach, as continuing playback from where it left off could be confusing as it's not obvious from the function name, or a behaviour shared by any of the other read_into()-like methods available. So if we wanted to be able to record multiple audio clips inside the same AudioFrame we would need to have an extra parameter to indicate a buffer offset to start recording.
However, this is not really needed to achieve this kind of functionality, as audio.play() can consume a list of AudioFrames to achieve the same.
So the change would be from something like this:
TOTAL_AUDIO = 4000
SAMPLE_SIZE = 500
audio_frames = []
for _ in range(0, TOTAL_AUDIO / SAMPLE_SIZE):
    audio_frames.append(microphone.record(duration=SAMPLE_SIZE))
audio.play(audio_frames)

To something like this:
SAMPLE_SIZE = 500
my_audio = audio.AudioFrame(duration=4000)
for i in range(0, len(my_audio), SAMPLE_SIZE):
    microphone.record_into(my_audio, duration=SAMPLE_SIZE, buffer_offset=i)
audio.play(my_audio)

So, in the end it is very similar. Some advantages are less fragmentation (specially if doing this continuously in the background), and slightly better memory consumption
In the case we'd want to add this parameter, having access to the internal marker (https://github.com/microbit-foundation/micropython-microbit-v2/issues/196) would be quite useful as well:
microphone.record_into(my_audio, duration=SAMPLE_SIZE, buffer_offset=my_audio.get_position())

Similar to the duration parameter, this might be in the "nice to have" basket, but I do wonder if using reusing the same AudioFrame constantly, without all the allocations, might be more significant in long running programmes.
Also, the name is a bit long, any suggestions welcomed.

Both of these proposal could be covered via:

https://github.com/microbit-foundation/micropython-microbit-v2/issues/205

The wait=False + microphone.stop() method is good enough and the way to record to offsets would be using the feature described in:

https://github.com/microbit-foundation/micropython-microbit-v2/issues/205#issuecomment-2221716206


Translate Warnings/invalid-hook-call-warning

Dear Maintainers, i propose PR in Translating  Invalid hook call warning. Please review this work and give me feedback.

@resir014 i have revised the translation based on your correction...please review again
Thank you


[BUG] "devDependencies" modules NOT IGNORED when zipping App

Steps to reproduce the bug:

put "devDependencies" inside your package.json with all your desired dependences (including nw-builder itself)
Run npm install
Run nwbuild --platforms win64 .\your_app\path

In the log you can see how \node_modules\nw-builder\... and other modules that are only for a development environment are zipped, causing the final exe to be inflated with all those inservible modules.

As an ugly workaround files key supports simple-glob format, so you can do ['.\your_app\path\**\**', '!.\your_app\path\node_modules\someDevDependency\**\**']

Yeah what you need to do is ignore them using a negative glob in your files parameter.
We could add this too though. Pull-requests are welcome. I'm not sure exactly how it would work. We could only copy directories in node_modules which are in dependencies but this means if someone runs npm i X without the --save flag then we won't copy that dependency over into the app. This would not copy over any directories the user might have creating in node_modules themselves (although unlikely). We could delete not copy any directories in node_modules which match modules listed in devDependencies which aren't also in dependencies. Again this won't work if someone forgets the --save-dev flag.
I really don't want to annoy anyone here by breaking their existing usage and I also don't want to have to add an option for this 😄 .

You can simply ignore the folders inside node_modules that are listed in
devDependencies. If some developer installs a dependency only for
development purposes it should be listed in devDependencies because by
default all packages not listed in the json are normal dependencies (not
dev).
El sáb., 30 de jul. de 2016 3:16 PM, Adam Lynch<EMAIL_ADDRESS>escribió:

Yeah what you need to do is ignore them using a negative glob in your
files parameter.
We could add this too though. Pull-requests are welcome. I'm not sure
exactly how it would work. We could only copy directories in node_modules
which are in dependencies but this means if someone runs npm i X without
the --save flag then we won't copy that dependency over into the app.
This would not copy over any directories the user might have creating in
node_modules themselves (although unlikely). We could delete not copy any
directories in node_modules which match modules listed in devDependencies
which aren't also in dependencies. Again this won't work if someone
forgets the --save-dev flag.
I really don't want to annoy anyone here by breaking their existing usage
and I also don't want to have to add an option for this 😄 .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nwjs/nw-builder/issues/348#issuecomment-236380765,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHnkf6JI5oTLV8bo1bk4LXLn100s-p34ks5qa5UKgaJpZM4JTRRo
.

You can simply ignore the folders inside node_modules that are listed in
devDependencies

I guess unless it's in both dependencies and devDependencies somehow.

by default all packages not listed in the json are normal dependencies (not
dev).

Could you please explain what you mean here? Are you saying that if someone forgets --save or --save-dev then it must be a production dependency?

You can simply ignore the folders inside node_modules that are listed in
devDependencies

If dependencies was flattened, then it would only delete highest-level dependencies
Perhaps we should go over dependency tree branches, but that's tough cause some dependencies
may be shared among dev and notDev. So basically we also want flatten dependency list, expect notDev from dev and ignore the remains
If list wan't flattened, then it's simple "ignore list of folders"

You mean you're worried that the user might have a as a production dependency and b as a dev dependency but a also depends on b? Ugh yeah, this is getting complicated.

Well, I am really new to ussing npm and lot of dependencies, so I don't
know how can I help.
El sáb., 30 de jul. de 2016 5:55 PM, Adam Lynch<EMAIL_ADDRESS>escribió:

You mean you're worried that the user might have a as a production
dependency and b as a dev dependency but a also depends on b? Ugh yeah,
this is getting complicated.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nwjs/nw-builder/issues/348#issuecomment-236389463,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHnkf0vLtewBIZcexAsSPwSHX3bTcE_Qks5qa7omgaJpZM4JTRRo
.

OK no problem

Copy everything but node_modules to a temporary directory and npm install --production should be much easier to implement.

Thanks!! You saved me.
El lun., 15 de ago. de 2016 8:28 AM, Evshiron Magicka <
<EMAIL_ADDRESS>escribió:

Copy everything but node_modules to a temporary directory and npm install
--production should be much easier to implement.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nwjs/nw-builder/issues/348#issuecomment-239781677,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHnkf79fWlDHygp_qw76QllqQWVooOjvks5qgE1ygaJpZM4JTRRo
.

I've used https://github.com/Snyk/resolve-deps recently and it might help a lot here.

I use following code to resolve deps by myself.

    const deps = {}
    const resolve = p => {
      if (!deps[p]){
        deps[p] = true
        const p_deps = require(`${p}/package.json`).dependencies || []
        Object.keys(p_deps).forEach(function(p){
          return resolve(p)
        })
      }
    }

    resolve('..') // path to your project which include package.json file
    delete deps['..'] // delete root node

    // then just copy deps to your build dir
    Object.keys(deps).forEach(function(p){
      // copy ('node_modules/' + p) to ('<path to your build dir>/node_modules/' + p)

      // your can just use shelljs to cp dir
      require('shelljs/golobal')
      cp('-r', 'node_modules/' + p, '<path to your build dir>/node_modules/' + p)
    })

And here is a full example for my project https://github.com/bramblex/nwjs-vue/blob/master/build/build.js#L52

@bramblex nice.
Note: this only works with npm 3+

You could also add a build switch like --cleanBuild or --production so that people could choose if they wanted it packaged as is or copied and rebuilt like @evshiron said.

@adam-lynch What's the status on this, please?


Try merge stellar 1.7.0 with my own customisations

I'm afraid this might break fancybox or waline.


[1.12.2] Eating Cyclic Hearts seems to have no effect on the player

Minecraft 1.12.2 & Cyclic 1.10.3
Single player
Describe problem
Eating the cyclic hearts seems to have no effect on the player except a minor saturation restoration as if you were eating any normal food. Eating it at half health did not heal any hearts as well, and my health bar stayed at 10 hearts, I jumped into lava to confirm. The difficulty was on Hard if it matters. Am I using this item correctly?
(If this is a suggestion and not a bug report, delete all this and just write your suggestion!)

Ahh ouch, it's a fairly large custom pack I've been working on for the past 3 months, glancing quickly at the modlist at the possible mods that might affect hearts:
Betweenlands
Baubley Heart Canisters
Mantle (handles the changing heart colors like how TiC used to do it)
Nutrition (it's additional hearts though seems to be compatible with Mantle)
I might be missing a couple but those 4 seem to be it at the moment.

It depends how they are written. Cyclic goes "you eat a thing, ok take your current hearts and add +1" so its usually fairly compatible, ive used it with nutrition and mantle before, others not so much.
What some mods may do is something like
"What does my mod logic say the players health should be? is it 10 hearts? ok set that now" and run that at regular intervals.  So when you eat a heart and go to 11, some other mod will be like "nope fix that".
Not anybodys fault really just how it works.  So you could either
A) disable the heart items from Cyclic in config file and let other systems take over
B) find out what mod is conflicting, and make a bug report there

Sounds like we figured this out, and its just a matter of mods doing the same thing in different ways.
I will mark as fixed by config, if theres any issues with only Cyclic, open them up anytime!


Development with m1 mac issues with create_env_installer:mac (osx-arm64)

Description
Following the local development guide, I'm running into an issue with the yarn create_env_installer:<platform> step, receiving  the error: Platform in lockfile 'osx-64' is not compatible with system platform 'osx-arm64'. On further inspection it looks that all the conda-osx-64.lock is downloading all packages for osx-64 currently.
Is there any devs using M1 macs that have a workaround to get conda working for local development?
These  issues after installing conda via miniforge3 and all relevant conda dependencies.

Reproduce

Go to developer documentation
Follow the instructions on an M1 macbook
once at the yarn create_env_installer:mac step
See error

yarn create_env_installer:mac
yarn run v1.22.19
warning ../../package.json: No license field
$ yarn clean_env_installer && conda-lock install --prefix ./env_installer/jlab_server ./env_installer/conda-osx-64.lock && conda pack -p ./env_installer/jlab_server -o ./env_installer/jlab_server.tar.gz
warning ../../package.json: No license field
$ rimraf ./env_installer/jlab_server.tar.gz && conda env remove -p ./env_installer/jlab_server -y
Traceback (most recent call last):
  File "/Users/winstonzhao/miniforge3/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 1477, in install
    do_validate_platform(lockfile_contents)
  File "/Users/winstonzhao/miniforge3/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 195, in do_validate_platform
    raise PlatformValidationError(
conda_lock.errors.PlatformValidationError: Platform in lockfile 'osx-64' is not compatible with system platform 'osx-arm64'.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/winstonzhao/miniforge3/bin/conda-lock", line 10, in <module>
    sys.exit(main())
  File "/Users/winstonzhao/miniforge3/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/Users/winstonzhao/miniforge3/lib/python3.10/site-packages/click/core.py", line 1078, in main

Expected behavior
yarn create_env_installer:mac creates the local python installer and local development works.

Context

Operating System and version: MacOS Ventura 13.4.1
JupyterLab-Desktop version: 4.0.6-1
Installer: local development? .dmg

Troubleshoot Output

Paste the output from running `jupyter troubleshoot` from the terminal inside of JupyterLab Desktop here.
You may want to sanitize the paths in the output.

Browser Output (required for interface issues after loading)

Paste the output from the DevTools JavaScript console here, if applicable.

Logs (required for issues with loading, server and startup)

Paste the logs from the `main.log` file here (optionally also from `renderer.log`).

thanks for reporting this @snoolord . since we are not bundling Apple silicon Python environment with the app yet (due to GitHub Actions limitation), we didn't add support in the local dev environment. I will work on the local dev environment support soon to address this problem.

@snoolord we now have full support for Apple silicon on Mac with version 4.0.7-1. For local development you can use the new script yarn create_env_installer:osx-arm64


Create an Issue Template for requesting a preset

per title.

Presets are included in the database now. In the absence of UI for creating presets, people can create them using the HTML API interface for now: https://decomp.me/api/preset


resource_counting.query_costs counts controlled T and controlled And as rotations

In [6]: b = Add(QUInt(4)).controlled()

In [7]: query_costs(b, [QECGatesCost()])
Out[7]:
{Controlled(subbloq=ArbitraryClifford(n=2), ctrl_spec=CtrlSpec(qdtypes=(QBit(),), cvs=(array(1),))): {QECGatesCost(): GateCounts(t=0, toffoli=0, cswap=0, and_bloq=0, clifford=0, rotation=0, measurement=0)},
 Controlled(subbloq=TGate(is_adjoint=False), ctrl_spec=CtrlSpec(qdtypes=(QBit(),), cvs=(array(1),))): {QECGatesCost(): GateCounts(t=0, toffoli=0, cswap=0, and_bloq=0, clifford=0, rotation=1, measurement=0)},
 Controlled(subbloq=And(cv1=1, cv2=1, uncompute=False), ctrl_spec=CtrlSpec(qdtypes=(QBit(),), cvs=(array(1),))): {QECGatesCost(): GateCounts(t=0, toffoli=0, cswap=0, and_bloq=0, clifford=0, rotation=4, measurement=0)},
 Controlled(subbloq=And(cv1=1, cv2=1, uncompute=True), ctrl_spec=CtrlSpec(qdtypes=(QBit(),), cvs=(array(1),))): {QECGatesCost(): GateCounts(t=0, toffoli=0, cswap=0, and_bloq=0, clifford=0, rotation=0, measurement=0)},
 Toffoli(): {QECGatesCost(): GateCounts(t=0, toffoli=1, cswap=0, and_bloq=0, clifford=0, rotation=0, measurement=0)},
 Controlled(subbloq=Add(a_dtype=QUInt(bitsize=4), b_dtype=QUInt(bitsize=4)), ctrl_spec=CtrlSpec(qdtypes=(QBit(),), cvs=(array(1),))): {QECGatesCost(): GateCounts(t=0, toffoli=15, cswap=0, and_bloq=0, clifford=0, rotation=12, measurement=0)}}

update: desired output should be no rotations for this gate ... instead a complexity based on and_bloq and/or toffoli

can you describe the observed and desired behavior

updated

Got it. Add().controlled() uses the default fallback of Controlled(Add()), from which we cannot determine the resource counts. Following #1311 this will break from not being able to determine the costs for Controlled(ArbitraryClifford)) from And's call graph. With #873 , And is supposed to be a leaf bloq. Xref #1273 #1304 , And().controlled() probably shouldn't be allowed; and ergo Controlled(Add()) won't support decomposition.
Add.controlled() should return CAdd

patching in #1305, the error message becomes
ValueError: Cannot control non-thru bloqs. Found Register(name='target', dtype=QBit(), _shape=(), side=<Side.LEFT: 1>) in And†

Echoing my concerns from
And().controlled() should be allowed IMO. In general; not being able to call bloq.controlled() for any bloq that has non-THRU registers would be a big restriction when expressing algorithms. Some bloqs where (a) RIGHT registers show up, (b) using bloq.controlled() is often desired are - QROAMClean (we often want controlled data lookups), (b) state preparation bloqs, (c) MultiControlX which is used in ReflectionUsingPrepare and uses a ladder of And gates, (d) other arithmetic bloqs like multiplication, sorting etc. which use RIGHT registers currently.
Whether we force users to implement a custom controlled bloq or we support Controlled(bloq) if bloq has non-THRU registers can be discussed; but a user not being able to do bloq.controlled() for a bloq that has non-THRU registers is very extreme IMO.

And().controlled() makes sense because we can return MultiAnd. I've come around to Controlled(MultiAnd) making sense -- its decomposition is controlled versions of all the subbloqs (although this is not the most efficient construction; it's at least accurate). If we assume And becomes a leaf/atomic bloq, Controlled(And) works, but coincidentally. The tensor stuff works for atomic/leaf bloqs and returns |0> for inactive control; which matches expectations for Controlled(And) -> MultiAnd; but not in general

apart from the concerns about controlling an And gate returns additional junk registers

At present, this returns an error message; although the specific error message may change depending on #1304 and #1346
This is preferable to returning incorrect counts.
The real solution in this case is to override get_ctrl_system to return CAdd


[schema registry] Avsc details leak through prototypes given to deserialized objects

Forking distinct issue from #10950

Decide if it is OK that deserialized objects are given a prototype from avsc causing a slight observable difference between plain data going in and data coming back.

This may not be exactly what's happening here. Put together a repro and figure out exactly what causes deepEqual to fail currently.   See https://github.com/Azure/azure-sdk-for-js/pull/10890#discussion_r482449414

I debugged through this and put a repro of the underlying cause below.
Summary: avsc gives objects it deserializes a prototype that causes the result returned to have 7 additional inherited enumerable properties: clone, compare, isValid, toBuffer, toString, wrap, wrapped.  This is what causes chai to throw on deepEqual comparison as it considers all enumerable properties, including functions AFAICT. JSON.stringify(left) === JSON.stringify(right), which was the workaround pending investigation holds because the extra enumerable properties are functions, which JSON.stringify skips.
So now the question remains: is this OK? I am slightly concerned that consumers of schema-registry-avro would take a dependency on these functions, which might prevent us from replacing the avro serializer with another implementation due to the risk of breaking such uses. But maybe that is too paranoid. @xirzec Thoughts?
So far it appears to be non-trivial to strip these properties out (or make them non-enumerable if we prefer) as the return value can be a graph of objects where each of the objects would have them. I'm looking into whether the resolver arg to fromBuffer might be able to allow me to do this cleanly.
Repro of underlying cause
import * as avro from "avsc";
import { assert } from "chai";

const schema: avro.schema.RecordType = {
  type: "record",
  name: "User",
  namespace: "com.azure.schemaregistry.samples",
  fields: [
    {
      name: "firstName",
      type: "string",
    },
    {
      name: "lastName",
      type: "string",
    },
  ],
};

const type = avro.Type.forSchema(schema);
const value = { firstName: "Nick", lastName: "Guerrera"};
const serialized = type.toBuffer(value);
const deserialized = type.fromBuffer(serialized);

for (const key in value) {
    console.log(key);
}
console.log("");
for (const key in deserialized) {
    console.log(key);
}

assert.deepEqual(value, deserialized);

> node .\index.js
firstName
lastName

firstName
lastName
clone
compare
isValid
toBuffer
toString
wrap
wrapped

C:\Temp\rp\node_modules\chai\lib\chai\assertion.js:141
      throw new AssertionError(msg, {
      ^
AssertionError: expected { Object (firstName, lastName) } to deeply equal { Object (firstName, lastName) }
    at Object.<anonymous> (C:\Temp\rp\index.js:50:15)
    at Module._compile (internal/modules/cjs/loader.js:1075:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1096:10)
    at Module.load (internal/modules/cjs/loader.js:940:32)
    at Function.Module._load (internal/modules/cjs/loader.js:781:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  showDiff: true,
  actual: { firstName: 'Nick', lastName: 'Guerrera' },
  expected: User { firstName: 'Nick', lastName: 'Guerrera' }
}

Looks like this logic mostly happens here: https://github.com/mtth/avsc/blob/f3c6b1c104815bf239b08311fab1c5dc1ec1290d/lib/types.js#L2185
It's somewhat vexing to me that the library author has no option to provide plain objects.

Hi there. If you update avsc to 5.5.1, you can use an option to omit these methods:
const avroType = avro.Type.forSchema(JSON.parse(schema), {omitRecordMethods: true});

Note that decoded record values will still have a named constructor for performance reasons. If you'd like to hide this constructor as well, you can do so with a type hook. For example to copy the values into plain objects:
/** Minimal logical type which returns decoded records as plain objects. */
class PlainRecordType extends avro.types.LogicalType {
  _fromValue(obj) { return {...obj}; }
  _toValue(obj) { return obj; }

  /** Returns a type hook wrapping all records and errors with this logical type. */
  static createHook() {
    const visited = new Set();
    return (schema, opts) => {
      const {name, type} = schema;
      if ((type !== 'record' && type !== 'error') || visited.has(name)) {
        return; // Fall back to default processing
      }
      visited.add(name);
      return new PlainRecordType(schema, opts);
    };
  }
}

Sample usage:
const plainType = avro.Type.forSchema({
  type: 'record',
  name: 'Person',
  fields: [{name: 'name', type: 'string'}],
}, {typeHook: PlainRecordType.createHook()});

const buf = plainType.toBuffer({name: 'Ann'});
const val = plainType.fromBuffer(buf);
console.log(val.constructor.name); // Object

You can tweak the logical type's implementation above to match the API you settle on: _fromValue generates the decoded values exposed to users, _toValue determines the data you'd like to accept when encoding. The logical type documentation has more information, including a couple examples.

@mtth Awesome, thanks!

@mtth you rock! Thank you so much.

I put up a PR with omitRecordMethods: https://github.com/Azure/azure-sdk-for-js/pull/11786
Worked like a charm. Thanks again, @mtth!
I didn't do the maneuver to drop the named constructor. I wasn't sure it was necessary and there's some risk of losing perf to copying every object, right? @xirzec Do you think it's OK to leave the constructor being something else than Object?

https://twitter.com/nick_guerrera/status/1315761788181340165?s=20

I didn't do the maneuver to drop the named constructor (yet). I wasn't sure it was necessary and there's some risk of losing perf to copying every object, right? @xirzec Do you think it's OK to leave the constructor being something else than Object?

I'm not worried about that; I think JSON.stringify() will work fine without the Object constructor.

Happy to help. Thanks for the kind words :).


Slurm reservations

Creating a reservation
You should be able to create a reservation, I believe Ops, Dev and DataSci have this authority, example 30 day res for c0220-c0223 for 3 users staring now
scontrol create reservation Reservation=$resv-name starttime=now duration=30-00:00:00 Nodes=c\[0220-0223] User=$user-a

Using a reservation (for researchers)
And I also noticed we need to use --reservation=$resv-name to make use of it with sbatch and srun.
Updating a reservation
scontrol update reservations Reservation=$resv-name User+=$user-b

Adding nodes to a reservation
If you do add new nodes, you’ll have to delete the reservation and recreate. To avoid jobs jumping on the nodes in the short time between delete and create, you should first drain all of the reservation nodes (make sure to update the node list in all of the commands)
for node in c0{232..235}; do scontrol_admin update NodeName="$node" State=drain Reason="RCOPS: Creating $resv-name reservation"; done

scontrol delete reservationname=$resv-name
scontrol create reservation Reservation=$resv-name starttime=now duration=35-00:00:00 Nodes=c\[0220-0223] User=$user-a,$user-b

for node in c0{232..235}; do scontrol_admin update NodeName="$node" State=undrain Reason="RCOPS: Created $resv-name reservation"; done

Canceling/ending reservation
$ scontrol show res
ReservationName=$resv-name StartTime=2023-10-19T10:14:33 EndTime=2023-11-18T09:14:33 Duration=30-00:00:00
   Nodes=c[0232-0235] NodeCnt=4 CoreCnt=512 Features=(null) PartitionName=(null) Flags=SPEC_NODES
   TRES=cpu=512
   Users=$user-a,$user-b Accounts=(null) Licenses=(null) State=ACTIVE BurstBuffer=(null) Watts=n/a

$ scontrol delete reservationname=$resv-name

If you create a reservation for the purposes of research workflow facilitation, you will still encounter QoS and job time limit restrictions. If these are barriers, a temporary partition will need to also be created.

Create partition
Drain desired nodes
When drained, move desired nodes to new partition
Set up reservation per above comment
Perform work
Drain nodes
When drained, move nodes back to original partition
Delete new partition

A sample partition definition for posterity
PartitionName=$name Default=NO MinNodes=1 MaxNodes=5 MaxTime=6-06:00:00 DefaultTime=01:00:00 AllowGroups=ALL DisableRootJobs=NO RootOnly=NO Hidden=NO Shared=NO GraceTime=0 PreemptMode=OFF ReqResv=NO AllowAccounts=ALL AllowQos=ALL LLN=NO ExclusiveUser=NO PriorityJobFactor=1 PriorityTier=8 OverSubscribe=NO State=UP Nodes=c[0232-0235]

You can force access to the partition to require reservations using ReqResv=yes. This allows dynamic limitation of who is authorized to use the partition.


Close #44

Calling cg_iRIC_Read_Sol_Grid2d_Coords() cause solver crash when there is not grid data for solutions.

Hi Scott,
This is a misc and obvious bug fix, so I merge this by myself.
Thank you,
Keisuke Inoue