Documentation for building the command-line client is inadequate

The current instructions at https://github.com/docker/notary/blob/master/README.md say:

Prerequisites:
Go >= 1.6.1
godep installed
libtool development headers installed
Ubuntu: apt-get install libtool-dev
CentOS/RedHat: yum install libtool-ltdl-devel
Mac OS (Homebrew): brew install libtool
Run make binaries, which creates the Notary Client CLI binary at bin/notary.

I've tried to follow all these instructions, yet "make binaries" fails with dependency errors:

GOPATH=/root/go PATH=$PATH:/usr/local/go/bin go get github.com/tools/godep
GOPATH=/root/go:/root/notary/Godeps/_workspace PATH=$PATH:/usr/local/go/bin make binaries
pkcs11 import was not found anywhere without a build tag, yay
xargs: go: terminated by signal 13

/root/notary/bin/notary-server
cmd/notary-server/config.go:9:2: cannot find package "github.com/Sirupsen/logrus" in any of:
/usr/local/go/src/github.com/Sirupsen/logrus (from $GOROOT)
/root/go/src/github.com/Sirupsen/logrus (from $GOPATH)
/root/go/src/github.com/Sirupsen/logrus
/root/notary/Godeps/_workspace/src/github.com/Sirupsen/logrus

Could someone update the docs with the full list of requirements?  Thanks.

@dnwake: this is fairly strange because the listed prerequisites should be sufficient.  Which version of notary are you trying to build?
Also, are you sure you're on go1.6.1?  I'm not sure where the Godeps/_workspace references are coming from, but go1.6.1 should be able to handle the vendoring structure without godeps

@riyazdf

go version
go version go1.6.1 linux/amd64

git log -n 1
commit 358add60750328a5dea72c5cf43e29eacd9e6e97
Merge: ebb2eb8 84b1210
Author: David Lawrence<EMAIL_ADDRESS>Date:   Tue Apr 19 15:45:45 2016 -0700

Merge pull request #686 from docker/go1.6.1

Update go in dockerfiles to go 1.6.1

GOPATH=$(pwd) make binaries
xargs: go: terminated by signal 13
pkcs11 import was not found anywhere without a build tag, yay

/root/notary/bin/notary-server
cmd/notary-server/config.go:9:2: cannot find package "github.com/Sirupsen/logrus" in any of:
/usr/local/go/src/github.com/Sirupsen/logrus (from $GOROOT)
/root/notary/src/github.com/Sirupsen/logrus (from $GOPATH)

@dnwake thanks for clarifying!  What's your surrounding go directory structure?  This might be the issue since go's standard vendoring seems to assume a certain layout.  Here's a layout I just tested with, for example:
go/
    src/
        github.com/
            docker/
                notary/

And then: GOPATH=$(<path to go/>) make binaries from within the notary subdir.
Please let me know how this works for you!

@riyazdf  That fixed it for me.  Maybe that point about the directory layout and the GOPATH should be made explicity in the docs.
Thanks!


Feature/92 front page readme

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@d219625). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #139   +/-   ##
=======================================
  Coverage        ?   58.94%
=======================================
  Files           ?       33
  Lines           ?     2443
  Branches        ?        0
=======================================
  Hits            ?     1440
  Misses          ?     1003
  Partials        ?        0

Continue to review full report at Codecov.

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

docs rendered here: https://docs.endaq.com/en/feature-92_front_page_readme/


pull request for e2e test at 11/23/2016 10:26:03

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Redefine or modify the curator comment for ubiquitin ligase inhibitor activity (GO:1990948)?

From @robnash on June 13, 2018 19:7
Hi,
I was annotating a novel protein shown to be an inhibitor of the Anaphase-Promoting Complex/Cyclosome (APC/C), acting on two mitotic forms of the APC/C, APC/C-cdc20 and APC/C-cdh1 from new paper by Schuyler et al., 2018 (29883473)
I was going to annotate to GO:1990948 ubiquitin ligase inhibitor activity and use column 16 inputs to specify both APC/C-cdc20 (CPX-760) and APC/C-cdh1 (CPX-761). However, associated with this term is curator comment (https://www.ebi.ac.uk/QuickGO/term/GO:1990948):
Comments
this term is only for gene products which bind to and directly inhibit the APC-Cdc20 complex (i.e the MCC complex).
So I used the upper level term for these annotations.
GO:0055105	ubiquitin-protein transferase inhibitor activity
although I would have liked to use the more granular term.
Question is should we:

Modify the curator comment to state that GO:1990948 can be used to annotate all forms of the APC/C which in yeast are: APC/C-Cdc20, APC/C-Cdh1 and the meiotic form APC/C-Ama1

Modify the definition to be more inclusive so this term could be used for all forms of the APC/C or possibly so it could be used to annotate any ubiquitin ligase inhibitor, as to my knowledge there no terms other than the parent that could be used for other E2 inhibitors?

Create more instances for the other APC/C variants, like APC/C-Cdh1. I personally do not favor this solution, as it creates very specific terms.

Cheers,
Rob
Copied from original issue: geneontology/go-annotation#2008

I think it would be OK to remove this comment. It does not match the fact that
APC-cdc20 is a narrow synonym.
I think we changed this at some point and did not remove the comment maybe?

I already used it with different substrates to cdc20/slp1 here:
https://www.pombase.org/gene/SPAC5D6.08c

@ukemi @ValWood
Thanks, will update my annotations!


pcli tx send is broken with multiple outputs

To Reproduce
~/c/p/penumbra (zk-integration-2_perf-debug|✔) $ ./target/release/pcli tx send 100penumbra,100penumbra,100penumbra --to penumbrav2t1zp2tshpts702gmlwghegrv5vml8myz97v42dccdgk5falnkc3qlk492fgzc79e4xy234rdl8j7dvk0qx95d3xrkm9dhl3qjulqver8667jdg4tek0k7afg09fg4dfel0rkn6y8
Scanning blocks from last sync height 43466 to latest height 44738
[0s] ██████████████████████████████████████████████████    1272/1272    7146/s ETA: 0s
Error: can't build send transaction

Caused by:
    status: Unavailable, message: "error fetching notes: requested amount of 100 exceeds total of 0", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc"} }

Expected behavior
The transaction can be built correctly using the required amount of input tokens.

Adding some tracing::warn! lines to the view service suggests the asset ID is wrong, and the amount is also wrong -- perhaps a parsing issue?
     Running `target/release/pcli tx send 100penumbra,100penumbra,100penumbra --to penumbrav2t1zp2tshpts702gmlwghegrv5vml8myz97v42dccdgk5falnkc3qlk492fgzc79e4xy234rdl8j7dvk0qx95d3xrkm9dhl3qjulqver8667jdg4tek0k7afg09fg4dfel0rkn6y8`
2023-02-17T00:32:07.323287Z  INFO penumbra_view::worker: fetching assets
2023-02-17T00:32:07.399569Z  INFO penumbra_view::worker: updated asset cache
2023-02-17T00:32:07.399598Z  INFO penumbra_view::worker: starting client sync
2023-02-17T00:32:07.459396Z DEBUG latest_known_block_height: penumbra_view::service: latest_block_height=45343 node_catching_up=false latest_known_block_height=45343
Scanning blocks from last sync height 45296 to latest height 45343
[0s] ██████████████████████████████████████████████████      47/47      806/s ETA: 0s
2023-02-17T00:32:07.469409Z DEBUG send: penumbra_wallet::plan: values=[Value { amount: Amount { inner: 100 }, asset_id: passet1gkgzndkaysmfs9h665ayccdyaunh80fmnjrc3qauhrdps5a6958q00gcfv }] fee=Fee(Value { amount: Amount { inner: 0 }, asset_id: passet1984fctenw8m2fpl8a9wzguzp7j34d7vravryuhft808nyt9fdggqxmanqm }) dest_address=penumbrav2t1zp2tshpts702gmlwghegrv5vml8myz97v42dccdgk5falnkc3qlk492fgzc79e4xy234rdl8j7dvk0qx95d3xrkm9dhl3qjulqver8667jdg4tek0k7afg09fg4dfel0rkn6y8 source_address=None tx_memo=None
2023-02-17T00:32:07.469844Z  WARN send: penumbra_view::service: request=Request { metadata: MetadataMap { headers: {"te": "trailers", "content-type": "application/grpc"} }, message: NotesRequest { include_spent: false, asset_id: Some(AssetId { inner: [69, 144, 41, 182, 221, 36, 54, 152, 22, 250, 213, 58, 76, 97, 164, 239, 39, 115, 189, 59, 156, 135, 136, 131, 188, 184, 218, 24, 83, 186, 45, 14] }), address_index: None, amount_to_spend: 100, account_id: Some(AccountId { inner: [88, 250, 100, 109, 250, 20, 162, 180, 144, 27, 192, 44, 245, 231, 243, 135, 149, 152, 9, 235, 71, 69, 119, 84, 131, 243, 37, 208, 178, 250, 236, 10] }), token: None }, extensions: Extensions }
2023-02-17T00:32:07.469870Z  WARN send: penumbra_view::service: include_spent=false asset_id=Some(passet1gkgzndkaysmfs9h665ayccdyaunh80fmnjrc3qauhrdps5a6958q00gcfv) staking=passet1984fctenw8m2fpl8a9wzguzp7j34d7vravryuhft808nyt9fdggqxmanqm address_index=None
Error: can't build send transaction

Caused by:
    status: Unavailable, message: "error fetching notes: requested amount of 100 exceeds total of 0", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc"} }

The values are space separated, not comma separated. Perhaps we should exclude punctuation from denom parsing?


Does appmon support python3?

File "appmon.py", line 34
"""
^
SyntaxError: Missing parentheses in call to 'print'.  But it should be easily upgradable to Python 3. It would be great if someone wants to send a pull request.


Update Install Guide for 10.4

[x] Updated software references from 10.3.1 to 10.4

[x] Add new window service user/password variables to table in "Install" and configure the Ops Server installation scripts section.

[x] Remove ops_install_geoevent_patches variable in table in "Install" and configure the Ops Server installation scripts section.

[x] Remove 'Install "Portal for ArcGIS 10.3.1 Hot Fix" section.

[x] Update footer. Change version to <IP_ADDRESS>. Remove month and year since there isn't a release yet.

[x] Update cover page. Change year in title to 2016. Remove "(2015 4th Quarter)" since there isn't a release yet. Update date of guilde.

Fixed in ops-server-config/v.next. Closing issue.


Cannot get latest version: module contains a go.mod file, so module path should be github.com/eyebluecn/tank/v3

Background
The github.com/eyebluecn/tank uses Go modules and the current release stream version is v3. It must comply with the specification of "Releasing Modules for v2 or higher" available in the Modules documentation and enforced since the most recent versions of Go. Quoting the specification:

A package that has opted in to modules must include the major version in the import path to import any v2+ modules
To preserve import compatibility, the go command requires that modules with major version v2 or later use a module path with that major version as the final element. For example, version v2.0.0 of example.com/m must instead use module path example.com/m/v2.
https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher

Using go get (under go1.13 and go1.14) does not work for anything later than<EMAIL_ADDRESS>which was the last version to not have modules.
I consider this a pretty high severity issue since not doing so prevents any other Go project also using Go Modules to properly require eyebluecn/tank on versions v3+ as a dependency, resulting in errors like:
invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v3

SO anyone using Go modules will not be able to easily use any newer version of eyebluecn/tank
Steps to Reproduce

Under a project making use of Go modules, run go get targeting any version >= v3.0.0 of the eyebluecn/tank:

$ go get<EMAIL_ADDRESS>go: finding github.com/eyebluecn/tank v3.0.3
go: finding github.com/eyebluecn/tank v3.0.3
go get<EMAIL_ADDRESS><EMAIL_ADDRESS>invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v3

Solution
Kill the go.mod files.
This would push them back to not being managed by Go modules (instead of incorrectly using Go modules). Importing specific versions would work, but they'd receive the +incompatible prefix and would need to be manually upgraded.
Probably best option short-term -- better to not use Go modules than use it incorrectly.
Also, best option for older branches/versions that aren't maintained.
Make breaking changes
Patch the go.mod file to declare the module as github.com/eyebluecn/tank/v3 as per the specs. AND adjust all internal imports.
This would probably only be acceptable on the v3 line, since it'd break any consumers.
Two methods can be use:

a new branch in the same repo
use the folders structure on mainline branch (see Major Subdirectory structure on the Modules page).

Then development would take place in the new branch/repository, with the existing only updated with tags and/or with new things to forward.
Major version bump / repository change
Leave v3 as a dead version and bump to v4 with the path changes.
References

https://github.com/golang/go/wiki/Modules#semantic-import-versioning
https://golang.org/cmd/go/#hdr-Module_compatibility_and_semantic_versioning
https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher

@zicla @hxsherry

Try the lasteset version 3.1.0

@zicla   Still not work<EMAIL_ADDRESS>invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v3

This project is not a lib. So I don't think it's appropriate to import tank into your project.

OK，thank you for your reply.


In containers view, show short lived connections to/from the internet.

Problem: short-lived, incoming connections from the internet to a container don't show up in the UI.  This is because the local end of the connection is to the hosts IP (not a container), and we drop nodes without a container on them.
Outgoing short lived connections to the internet do work.
We should take into account the container port mappings when translating this node to a container ID.  This can be done unambiguously.

This doesn't work yet

@fons would you mind giving this a test?  I can't test easily from singapore.
@peterbourgon its a bit untidy, so I'd welcome suggestions on how to clean this up.

This should finally fix #446

@tomwilkie Ops, I missed this (I wish I could have the fons user though  :) )
Unfortunately it still doesn't work. The Internet node is now gone from the non-system containers view:

Report: https://gist.github.com/2opremio/2d03e27de9a3bf39bfc2
Here's the view with system containers:

Okay I'll have to take a look next week.  Copying binaries to ec2 takes too long from here.

@fons I've got this working for my test case, could you confirm it works for yours?

@tomwilkie Same result :S

@2opremio I'm confident I've got it this time.  Just writing a integration test.  Fancy giving it a try?

@tomwilkie Yes, you did!

Test failures aside, LGTM

@2opremio does your lgtm extend to the code, or just saying it works?
I've added a unit test as well, to ensure this case is covered.  Please take a look.


Remove sciond.SvcBR from SCIOND API

A service address for the BR does not make sense, so sciond.SvcBR should be dropped.
We should also consider dropping the SIBRA SCIOND service, as we're looking at removing the associated flags anyway in https://github.com/scionproto/scion/issues/1622. We can revisit adding the service type when SIBRA gets closer to implementation.

#1622 is dropping the sibra flags from the path request call. That's because sibra will use a different api call/messaging in the future. I wouldn't drop the SIBRA SVC address.


allow unreleased CHANGELOG section if all subsections are empty

My team likes to keep the 6 subsection headings from keepachangelog in CHANGELOG.md that way we don't have to remember the categories. This change only prevents the release if there are any bullets in any of the subsections.

@jgravois ready for final review

v5.0.1 😉


Return type for accessors is missing.

[x] I have checked issues with bug label and found no duplicates

Expected Behavior

Type returned by accessors must be provided.
Actual Behavior

No return type provided.
Steps to reproduce the bug

Declare any accessor:
    public get live(): boolean {
        return true;
    }

Only the name of accessor is emitted, but no return boolean type, unlike for regular properties.

Environment

Typedoc version: 0.14.2
Node.js version: 12.3.1
OS: Windows 10

Thanks for the report! This must be an issue with the renderer or the theme. We have tests in the converter and it seems to be recording the return value correctly.
https://github.com/TypeStrong/typedoc/blob/f781b20dda3dfafd453cf540f58fcd8cf4473316/src/test/converter/getter-setter/specs.json#L44-L62

@aciccarello You are right! Switching from the minimal theme to default one solved the problem, the accessor is shown there, although not how I expected:

It is a little strange that it shows parenthesis for an accessor.
Anyway, this is strictly an issue with the minimal theme, so I'm changing the title accordingly.

Great! Thanks for checking that out. Should be an easy fix then. I'd also be okay with dropping the parenthesis for getters and setters.

Fix for not showing accessor type
---
partials/member.hbs | 4 +++-
@@ -6,9 +6,11 @@

     {{#if signatures}}
         {{> member.signatures}}
+    {{else}}{{#if hasGetterOrSetter}}
+        {{> member.getterSetter}}
     {{else}}
         {{> member.declaration}}
-    {{/if}}
+    {{/if}}{{/if}}

     {{#unless isContainer}}
         {{#each groups}}
--

Fixed in https://github.com/TypeStrong/typedoc-default-themes/pull/89. Will be released later today.


Add additional step for java namespaces

The step is to allow lang to add their own steps into docs update.
Java testing:
https://github.com/Azure/azure-sdk-for-java/pull/27248

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

Talked with Wes, and we think the step is not necessary for current use. Close the PR.


LaTeX support

Is LaTeX support planned?

LaTeX in general i probably too much for this crate. With that said, a subset for math would definitely be nice to have.

seems like pulldown_cmark has merged the support for math expressions: https://github.com/pulldown-cmark/pulldown-cmark/pull/734
we could then use MathJax to render it to an SVG and draw it

It would be really nice. It's just incredibly painful that node or headless chrome must be involved. I would have preferred to avoid that.

It would be really nice. It's just incredibly painful that node or headless chrome must be involved. I would have preferred to avoid that.

True, I guess we could embed a JavaScript engine like QuickJS or Duktape and make MathJax run in it? :P
I haven't found any pure Rust TeX -> SVG renderer, aside from Tectonic which seems to only render to HTML

Yeah. Your first suggestion is the most sane option. Maybe this gives me an excuse to add support for mermaid too :thinking:
There is definitely a lot to consider. For instance the headless chrome feature in that crate fetches mathjax from CDN and as I would expect most people to use that backend it would mean that it would require internet access to work. At least that would have to be documented.

or we can just leave it to the user and make then a closure that will render LaTeX into a texture

I don't think moving the problem to the user is the solution :laughing:

Looking further, I guess it's fine with the node backend. It would just require a fair bit of build instructions.

I don't think moving the problem to the user is the solution :laughing:

I think that's the best option, since there's no easy way of rendering LaTeX in Rust. The implementation would also be different when compiling for web, since there you can directly interface with the browsers' JS engine

I think that's the best option, since there's no easy way of rendering LaTeX in Rust. The implementation would also be different when compiling for web, since there you can directly interface with the browsers' JS engine

True. I did not think about for web.


Json deserialization issue

Today, I tried out abap2ui5 on my premise system but when i started any demo app  i got a dump as the image:

Please help me!

HI tienlevan,
thanks for sharing the issue!
can you see the starting page? and/or demo overview page?
It looks like a dump, can you send me a screenshot of the dump in st22 or in eclipse, that i can see the code line where it is raised.

Hi @oblomov-dev ,
On the starting page, I clicked on button continue to show demo app, the dump was raised in class /UI2/CL_JSON method Restore:
.

can you try to start an app directly by using for example the following classname 'z2ui5_cl_app_demo_01' at the starting page and go to the app via link?
Can you also send me a screenshot of the callstack that i can see which method of the frameworks caused the problem.
So far it seems like a very generic problem and i do not get it on my system 🤔

Hi @oblomov-dev,
I have solved the dump by myself! The Problem came from generic type in json deserialization method!
Thanks you for supporting me!

it will help others if you write how you solved it.


Publish in the Open VSX Registry

I'd like to suggest to make this extension available through Open VSX, a vendor-neutral open-source alternative to the Visual Studio Marketplace.
I'm an avid user of VSCodium, a FooS distribution of Visual Studio Code that provides MIT-licensed binary releases of VS Code that don't include Microsoft's telemetry, for example. Due to licensing concerns, VSCodium uses the Open VSX extension registry over Microsoft's Marketplace. You can read more here.
The process of publishing to Open VSX is described in detail in their official documentation. If this addition is of interest to you, I'm happy to help with the setup and maintenance!
Last but not least, thank you to everyone involved for this awesome addition to the Swift development ecosystem!

Can you try it out on Codium first? I've seen reports from users that Codium can behave differently from Code, so the things we rely on (such as CodeLLDB) may not work there.

+1 on this one. Publishing the extension on the OpenVSX registry would also make it available for use in non Microsoft services like https://gitpod.io. I can also confirm it works on VSCodium, tested on
Version: 1.66.2
Commit: dfd34e8260c270da74b5c2d86d61aee4b6d56977
Date: 2022-04-13T00:45:34.343Z (4 days ago)
Electron: 17.2.0
Chromium: 98.0.4758.109
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin x64 21.4.0

Hi @svanimpe, a Gitpod and OpenVSX commiter here 👋.
I would love if the team could consider publishing on the Open VSX registry. It's thankfully (as @fourplusone also mentioned) a registry not used just solely for VS Codium, but also for many other VS Code forks, including Gitpod or Code server. This means that a released extension can be used by many users, including those who have a copy of VS Code but switched to Open VSX as their Marketplace. It looks like it would now work on VS Codium as well, as @fourplusone pointed out 🙏.
Please let me know if there are any questions or issues, would be super happy to answer them 🙂.

Hi, this is currently sitting with Apple legal. To publish on OpenVSX, Apple need to agree to the terms and conditions. Once we have the go ahead from Apple we will publish.

@adam-fowler awesome, thank you 🙏!

Any updates on this?

Anything new here? I'm also waiting for the extension to be available on Open VSX.

I'm sorry still waiting.

Is Apple legal still holding this up?

I haven't chased them recently. I'll give it another go.

Cool, thanks!

@adam-fowler - just wanted to bump this up and see if there are any further updates. I work on IDX (https://idx.dev), Google's cross-platform web IDE. We are built on Code OSS (Visual Studio Code), similar to Gitpod and others, so the extension will work really nicely. We just need it to be published in the OpenVSX Registry for us to be able to surface it.

I have reached out again

Another bump, this would enable us to use Swift on SAP's Business Application Studio

@obliqueRotationMethod Thanks for reminding me again, this gives me more reasons to get this actioned.

Hey there, with help from @hpux735 we just setup publishing of this extension from the https://github.com/open-vsx/publish-extensions, where extensions are auto-published before they can be taken over by their respective authors. I hope Apple's legal team can enable directly publishing from this repository soon, but until then, it should be available on open-vsx at least like this.
Let me know if you have any questions around the process, happy to help.


Fixed ss name too long when using complex capabilities in run-multiple

Fixed https://github.com/Codeception/CodeceptJS/issues/1636
Error: ENAMETOOLONG: name too long, open '/path/to/project/output/smoke__browser_firefox_desiredCapabilities_moz_firefoxOptions_args_purgecaches_window_size_375x667_prefs_general_useragent_override_Mozilla_5_0_iPhone_CPU_iPhone_OS_11_0_like_Mac_OS_X_AppleWebKit_604_1_38_KHTML_like_Gecko_Version_11_0_Mobile_15A372_Safari_604_1_log_level_trace_acceptInsecureCerts_true_selenoidOptions_enableVNC_true_enableLog_true_logName_session_log_log_sessionTimeout_10m__2/record_Add_virtual_selectio_1556886655/index.html

Hmmm, no idea why the protractor tests failed in circleci, locally they passed fine plus nothing was touched on protractor. Any ideas why that failed occured?

I restarted the build but I don't think that simplifying it to just a browser name is the good solution.
But when we run same test in different window sizes we will get the same output. That's not so good. Maybe we could build a hash out of capabilities? Or shorten the filename?
What do you think?

I restarted the build but I don't think that simplifying it to just a browser name is the good solution.
But when we run same test in different window sizes we will get the same output. That's not so good. Maybe we could build a hash out of capabilities? Or shorten the filename?
What do you think?

Hashing the capabilities sounds like a good plan! Thank you for that, I'll make the change and push them as soon as I get some time again, hopefully today.

Closed in favor of #1671


Acrolinx 4/2/20 (architecture and csharp folders)

/csharp and /architecture foldres.

Thanks for the review, Bill!


go-lint panic

Using emacs (spacemacs), when saving files, often (like %10 of times, but cann't figure out a pattern), I get this:

Saving file /Users/ali/MYPROJPATH/src/github.com/COMP/PROJ/PACKAGE/FLUser.go...
Wrote /var/folders/f9/b6xfd7d57rd6vnlmck35pxwm0000gn/T/gofmt64451Ici.go
Calling gofmt: goimports (-srcdir /Users/ali/MYPROJPATH/src/github.com/COMP/PROJ/PACKAGE/ -w /var/folders/f9/b6xfd7d57rd6vnlmck35pxwm0000gn/T/gofmt64451Ici.go)
Buffer is already gofmted
Wrote /Users/ali/MYPROJPATH/src/github.com/COMP/PROJ/PACKAGE/FLUser.go
Suspicious state from syntax checker go-golint: Flycheck checker go-golint returned non-zero exit code 2, but its output contained no errors: panic: runtime error: index out of range [recovered]
	panic: runtime error: index out of range

goroutine 1 [running]:
panic(0x2b8ae0, 0xc82000e070)
	/usr/local/Cellar/go/1.6.1/libexec/src/runtime/panic.go:464 +0x3e6
go/types.(*Checker).handleBailout(0xc8200d2000, 0xc8200e5538)
	/usr/local/Cellar/go/1.6.1/libexec/src/go/types/check.go:213 +0xd8
panic(0x2b8ae0, 0xc82000e070)
	/usr/local/Cellar/go/1.6.1/libexec/src/runtime/panic.go:426 +0x4e9
golang.org/x/tools/go/gcimporter15.(*importer).string(0xc820114000, 0x0, 0x0)
	/Users/ali/src/golang.org/x/tools/go/gcimporter15/bimport.go:625 +0xc2
golang.org/x/tools/go/gcimporter15.BImportData(0xc820079dd0, 0xc820104000, 0x8d3d, 0xfe00, 0xc82006e641, 0x1a, 0x0, 0x1a, 0x0, 0x0)
	/Users/ali/src/golang.org/x/tools/go/gcimporter15/bimport.go:70 +0x18b
golang.org/x/tools/go/gcimporter15.Import(0xc820079dd0, 0xc82006e641, 0x1a, 0x7fff5fbffbee, 0x41, 0x0, 0x0, 0x0)
	/Users/ali/src/golang.org/x/tools/go/gcimporter15/gcimporter.go:177 +0x744
github.com/golang/lint.importer.ImportFrom(0x38a630, 0xc820079dd0, 0xc82006e641, 0x1a, 0x7fff5fbffbee, 0x41, 0x0, 0x2d6100, 0x0, 0x0)
	/Users/ali/src/github.com/golang/lint/lint16.go:16 +0x60
github.com/golang/lint.(*importer).ImportFrom(0xc820075980, 0xc82006e641, 0x1a, 0x7fff5fbffbee, 0x41, 0x0, 0x2, 0x0, 0x0)
	<autogenerated>:5 +0xdf
go/types.(*Checker).collectObjects(0xc8200d2000)
	/usr/local/Cellar/go/1.6.1/libexec/src/go/types/resolver.go:191 +0x311f
go/types.(*Checker).Files(0xc8200d2000, 0xc820080190, 0x1, 0x1, 0x0, 0x0)
	/usr/local/Cellar/go/1.6.1/libexec/src/go/types/check.go:223 +0xb3
go/types.(*Config).Check(0xc820071cc0, 0xc8200747a0, 0x6, 0xc8200705c0, 0xc820080190, 0x1, 0x1, 0xc8200d02d0, 0xc8200cec20, 0x0, ...)
	/usr/local/Cellar/go/1.6.1/libexec/src/go/types/api.go:344 +0x1f7
github.com/golang/lint.(*pkg).typeCheck(0xc8200835e0, 0x0, 0x0)
	/Users/ali/src/github.com/golang/lint/lint.go:274 +0x494
github.com/golang/lint.(*pkg).lint(0xc8200835e0, 0x0, 0x0, 0x0)
	/Users/ali/src/github.com/golang/lint/lint.go:130 +0x4a
github.com/golang/lint.(*Linter).LintFiles(0xc8200e59e0, 0xc8200e5b50, 0x0, 0x0, 0x0, 0x0, 0x0)
	/Users/ali/src/github.com/golang/lint/lint.go:110 +0x4c9
main.lintFiles(0xc8200e5ea0, 0x1, 0x1)
	/Users/ali/src/github.com/golang/lint/golint/golint.go:83 +0x2ca
main.main()
	/Users/ali/src/github.com/golang/lint/golint/golint.go:50 +0x3a4

Try installing a more recent version of go-golint, and please open a bug report if the issue persists in the latest release.  Thanks!

What version of lint is this? The presence of a "lin16.go" file indicates that this is an older revision. Can you upgrade to tip and see if the panic still occurs?

Thanks @dsnet
I was under the impression that I am on tip because the error itself suggests updating.
It is very possible that my editor was using a different GOPATH
I cannot confirm for sure since I changed a few things at the same time without checking step by step. I am closing this issue, will open if could confirm it happens on on tip


Failed to initialize lock error

When i try to run the program i get this error "ERROR: Failed to initialize lock"
Please help me.
Distro: Archlabs x64
Kernel: 4.19.24-1-lts
create_ap version: 0.4.6 (latest aur version)

Same issue here

I am using manjaro. I just removed /tmp/create_ap.all.lock and then everything goes well.

try this solution https://github.com/oblique/create_ap/issues/369 it worked for me

I am using manjaro. I just removed /tmp/create_ap.all.lock and then everything goes well.

thank, works

sudo rm /tmp/create_ap.all.lock

works perfect removing


Add nix flake

Do you want to include this in your repo by any chance?
I would clean it up a little bit before merging.

@kaesaecracker , sure, I'd be happy to include nix support.
would you mind if we list you as a nix-related contact person in the README?

@top-on I added me as a support person in the README and fixed up the flake a little bit. Feel free to edit or request changes as you please.

@kaesaecracker , thanks a lot for the quick update of the PR.
wish you a great day 1, tomorrow :-)


submodules: progress devlib

Devlib has bug fixes we want to have in Lisa, so let's progress it to
the latest master.
Tested with:
lisa-test -n 1 tests/eas/generic.py:EnergyModelWakeMigration
on Android and Linux targets. No regressions observed.
Signed-off-by: Quentin Perret<EMAIL_ADDRESS>

This fixes the ugly colouring issue I had in devlib. Should I push a PR for the lisa-next branch too ? I'm just not really sure how to test it yet :)

I think we're in the annoying timeframe where we still need some fixes/changes to lisa/master and will eventually need to copy those over to lisa/master... On the bright side this is just a submodule update so that's easy to replicate on lisa/next.


GPU Service not found. Falling back to CPU AutoML Service.

System Information (please complete the following information):

Model Builder Version:
Visual Studio Version

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

System Information:
Model Builder Version: 16.1.0 & 16.1.1
Visual Studio Version : 16.6.3
Dug description:
Can not finish training and "Service.Host.CLR*64.exe" crash down.
Screenshots

Additional context
I had try to training data at both version 16.1.0 & 16.1.1

Seems to be a dup of #833 #267
We have a fix(#834 ) for this issue, and it will be released soon.
Can you help us test that fix when it's ready? It's a rare bug from CLR, and is quite difficult to reproduce.
Please reply to #834 if you want to try that test fix!

Close due to no response, feel free to reopen it if you still have the problem


[red-knot] principles for inferring the type of an expression that is a type error

When we believe that an expression is a type error, and will raise at runtime, there are several plausible types we could assign to that expression:
a) We could assign the type Unknown (or Any).
b) We could assign the type Never.
c) We could assign the type that we believe the expression should always have, were it not an error.
It seems that existing type checkers use a mix of all three strategies, in different situations.
(a) is the most cautious approach. It suggests that we might be wrong in our analysis: perhaps the code actually works at runtime, but we just don't know what the type should be. All existing type checkers infer Unknown/Any for unrecognized imports. Type checkers (by necessity) have a very limited understanding of the Python import system, and may not be configured to be able to find all imports (especially imports of e.g. C extension modules, if type stubs are not available), so it makes sense to assume in this case that the import may be valid at runtime.
(b) is theoretically correct for an expression that we are confident will raise an exception at runtime. If the expression always raises, execution will always terminate, and thus the expression's type can have no inhabitant. Since Never is assignable to every type, and should be considered to have all attributes (also of type Never), this is also a reasonably "forgiving" approach (in the sense that it shouldn't result in lots of cascading errors.)
(c) is also a defensible approach in cases where the expression is of a form that should always have the same type, were it not an error. An example here is membership tests: x in y at runtime will always be of type bool, if it doesn't raise an exception. So it's reasonable to simply assign it type bool even if we think the comparison will raise, on the assumption that the invalid test will be fixed, and thus the type bool gives the most accurate downstream type-checking results without requiring it to be fixed first. Mypy infers bool for an invalid membership test, which is an example of this strategy.
I think it may make sense to use all three strategies sometimes, but we should have a clear understanding of our principles for deciding which to use in a given situation. I would propose something like the following:

If the expression form would always result in a certain type if not an error, we just infer that type, on the assumption that the error will most likely be fixed.
Otherwise, we prefer inferring Never if we consider the error to be high-confidence, or Unknown if low-confidence (an unresolved import, for example.)

I'm not sure about part (2), though -- it feels difficult to consistently decide what errors are "high-confidence." Maybe there is little value in using Never in this way, and we should just generally prefer Unknown.

There's also the case of "type errors" which we do not believe will error at runtime, but validate the user's declared type intentions. For example, x: int = "foo" is not a runtime error, but it a type error, and we have to decide how to reconcile it. Our current choice is to preserve the inferred type (which is the type we will reveal, so Literal["foo"] for x in this case), and relax the declared type to Unknown, meaning we effectively ignore the int annotation.
This choice makes sense in case the inferred type is very high confidence (as it is in this example), but could be wrong in a case like x: int = annotated_to_return_str_but_really_returns_int_at_runtime(). At the moment, I'm comfortable with this choice: the second case will presumably emit two diagnostics (maybe only one if the bad annotation is in a type stub, or badly-annotated library), and once they are fixed the inferred and declared types for x will be correct. But we'll see how it holds up in real-world code.

A similar case is "invalid override" errors. We can emit a diagnostic if a class overrides a base class method unsafely (violates Liskov), but this is not a runtime error, so the best we can do is go ahead and use the unsafe method definition as written. (This is what both mypy and pyright do.)

This choice makes sense in case the inferred type is very high confidence (as it is in this example), but could be wrong in a case like x: int = annotated_to_return_str_but_really_returns_int_at_runtime(). At the moment, I'm comfortable with this tradeoff: the second case will presumably emit two diagnostics (maybe only one if the bad annotation is in a type stub, or badly-annotated third-party library that we aren't checking), and once they are fixed the inferred and declared types for x will be correct. But we'll see how it holds up in real-world code.

One option the user has here is to use cast to get around the incorrectly annotated function:
from typing import cast

x: int = cast(int, annotated_to_return_str_but_really_returns_int_at_runtime())

But the disadvantage of this is that cast() is highly unsafe, and using it is often discouraged.

Yes, good point. Also, using cast to work around a wrong annotation is no more unsafe than a type checker choosing to always trust the annotation (and treat it like a cast) in case of an invalid assignment. And at least it makes the unsafety more clearly opt-in and explicit.


Nullable properties without default value are marked as required

Describe the bug
I use Kotlinx.Serializer with such configuration:
install(ContentNegotiation) {
    json(Json {
      serializersModule = KompendiumSerializersModule.module
      encodeDefaults = true
      explicitNulls = false
    })
  }

For example I have  this class:
@Serializable
data class ExampleResponse(val c: String, val i: Int? = null, val b: Boolean?)

In this case next spec will be generated:
  "schema": {
    "properties": {
      "b": {
        "type": "boolean",
        "nullable": true
      },
      "c": {
        "type": "string"
      },
      "i": {
        "format": "int32",
        "type": "integer",
        "nullable": true
      }
    },
    "required": [
      "c",
      "b"
    ],
    "type": "object"
  }

why do b is required here?
It would be reasonable to behave like this if I would use Kotlinx.Serializer with explicitNulls = false but it's not.
Documentation states:
When this flag is disabled properties with null values without default are not encoded; during decoding, the absence of a field value is treated as null for nullable properties without a default value.

accidental duplicate


Wrong -fcompound-names for SEQUENCE OF sub-members diff

Example:
ASN.1 files:
V1.asn
V1 DEFINITIONS IMPLICIT TAGS ::= BEGIN

Record ::= SEQUENCE {
  params SEQUENCE OF Param
}

Param ::= SEQUENCE {
  name	CompoundName,
  value VisibleString OPTIONAL
}

CompoundName ::= SEQUENCE {
  tag VisibleString,
  mod VisibleString OPTIONAL
}

END

V2.asn
V2 DEFINITIONS IMPLICIT TAGS ::= BEGIN

Record ::= SEQUENCE {
  params SEQUENCE OF Param
}

Param ::= SEQUENCE {
  name	VisibleString,
  value VisibleString OPTIONAL
}

END

Command line:
asn1c -fcompound-names V1.asn V2.asn
Code generated V1_Record.h
	struct V1_Record__params { 		A_SEQUENCE_OF(struct Param) list;
but must be:
	struct V1_Record__params { 		A_SEQUENCE_OF(struct V1_Param) list;
e.t.c.

@zmaru, you might need to concatenate V1.asn and V2.asn into a single file, let's say, V.asn with two modules in it, then process V.asn with asn1c to let a name-clash detection mechanism works properly.
There'll are indeed some problems about name handling in asn1c which a revamp is needed.
Welcome to contribute to this project.


improve webRTC UX & quality

We have several tools to provide the webRTC room experience :

firebase function [ACTIVE SOLUTION] creates a daily room through daily API.
Pro: significant support from daily, P2P
Contra: P2P means more CPU pressure + fast decreasing performances on calls with 2+ users
Solution: in touch with daily about using hosted rooms instead of P2P

Implement Twilio API
Pro: significant support from Twilio, documentation and demo apps available
Contra: new work from scratch

create a JITSI room through the existing & available HDS server from Jérôme Pansatel
pro: immediately available, no download
contra: dimensioning? Custo UI? Crisp?

implement a switch between main UX and a safe-mode with less advanced UI (ex: Jérôme's server).
pro: immediate fallback solution(s) for users
contra: multiple UX scenario, no crisp support unless we customize UI on the fallback server

Designing the application to be able to switch easily between tools would be welcome. As I could see during the building of the WebRTC platform, many technologies / services have a short life and we should remain agile to switch from one service to another one.


Ansible package marked as "broken" on nixos

error: Package ‘python2.7-ansible-1.9.4’ in ‘/home/avn/nixos/nixpkgs/pkgs/top-level/python-packages.nix:607’ is not supported on ‘x86_64-linux’, refusing to evaluate.

@FRidh

ahh,
platforms = with platforms; [ linux darwin]
should be
platforms = with platforms; linux ++ darwin;

Packages ansible, ansible2 and mygpoclient in python-packages need this fix

I do find it odd that this wasn't enforced on me when building with the 'wrong' platforms.

meta is not checked when doing nix-build


chore(main): release 0.4.3

:robot: I have created a release beep boop
0.4.3 (2024-10-26)
Bug Fixes

retain discovery messages (#31) (a0ae865)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.4.3
:sunflower:


Banshee

According to Cambridge, both UK and US stress Banshee on the first syllable.
For that reason, I believe this word should be spelled 𐑚𐑨𐑯𐑖𐑦 instead of 𐑚𐑨𐑯𐑖𐑰

True, but the final vowel in RP is the long vowel /iː/ so is represented by 𐑰 — see also 'Androcles' which is stressed on the first syllable. Final 𐑦 represents the allophonic /i/ (no vowel length marker).

Hm.. so maybe “banshee” is sort of equally stressed on both syllables then…

It's not really possible for it to consist of two equally stressed syllables. The implication goes only in one direction: a weak vowel might appear only in an unstressed syllable, but the converse isn't true. There are some pronunciation models that describe it differently (something about tertiary stress), but usually it's accepted that unreduced vowels might appear in both stressed and unstressed syllables.
Since English stress patters are fairly regular, you can often reconstruct it from the position of weak vowels in Shavian spelling, but it's not infallible. Both ˈbænʃiː and bænˈʃiː are spelled the same 𐑚𐑨𐑯𐑖𐑰 because unstressed 𐑰 is still 𐑰 unless it's actually weakened into a different vowel which is not happening here.
That being said, it might be a good idea to update the IPA field to say ˈbænʃiː as that's more common pronunciation according to all dictionaries I checked (Cambridge 17th ed. lists both but gives the one with accent on the first syllable first).

Thank you for the further info. I thought that 𐑰 was always stressed sort of like the "up" letter.

It's not really possible for it to consist of two equally stressed syllables. The implication goes only in one direction: a weak vowel might appear only in an unstressed syllable, but the converse isn't true. There are some pronunciation models that describe it differently (something about tertiary stress), but usually it's accepted that unreduced vowels might appear in both stressed and unstressed syllables. Since English stress patters are fairly regular, you can often reconstruct it from the position of weak vowels in Shavian spelling, but it's not infallible. Both ˈbænʃiː and bænˈʃiː are spelled the same 𐑚𐑨𐑯𐑖𐑰 because unstressed 𐑰 is still 𐑰 unless it's actually weakened into a different vowel which is not happening here. That being said, it might be a good idea to update the IPA field to say ˈbænʃiː as that's more common pronunciation according to all dictionaries I checked (Cambridge 17th ed. lists both but gives the one with accent on the first syllable first).

Sure, I'll switch the stress to the first syllable.

Thank you for the further info. I thought that 𐑰 was always stressed sort of like the "up" letter.

It's a good rule of thumb for North American English speakers, but there is a vowel length distinction in other parts of the world. I don't want to claim to be too definitive on this since the allophone /i/ in RP is a topic of some debate from what I can see. But Androcles and the Lion is pretty clear and I'm pretty open that that's the starting point for the Read Lexicon.


Create 0000-01-02-BoraKis.md

I created a branch, created a file and made a commit, and opened a pull request.


bin/nodetool-wrapper: override the -p option with the one set by -Dcom.scylladb.apiPort

"scylla nodetool" connects to the port of the API service, while
Cassandra nodetool connects to the port of the JMX service. and
nodetool-wrapper tries to be a broker to delegate to the latter
if the "scylla nodetool" cannot handle the specified command. but, if
the command line has "-p 7199" instead of "-p 10000" specified,
and the command line is able to be handled by "scylla nodetool",
nodetool-wrapper would be instructing "scylla nodetool" to connect
to JMX server instead of the API service. that's why we'd have
following test failure when we tries to enable "scylla nodetool"
to handle more commands in the test:
ccmlib.node.ToolError: Subprocess /jenkins/workspace/scylla-master/gating-dtest-release/scylla/.ccm/scylla-repository/17238/share/cassandra/bin/nodetool -h <IP_ADDRESS> -p 7199 -Dcom.sun.jndi.rmiURLParsing=legacy flush exited with non-zero status; exit status: 2;
stderr: error running operation: std::runtime_error (Invalid response)

in this change, we let the wrapper to mutate the "-p" or "--port" option
in the command line options with the one specified by
"-Dcom.scylladb.apiPort=", which is not recognized by
Cassandra nodetool, but it is set by the ccmlib, when the test is
performed against a scylla server. so, both "scylla nodetool"
can connect to the API service when it is called by the tests in
dtest.

v2:

quote $@

v3:

i forgot to pass $api_port to override_port_option, fixed now.

@tchaikov I think we don't need this PR anymore, with v2 of https://github.com/scylladb/scylladb/pull/17168.
The latter adds native support for -Dcom.scylladb.apiPort in scylla-nodetool, so we can just let the option pass-through unchanged.

ack. closing this change.


🧹 Update type comparison in ragged.py

The code changes in ragged.py update the type comparison for the tolerance variable. Instead of using the type() function, it now uses the isinstance() function to check if tolerance is an instance of pd.Timedelta. This change improves the accuracy and reliability of the comparison.
Note: This commit message follows the established convention of using the "chore" type for non-functional changes that don't affect the code's behavior.

Fyi Refactoring is at two spots.

@philippemiron thanks for the heads up


something fails when using webpack and aurelia

I am trying to use webpack and aurelia but I get this error
WARNING in ./~/aurelia-bootstrapper/dist/commonjs/aurelia-bootstrapper.js
Critical dependencies:
66:13-20 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/aurelia-bootstrapper/dist/commonjs/aurelia-bootstrapper.js 66:13-20

WARNING in ./~/aurelia-bootstrapper/dist/commonjs/aurelia-bootstrapper.d.ts
Module parse failed: /Users/Denis/projects/ticketchat/web_app/htmlproto/widget_aurelia/node_modules/aurelia-bootstrapper/dist/commonjs/aurelia-bootstrapper.d.ts Line 1: Unexpected identifier
You may need an appropriate loader to handle this file type.
| declare module 'aurelia-bootstrapper' {
|   import 'core-js';
|   import { PLATFORM }  from 'aurelia-pal';
 @ ./~/aurelia-bootstrapper/dist/commonjs ^\.\/.*$

WARNING in ./~/aurelia-loader-default/dist/commonjs/aurelia-loader-default.js
Critical dependencies:
122:6-13 require function is used in a way in which dependencies cannot be statically extracted
135:6-13 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/aurelia-loader-default/dist/commonjs/aurelia-loader-default.js 122:6-13 135:6-13

WARNING in ./~/aurelia-loader-default/dist/commonjs/aurelia-loader-default.d.ts
Module parse failed: /Users/Denis/projects/ticketchat/web_app/htmlproto/widget_aurelia/node_modules/aurelia-loader-default/dist/commonjs/aurelia-loader-default.d.ts Line 1: Unexpected identifier
You may need an appropriate loader to handle this file type.
| declare module 'aurelia-loader-default' {
|   import { TemplateRegistryEntry, Loader }  from 'aurelia-loader';
|   import { DOM, PLATFORM }  from 'aurelia-pal';
 @ ./~/aurelia-loader-default/dist/commonjs ^\.\/.*$

here is my webpack config file
var path = require('path');
var webpack = require('webpack');
var AureliaWebpackPlugin = require('aurelia-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  devtool: 'eval',
  entry: [
    'webpack-dev-server/client?http://localhost:3000',
    './src/main.js'
  ],
  module: {
    loaders: [
      { test: /\.js$/, loader: 'babel', exclude: /node_modules/, query: {stage: 0} },
      { test: /\.css?$/, loader: 'style!css' },
      { test: /\.html$/, loader: 'raw' }
    ]
  }.
  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name].js',
    publicPath: ''
  },
  plugins: [
    new AureliaWebpackPlugin(),
    new HtmlWebpackPlugin({
      filename: 'index.html',
      template: './index.html',
      inject: true
    })
  ]
};

src/main.js
import 'aurelia-bootstrapper';
import 'aurelia-loader-webpack';

export function configure(aurelia) {
  aurelia.use
    .standardConfiguration()
    .developmentLogging();

  aurelia.start().then(() => aurelia.setRoot());
}

Some of this was inspired by this repo https://github.com/martijnboland/aurelia-skeleton-webpack
Is there an official webpack skeleton for aurelia? thanks

There is another issue here where experienced web pack developers are working on a future official solution for Aurelia. You can read the thread here: https://github.com/aurelia/skeleton-navigation/issues/41

Those are webpack warnings, not errors and these are caused by the two places in Aurelia where a RequireJS-style loading syntax is used that is not entirely compatible with webpack (aurelia-bootstrapper and aurelia-loader-default). No harm.

I see. ok thanks a lot!

@martijnboland can we not clean up these warnings?


Investigate freeze/slowness on notebook cell execution

Notes

Large notebooks with Mardown cells seems to somehow slow things down..
https://github.com/microsoft/vscode-jupyter/issues/14459
Large notebooks with a large number of cells and/or large outputs seems to hang VS Code as well
https://github.com/microsoft/vscode-jupyter/issues/14459#issuecomment-1996180260
https://github.com/microsoft/vscode-jupyter/issues/15352#issuecomment-1997762476
Saving is slow
https://github.com/microsoft/vscode-jupyter/issues/15366
Possible rendering of outupts even when they are not visible
https://github.com/microsoft/vscode/issues/207748
When hitting Run All Extension host does not get message from VS Code for a few seconds, hence perceived delays in execution
https://github.com/microsoft/vscode/issues/207755
Completions are slow, and executions are also slow
https://github.com/microsoft/vscode/issues/210528

Closing this task as completed.


Green jetpack turns the ship thrusters green as well

But also it's kinda cool

Should be fixed in 1.0.2!


Convert non-critical links into preload links

One of the examples explains how critical css can be inlined, while preserving links to external css. It would be great if this plugin could convert external links into preload instructions to avoid blocking.
For example:
<link rel="stylesheet" href="mystyle.css" />

becomes:
<link rel="preload" href="mystyle.css" onload="this.rel='stylesheet'">

<noscript>
   <link rel="stylesheet" href="mystyle.css" />
</noscript>

This might also solve #16.

Actually, this is not so simple and works only in Chrome atm. JavaScript is required for other browsers.


[release-2024a] sync release-2024a branch with upstream 2024a.

Follow-up: https://github.com/opendatahub-io/notebooks/pull/514
Automation failed: https://github.com/red-hat-data-services/notebooks/actions/runs/8803585209
This brings in fix:

Tensorflow Patch
Codeflare SDK upgrade

Merging this in to get the builds ready.


FORMS-226 # Revert Selectbox to native selection

Change Select Model to detect a collapsed select box and turn on native
menu
Removed unneeded data-role attribute on select boxes from
ChoiceCollapsed view
Cache selectbox jQuery object on view
Update onAttached to always enhance the select box

this update only touches on what would be combo boxes.  multiple selects and "expanded" selects are left alone
ux review from sam

LGTM :+1:


Prefer data type objects over character codes in the NumPy

According to NumPy reference, use of the character codes is discouraged. Accordingly, I change the character codes in favor of data type object in the documents and the examples. Nevertheless, the character codes is used so extensively in the internal codes that the benefit of modifying character codes is trivial compared to heavy workloads and potential bugs.
Take type check as an example:
https://github.com/chainer/chainer/blob/7af2e141c7f58d54af77af9ea45b5274b18ebd16/docs/source/tutorial/type_check.rst#L113
This snippet of code could be changed to utils.type_check.expect(numpy.issubdtype(x_type, numpy.floating)). Likewise, to check whether the type is integer, we can use numpy.issubdtype(x_type, numpy.integer). However, these modifications, I believe, do not justify their advantages.

Thanks.
jenkins, test this please.

LGTM!

https://docs.scipy.org/doc/numpy/reference/arrays.scalars.html is the reference of numpy scalars.  The reference of dtype (https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html) says:

Note that the scalar types are not dtype objects, even though they can be used in place of one whenever a data type specification is needed in NumPy.

I'm not sure if numpy discourages the use of character codes in array creation, while I agree that numpy discourages creation of scalar type using character code as
np.dtype('f').type(1.0)  # => np.float32(1.0)

I am positive that NumPy prefers data type objects over character codes with respect to array types.
The NumPy User Guide suggests:

Array types can also be referred to by character codes, mostly to retain backward compatibility with older packages such as Numeric. Some documentation may still refer to these, for example:

>>> np.array([1, 2, 3], dtype='f')
array([ 1.,  2.,  3.], dtype=float32)

We recommend using dtype objects instead.

Thank you, @vilyaair.  You are right and I'm sorry.

@toslunar  It is unnecessary for you to feel sorry. Conversely, I am very pleased that you question this PR to make it better, and make me more insightful toward NumPy data types.


Sort list of rules in readme

Sorting these rules alphabetically will help people find the rules that
they are looking for easier.

Coverage remained the same at 94.47% when pulling 6425b10e8872872dfbb81e1f0d1f44e968fe86e9 on lencioni:sort-list into fc8a62e999e34a651fd007aee3d28cfafe791fb0 on yannickcr:master.

Coverage remained the same at 94.47% when pulling 6425b10e8872872dfbb81e1f0d1f44e968fe86e9 on lencioni:sort-list into fc8a62e999e34a651fd007aee3d28cfafe791fb0 on yannickcr:master.


What about AquireTokenAsync?

How do these recommendations change for ADAL 2 vs ADAL 3? It would be helpful if any version dependencies were identified.

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

ID: 64341d65-9ad0-ad51-805c-ae78aa611c73
Version Independent ID: 59d452b2-a733-6c04-8ee4-becc4d1f97e9
Content: Error handling best practices for Azure Active Directory Authentication Library (ADAL) clients
Content Source: articles/active-directory/develop/active-directory-devhowto-adal-error-handling.md
Service: active-directory
GitHub Login: @danieldobalian
Microsoft Alias: celested

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

Hi @DeanGross ,
Did you have a particular note about AquireTokenAsync that you wanted to add?

I'd like to see something about how to modify code that used AquireToken in V2 so that it will work with AquireTokenAsync in V3. There are many blog posts and forum questions about this topic and its hard to determine what should be done with the current version.

@DeanGross Below are couple of resources which can help you.

GA announcement blog for ADAL .NET v3 has required information around it. It also points to published samples which can be refereed.
Azure Active Directory Authentication Libraries document also list Microsoft-supported Client Libraries information with link to sample
ADAL .NET Q & A

@DeanGross We will now proceed to close this thread. If there are further questions regarding this matter, please open a new issue and we will gladly continue the discussion.


Display redeemers in transaction view

Changelog
- description: |
    Add info about redeemers to output of `transaction view` command.
  type:
  - feature        # introduces a new feature

Context
It increases the amount of info displayed. It is only applicable to Shelley and after. It uses cborg-json to render the CBOR of the redeemer.
How to trust this PR
I would check:

That the approach makes sense overall.
That it makes sense to return null when it does and it looks right in the changed tests.

Checklist

[x] Commit sequence broadly makes sense and commits have useful messages
[ ] New tests are added if needed and existing tests are updated. See Running tests for more details
[x] Self-reviewed the diff

LGTM but I'm not approving since I never manipulated nor cbor nor redeemers :laughing:


Update Kirstie's weekly meetings | 18-24 March

Woo - actually managed to write up a 1 week summary! 🚀
Open for reviews. I'll merge when I have a couple 😄

I always admire people who can parallelly do many works, like you 👍
BTW, there is a Chinese verb (also a kind of white wine) called '舍得'. '舍' solely means 'abandon' and '得' solely means 'achieve', '舍得' together is a new word means 'be willing to part with' or 'not begrudge', it suggests that we can achieve more if we can abandon something unimportant.
Hope you can persistently '舍'  something  and '得' what's more important for you and more free time! although it's really not easy ~
Support the merge!

Aaaaaah you're both so lovely! Thank you! Merging now ✨

Oh - update. Neither of you actually "reviewed" according to GitHub.
(You "just" commented!)
That means I can't merge because this repository requires one approval review. There should be a green button that says "Review" somewhere at the top or the right hand side of the page....
(Thank you both for working through this with me.

You may now merge.... i believe....

I always admire people who can parallelly do many works, like you 👍
BTW, there is a Chinese verb (also a kind of white wine) called '舍得'. '舍' solely means 'abandon' and '得' solely means 'achieve', '舍得' together is a new word means 'be willing to part with' or 'not begrudge', it suggests that we can achieve more if we can abandon something unimportant.
Hope you can persistently '舍' something and '得' what's more important for you and more free time! although it's really not easy ~
Support the merge!

oh no i just clicked something weird.... balls

I've done this "close the PR" thing SO MANY TIMES!!
Thank you @maxinemack! MERGING!


Do I really need provisionedConcurrency to autoscaling?

You must provide atleast provisionedConcurrency and concurrencyAutoscaling to enable autoscaling. Set concurrencyAutoscaling to a boolean, or object with configuration. Any omitted configuration will use module defaults.

It leads to believing we need both to autoscaling. concurrencyAutoscaling enabled is not enough? as far as I know, provisionedConcurrency is only for keeping a number of environments waiting for requests in order not to have cold starts.

Hi @lusatiro, Yes both are required for autoscaling.
provisionedConcurrency, built into the framework, adds a lambda alias with provisioned concurrency enabled.
concurrencyAutoscaling adds target tracking autoscaling policies to scale up/down that provisioned concurrency number based on load.
Autoscaling is tied to the provisionedConcurrency since it needs that alias to set the target in the policies.
HTH,
CRD


List other articles using the same tags

example https://vandragt.com/workaround-for-when-poetry-cannot-find-pyenv-managed-python
The page looks a bit empty and after reading the article the reader is open to read more related  articles.

In progress in x670

Yeah it's already implemented but not so nice.


Newlines not supported when adding list item notes

I don't seem to be able to find a way to send newlines in for list item notes. It looks like they are getting stripped out. The website allows for multi-line notes so this looks like something that should be supported by the API.
Below is an example curl call. The note on the movie appears as one line First note line Second note line.
curl --include \
     --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer [access_token]" \
     --header "trakt-api-version: 2" \
     --header "trakt-api-key: [client_id]" \
     --data-binary "{
    \"movies\": [
        {
            \"ids\": {
                \"trakt\": 1
            },
            \"notes\": \"First note line\nSecond note line\"
        }
    ]
}" \
'https://api.trakt.tv/users/[id]/lists/[list_id]/items'

I am able to send newlines in for list descriptions with a curl call like this:
curl --include \
     --request PUT \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer [access_token]" \
     --header "trakt-api-version: 2" \
     --header "trakt-api-key: [client_id]" \
     --data-binary "{
    \"description\": \"First note line\nSecond note line\"
}" \
'https://api.trakt.tv/users/[id]/lists/[list_id]'

I will have a fix for this out tomorrow.


Support for "headers" configuration in haproxy.yaml?

Hi all, I'm interested in passing a custom header to my HAProxy integration in haproxy.yaml, like this:
instances:
    - name: haproxy
      url: http://localhost:3000
      headers:
        service-route: haproxy-stats

However, that doesn't appear to be supported. Any chance something like this could be added, or ideas for a workaround?

Hi @justinklemm,
Unfortunately it's not possible right now and I don't see any workaround. But it would be a improvement. Can I ask what is your use case before I implement it ?
Thank you.

@hush-hush Thanks for the following up! My use case is that I'm not exposing HAproxy's stats (as used by the Datadog Agent) on a dedicated port, but instead I route traffic there based on a specific HTTP header. The sample config above illustrates how that works: Everything goes in on port 3000 and includes a "service-route" header, so I need a way to tell the Datadog Agent to send that header when it requests the data.
I know that's probably a bit outside the norm, but if it's something that seems doable/valuable on your end, it would really help me out. Thanks for considering!

@justinklemm thanks for the information. This seems a bit outside the norm but might still be useful for others. I have open a ticket in our feature request backlog. I will keep you posted on its progress.


teller env produces unquoted variable values that have whitespace characters

Expected Behavior
Variables containing whitespace characters should be quoted on env generation
Current Behavior
Variables containing whitespace characters are produced without quotes in the resulting env file after teller env. Also, variables coming from a dotenv provider that already have quotes have their quotes removed.
Possible Solution
Persist already quoted variable values in the dotenv provider + Scan for whitespaces and quote values for teller env output
Steps to Reproduce

Create a source dotenv .env.source file with a variable including whitespace: TEST="two words"
Create a .teller.yml file with dotenv provider that has

env_sync:
      path: .env.source

Call teller env
The produced output has TEST=two words

Specifications

Version:
Teller 1.5.6
Revision 7b714bc2f1d5e14920f2add828fdf7425148ff6b, date: 2022-10-13T08:02:44Z
Platform: MacOS arm64

Thanks, should be fixed with Teller 2.0 now


[alsa] Consistent underruns in audio output redirection

I am using xfreerdp 2.1.1, as packaged in the freerdp2-x11 2.1.1+dfsg1-0ubuntu<IP_ADDRESS> package on an Ubuntu Linux 18.04 system on amd64.
I am connecting to an x64-based Windows 10 Enterprise system, using this command line:
xfreerdp \
	/bpp:24 \
	/sec:nla \
	/size:1550x1150 \
	-grab-keyboard \
	/sound:sys:alsa,dev:sysdefault \
	/u:user@DOMAIN \
	/log-level:DEBUG \
	/v:hostname

The connection is via a fast broadband link with low enough latency for normal interactive SSH use and the like.
I cannot get the short chime that plays whenever the Windows volume control (on the taskbar) is adjusted to sound smoothly on the client side. There are consistent, repetitive pops, multiple per second, each accompanied by a
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred

warning message. I've confirmed that this occurs using both Pulseaudio and straight ALSA. (The above invocation is for the latter.)

hi @iskunk
similar buffer underruns on https://github.com/FreeRDP/FreeRDP/issues/6263
do you have sound from mic or choppy sound? what compile option have you used  from xfreerdp /buildconfig ?
thanks

Hello @relft. I have not tested microphone redirection yet, since audio output is supposed to be the "easier" problem.
The FreeRDP installation I am using was not compiled by me; it is the Ubuntu package in the 18.04/bionic release. The build config is as follows:
$ xfreerdp /buildconfig
This is FreeRDP version 2.1.1 (n/a)
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_JOURNALD_H=TRUE HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=ON WITH_CAIRO=ON WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=OFF WITH_GFX_H264=OFF WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=ON WITH_ICU=ON WITH_IPP=OFF WITH_JPEG=ON WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=ON WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PAM=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PROXY=OFF WITH_PULSE=ON WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=ON WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XDAMAGE=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XTEST=ON WITH_XV=ON WITH_ZLIB=ON
Build type:          RELWITHDEBINFO
CFLAGS:              -g -O2 -fdebug-prefix-map=/build/freerdp2-pfgvsb/freerdp2-2.1.1+dfsg1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -DWINPR_DLL
Compiler:            GNU, 7.5.0
Target architecture: x64

@iskunk @relft does it work better with just /sound?

for the record, this seems to be specific to alsa as it is quite sensitive to timing (and with network lags we can not guarantee timely delivery of new data)

I tried just plain /sound, and I do get better behavior that way: each chime has maybe a single click/pop, rather than multiple, and not even every time. If I play a longer music file, then the sound does appear to stabilize after a couple seconds into playing correctly.
I normally don't use Pulseaudio, however. What is it about ALSA that makes it more prone to underruns? Is it just that hardware buffers are smaller than (software) sound-server buffers, and no other buffering is happening on the client?
How is audio buffering supposed to work on an RDP client, anyway? Should the client have e.g. 1-3 seconds of future audio stored, which can be overridden by out-of-band "pause" or "stop" messages? Or are the client/server supposed to negotiate things so that the client has as small a buffer as possible, without going into underrun territory?
(FYI, I encountered this issue while developing a server-side audio plugin for xrdp, so I am particularly interested in the "how this is supposed to work" question.)

@iskunk no expert on alsa, but the sound stuff is highly delicate:
On the RDP side it works like this:

You get samples from the server
you play the samples
you send back an ACK with proper timing

This is used by the server to manage the dataflow (adjust codec, sample rate, bitrater, ...)

On the backend side however it must be managed differently and alsa is very fragile if there are delayed samples (which happens quite often with network latency in between)
So, it is most likely necessary to insert 'silent' frames, but that is currently not done as we mainly use pulse and it is working good enough

When you get sound samples from the server, are you supposed to get them just before they are played? Or can the server run ahead a bit, and send you audio e.g. 1 or 2 seconds in advance, to better work around variable latency? (It seems like if the user hits Stop/Pause, the server could send a SNDCLOSE to stop the audio immediately even if the client's buffer is full, but I don't know if that's how it's supposed to work.)
One thing I noticed that was different between 2.0.0 and 2.1.1 was this commit. If the server tries to send more than a small amount of audio in advance, it now gets dropped as an "overrun." But isn't having a bigger buffer on the client desirable, to avoid underruns? Does the RDP protocol put a limit on how much audio should be buffered?
I'm also curious to know the difference between how Pulseaudio and ALSA are managed that makes PA work better. Abstractly, both have a buffer, and that buffer is getting populated the same way, so I don't understand why one would underrun where the other one wouldn't. Hypothetically, what implementation work would FreeRDP's ALSA support need for it to work as well?
(Apologies for my many questions; I'd just like to understand the problem, and this thread could serve as useful documentation for others as well.)

@iskunk bigger buffer would be great for non realtime audio, yes.
Sadly different server implementations (even the ones between windows 7 and 10 and their server equivalents) handle that case not very graceful, so no sound close :/
Even worse, with older versions you then have to wait several seconds until the sound stops on higher latency links.
As for the difference between alsa and pulse, it looks like pulse does some magic if there is no data to play whereas alsa gets really noisy. Could be because pulse is always keeping the device open (the sound server component) and alsa is more low level and directly accessing the device

Is there a way to increase the size of FreeRDP's audio buffer? It seems like there is a tradeoff between a bigger buffer (fewer/no underruns, but you can't stop the sound immediately), and a smaller one (lower latency, immediate stop, better for games, but underruns are likely if your connection isn't rock-solid).
This is especially important if FreeRDP drops excess audio as an "overrun," because that then kills the easiest strategy for avoiding underruns.
(I do understand a bit why that change was made... when I was testing my custom server-side audio driver with 2.0.0, I ran aplay on a 30-second sound file on the server. aplay exited after about a second, and FreeRDP played the entire 30 seconds of audio from its buffer. That's a bit crazy. But 2.1.1 goes to the other extreme, where e.g. 0.25 sec of audio sent in advance gets dropped as an overrun.)
Okay, that is an understandable difference between ALSA and Pulseaudio---they both get underruns, but PA is better at "hiding" them. That suggests that the focus is better placed on avoiding underruns in the first place.

@iskunk currently not adjustable. Feel free to experiment.
We´re happy about any improvement there, but the most relevant changes are most likely in #5267 which allows freerdp to use simpler and adjustable threadding (and therefore can improve stuff running in parallel, like audio and video decoding)

I don't think that change is going to affect this issue much, because this is just a matter of transferring and buffering audio, not resource contention on the client. (I tested by just playing a chime; I wasn't doing anything crazy with video or other high-bandwidth material.)
I'll do some experimentation, but let me run something by you:
I've found that the RDP server side can have quite a bit of control over how audio is buffered on the client, just by controlling the timing of the wave messages it sends out. (E.g. the server can send out a wave message 0.1 sec in advance, or 5 seconds in advance.) Adjusting the buffer size on the client is comparatively not as useful, because even if you have a big buffer there, the server might not give you enough wave data to fill it.
So IMO, the important thing is for the client to allow the server to buffer a lot of audio (e.g. 2 seconds) if it wants to, without going overboard (e.g. 30 seconds is clearly too much).
What I'm thinking is to adjust the overrun-detect code to allow an arbitrary minimum (probably 2 seconds) of audio to be buffered, before it stops dropping data in excess of that as an overrun. If that allows me to get smooth audio working, would that be an acceptable PR? That wouldn't go against any part of the RDP spec, or cause other issues?

@iskunk well, the problem is that a slight stall in decoding increases the response time for the ack messages (not TCP, but RDP protocol level) and then the server adjusts quite some stuff to these new conditions. Bringing that delay down will fix a lot of these glitches as we do not create a condition that stalls input processing.
As for your suggestion with the configurable delay buffer, we experimented a lot with the timestamps sent back to the server, but that is not really something portable (every windows version behaves slightly different)

If anything, future work could implement dropping audio frames if there is a delay in processing, so the audio always plays when it is scheduled. IMO, it would be better to drop audio frames in that situation (like if heavy swapping causes the system to freeze for a second or two), rather than drop them due to a narrow overrun threshold.
For the configurable delay/buffer, I was actually thinking of that on the server side (specifically with xrdp). While I can't change what the Windows server does, as long as the spec allows it, I can try to put together something that allows xrdp audio to play solidly.

I have a rk3288 arm board. When I play a 1080p video, the audio pause sometimes and after playing for sometimes, the audio is behind the video. As @iskunk mentioned in this commit, if I remove the function rdpsnd_detect_overrun, the audio will sync with video perfectly. CPU is not full loaded when playing so I don't think cpu is the bottle neck causing this issue.

@amazingfate ouch, @llyzs has done some thorough research there, is seems it really depends on the remote os version how good this syncs.
will need further investigation here.

@amazingfate ouch, @llyzs has done some thorough research there, is seems it really depends on the remote os version how good this syncs.
will need further investigation here.

Yeah, my workaround only works on windows 10 server. On windows 7 it doesn't work.

Coming back to this prob 2 years later.
Trying sound from windows10 and windows7. They behave a bit differently, but the result on freerdp side is similar: with /sound:sys:alsa the audio is always coughing at the very beginning of each sound (differently depending on windows version), but becomes good after the first ~1/4s. While with /sound:sys:pulse, it always works fine.
What I also see is that pulse delays sound start for a little bit (maybe 1/4s), while alsa tries to output sound immediately.
On windows side there's "Remote audio Volume control" thing where one can click with mouse to change volume, and on each click, windows is playing the default sound. I'm "measuring" time from this click to the time when actual sound is heard. With pulse there's always a very small delay between the click and start of the sound, and whole sound is good. While with alsa, it starts playing immediately but becomes noisy within first little moment.
In both cases, further sound is always good, even over relatively slow remote links.
I dunno if the OP is having problems with sound "coughing" down the line or at the very beginning only, but for me it is always at the beginning only not counting things like network disconnect ofcourse).
freerdp 2.9.0.


Support scaling phased out instance groups

Description of the Change
Scale phased out instance groups and prefer Active for scale ups and PhasedOut for scale downs.

some unit tests for the behavior here would be nice


Use concurrent map for BlockLockManager

What changes are proposed in this pull request?
Use IndexedSet which uses ConcurrentHashMap internally to replace the shared metadata lock to improve performance under heavy lock contention.
Why are the changes needed?
When lock contention is heavy, the sharedMetadataLock becomes a bottleneck of the throughput of lock acquisition and releasing, defeating the purpose of the individual block locks which are meant to be a fine-grained lock pool.
See also #16022 for details and motivation for this change.
Does this PR introduce any user facing changes?
No.

I'm not sure about if the implementation is sound after removing the shared lock...
https://github.com/Alluxio/alluxio/blob/940fb4642030ea99d481ea461546baed61ad555d/core/server/worker/src/main/java/alluxio/worker/block/BlockLockManager.java#L163-L171
The above check is outside of any synchronization section, so even if the sessionHoldsLock check returns true, before the current thread attempts to actually lock the lock, another thread could have acquired and locked the same lock in the meantime.
@beinan @jja725 can you please help take another closer look here?

I'm not sure about if the implementation is sound after removing the shared lock...
https://github.com/Alluxio/alluxio/blob/940fb4642030ea99d481ea461546baed61ad555d/core/server/worker/src/main/java/alluxio/worker/block/BlockLockManager.java#L163-L171
The above check is outside of any synchronization section, so even if the sessionHoldsLock check returns true, before the current thread attempts to actually lock the lock, another thread could have acquired and locked the same lock in the meantime.
@beinan @jja725 can you please help take another closer look here?

I just post a comment for this issue,  using the commputeIfAbsent might help, but I'm not sure

Fuse unit tests keep failing.
rror: 7.843 [ERROR] alluxio.fuse.AlluxioJniFuseFileSystemTest.chownWithoutValidGid  Time elapsed: 0.383 s  <<< FAILURE!
Wanted but not invoked:
fileSystem.setAttribute(
    /t/root/foo/bar,
    owner: "1001"

);
-> at alluxio.fuse.AlluxioJniFuseFileSystemTest.chownWithoutValidGid(AlluxioJniFuseFileSystemTest.java:160)

alluxio-bot, merge this please.


unexpected behaviour with get_questions() & code feedback

Currently, when i run get_Questions() it's asking me to make a selection.
questions <- get_questions(ea_midterm_design)
This is odd as yesterday this was working. However i did update qtoolkit so perhaps the version that i'm using now has a few bugs or dev items going on.
Note that this may be because we need to ensure tidyr is a dependency for the package.
Selection: 0
Error in gather(., key = "question", value = "full_text_question") :
  could not find function "gather"

also
Selection: 0
Error in UseMethod("gather_") :
  no applicable method for 'gather_' applied to an object of class "character"

Digging more into this function, it has some issues

[ ]  The function assumes a quesiton number that begins with a Q and a ID too... I know that you can edit the question numbers and i think the ID could change too. This approach could thus fail. I think the user should be required to either enter a question number as an optional argument. The default function return should be a df of all questions.

[ ] Do we need to use both the QID and the Q number? what is the purpose of both? it seems to add additional complexity to the code. Let's chat?

get_questions <- function(survey,
                          question_num = "Q.*",
                          question_id = "QID.*")

[ ] Next, we filter. This approach limits us to only return questions for one id. But also it adds 2 additional lines of code to the function. If we used an contains approach, i think we could simplify the code and make it more robust. I think we could use stringr potentially and avoid regular expressions that are likely to break given different naming conventions.

[x] also i think you can use paste0() below to avoid the sep argument. And make sure we are following spacing conventions ( sep="" vs sep = "")

## Filter questions by names passed
  num_filter <- paste("^", question_num, "(\\_|$)", sep="")
  id_filter <- paste("^", question_id, "(\\_|$)", sep="")

Here, we could use pipes and mutate
## Rename column question_text to question_title
  ## Add column question_text as stripped HTML from question_title
  q_resp$question_raw <- q_resp$question_text
  q_resp$question_text <- strip_html(q_resp$question_raw)

like this:
q_resp  %>%
  mutate(question_raw = question_text,
         question_text = strip_html(q_resp$question_raw))

The thing that is odd about this code is the it seems to clean the original data and replace what the API returns with that and then create a new column. Why not keep question_text as the original text and create a new cleaned column called question_clean. This column name tells me that it was modified which i think is good.
So your cleaning step would look like:
q_resp  %>%
  mutate(question_text_clean = strip_html(q_resp$question_raw))

NOTE -- if question_text is used elsewhere and there's a reason for this step, please let me know.
Also -- another alternative which may be even better is to have a clean.html = FALSE argument. so then you return just one column: question_text that is either cleaned or not cleaned. that is probably the best functionality. As currently the data.frame returned is larger than it needs to be. i can't think of a use case where i'd want both the cleaned and uncleaned in a data.frame UNLESS i was testing things.

[ ] Finally - i'm worried that this code could break if the question number doesn't have Q in it. it's really a hard coded regex expression. could the question value be a variable?

## Add question number column (turns Q9_1 into Q9)
  q_resp$question_num <- sub("^(Q[0-9]+).*", "\\1",
                             q_resp$export_name)

Since we're digging into this code here, i'd like to see what @mbjoseph thinks about using pipes and stringr, etc in this package. i like using it as its much cleaner. it just adds dependencies potentially.
Thoughts Max?
FUNCTION LOCATION:
https://github.com/earthlab/qtoolkit/blob/1f4efd79ece756f73bd007cece03a2e68d72824f/R/main.R#L77

Currently, when i run get_Questions() it's asking me to make a selection.
questions <- get_questions(ea_midterm_design)
This is odd as yesterday this was working. However i did update qtoolkit so perhaps the version that i'm using now has a few bugs or dev items going on.
Note that this may be because we need to ensure tidyr is a dependency for the package.
Selection: 0
Error in gather(., key = "question", value = "full_text_question") :
  could not find function "gather"

also
Selection: 0
Error in UseMethod("gather_") :
  no applicable method for 'gather_' applied to an object of class "character"

gather() bug fixed in 838c6de.
get_questions() working fine for me with just qtoolkit as dependency. Perhaps this was related to the gather() bug up top.

The function assumes a quesiton number that begins with a Q and a ID too... I know that you can edit the question numbers and i think the ID could change too. This approach could thus fail. I think the user should be required to either enter a question number as an optional argument. The default function return should be a df of all questions.

Agreed questions need not start with Q, though that's the default. a84505b changes all functions that reference question_num to match any question, not just "Q.". However, question_id is hardcoded by Qualtrics and is unique (or so says the API docs) so we can safely assume it's "QID."

Do we need to use both the QID and the Q number? what is the purpose of both? it seems to add additional complexity to the code. Let's chat?

For the use case that surveys are duplicated then modified to be a bit different, question_id seems to persist across those, so this would make cross-referencing reponses between surveys easier, as it could be done automatically. The question_num would persist too but is not guaranteed to be consistent as it could be changed by the user down the line.
Either way, question_id and question_num are two different identifiers so I think the package should have the option to select via either.

Next, we filter. This approach limits us to only return questions for one id. But also it adds 2 additional lines of code to the function. If we used an contains approach, i think we could simplify the code and make it more robust. I think we could use stringr potentially and avoid regular expressions that are likely to break given different naming conventions.

The code works for any number of ids, either passed as a list c("Q9", "Q99") or string "Q9"
Turns out the code could just work with one line (paste can take either a vector or string), so I consolidated it to:

question_num <- paste(question_num, collapse = "|")
num_filter <- paste0("^(", question_num, ")(\\_|$)")

The reason a simple "contains" won't work without some other filtering is that:

contains("Q9") will match Q9 and Q99
contains("Q9$") will match just Q9 but not Q9_1 which are column names for matrix questions

For this I used the regex (\\_|$) is above, and it can be done otherwise but will likely be a bit convoluted. Right now using paste into the regex will work for the grand majority of use cases, except where the user uses some regex classifier like * in their question name. For most (all?) reasonable use cases this will work

also i think you can use paste0() below to avoid the sep argument. And make sure we are following spacing conventions ( sep="" vs sep = "")

Sure thing, all paste()'s are now paste0()'s, throughout all code

Here, we could use pipes and mutate:
## Rename column question_text to question_title
## Add column question_text as stripped HTML from question_title
 q_resp$question_raw <- q_resp$question_text
 q_resp$question_text <- strip_html(q_resp$question_raw)

like this:
q_resp  %>%
 mutate(question_raw = question_text,
        question_text = strip_html(q_resp$question_raw))

This doesn't work because we've got to do the column assignments sequentially, ie we want question_raw to be question_text BEFORE it is stripped of HTML. If we do the mutate option as suggested question_raw and question_text both end up being both the stripped of HTML.

The thing that is odd about this code is the it seems to clean the original data and replace what the API returns with that and then create a new column. Why not keep question_text as the original text and create a new cleaned column called question_clean. This column name tells me that it was modified which i think is good.
So your cleaning step would look like:
q_resp  %>%
 mutate(question_text_clean = strip_html(q_resp$question_raw))

I agree that there should be two separate columns, one with untouched data and one with filtered. For sake of syntax, I think question_text to return only the text of the question with no formatting, and question_raw being the question as is returned from Qualtrics, is the best description.
In my opinion, question_text_clean doesn't describe what the text was cleaned of, is less descriptive and a long column name, whereas question_text and question_raw describe better what the columns actually contain. I'm open to discussion 'bout it, and we have the same inclination but different ideas of how to address it.

NOTE -- if question_text is used elsewhere and there's a reason for this step, please let me know.
Also -- another alternative which may be even better is to have a clean.html = FALSE argument. so then you return just one column: question_text that is either cleaned or not cleaned. that is probably the best functionality. As currently the data.frame returned is larger than it needs to be. i can't think of a use case where i'd want both the cleaned and uncleaned in a data.frame UNLESS i was testing things.

I'm open to this, though I see a use case for having both be available in analysis. One is, a user can embed hidden identifiers in the questions to be able to be easily selected by (ie. HTML comment <!-- do_not_use -->)
If the question asks something about an image that's embedded with an HTML <img> tag, perhaps the user will want the HTML echoed in the Rmd file to display that image?
In general I think users for sure will want to see the question text with the HTML stripped, and would be amenable to having it be a function parameter as opposed to returning both.

Finally - i'm worried that this code could break if the question number doesn't have Q in it. it's really a hard coded regex expression. could the question value be a variable?
## Add question number column (turns Q9_1 into Q9)
 q_resp$question_num <- sub("^(Q[0-9]+).*", "\\1",
                            q_resp$export_name)

Yep this won't work if the question doesn't begin with Q. Having questions not begin with Q is a major pain in the butt, btw, because the regex has to account for questions that could have any potential underscores in the name, plus there are questions that are formed "Q3_1" (MC) and "Q9#1_1" (matrix).
Nonetheless, here's some fancy regex that makes it work (committed f94ab94)

>  ## Add question number column (turns Q9_1 into Q9)
>  q_resp$question_num <- sub("^(.*?)(\\_|#|$).*", "\\1",
>                             q_resp$export_name)

Since we're digging into this code here, i'd like to see what @mbjoseph thinks about using pipes and stringr, etc in this package. i like using it as its much cleaner. it just adds dependencies potentially.
Thoughts Max?

Open to suggestions on this; as you might assume I've shied away from bringing on any more dependencies than necessary. So far qtoolkit uses: dplyr qsurvey tidyr magrittr

I'd avoid adding dependencies unless you expect users to use tidy syntax and pipes with the package.

this is great feedback @1papaya  i'm working through some data and left you a note on slack about get_questions and matrix questions.
I like your approach of question_raw and question_text but let's make it an option to return one of the other? Or i'd say make the default behaviour the question without the html and then an argument that returns the raw data with the html as a new column. that is probably the best. i really can't see a good use case of needing that html. if the image is embedded it probably lives on qualtrics. you'd probably want it local and wouldn't want to use the terrible qualtrics html to render it :)


Add section on badges?

note1a8g5au4fl0wwjxwlznnke2m4jftesdcppsntcg4za6c725h6y4ls7kpsv2

Meh. Closing as "Won't Fix" for now.


Unexpected token 'export' when importing shadows from @mui/material/styles/shadows in nextjs

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
I want to add some of the default shadows. but when I'm importing the default shadows provided. i got the error
Unexpected token 'export' when importing shadows from @mui/material/styles/shadows
Expected behavior 🤔
No error
Steps to reproduce 🕹
Steps:
https://stackblitz.com/edit/github-i8l1yh?file=pages%2F_document.tsx,src%2Ftheme.ts
based on the example with nextjs provided in
https://github.com/mui/material-ui/tree/master/examples/nextjs
Context 🔦
Error

Your environment 🌎

npx @mui/envinfo
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

Note, anything that is more than 4 level import is considered private. For scenarios like this, you need to create default theme and pick up things from there. Here is an example: https://stackblitz.com/edit/github-i8l1yh-ffq2de?file=pages%2F_document.tsx,src%2Ftheme.ts


Please provide integration with Swift Package Manager

Currently projects using Swift Package Manager cannot directly use this repository as a source for the package. Please integrate support for Swift Package Manager, so apps using Swift Package Manager can use this library:
https://developer.apple.com/documentation/xcode/creating_a_standalone_swift_package_with_xcode

Any news about that? I'd like to have the SPM integration also for our projects 😊

Any news about that?

I've tried to add the Package.swift file to the project and to add stuff like bridging-headers and the modulemap to support using Objective-C in Swift projects. The result is only limited success, probably related to all headers not being exported properly (in external testing Swift project I can see only FITAWebWidget class but not the FITAWidgetHandler or FITAPurchaseReporter).

Hi @tjelen i've already migrated the Widget to SwiftPackageManager, but i can't open a PR so that share my code. In our project it seems working.
On our side we just provided the basic support.


Target profile page rewrite: Update placeholder text in data table filters

Currently, data tables have filters / search bars with None as placeholder text in a dark grey colour - #808080. See below for an example:

Instead, please update the placeholder text to read Select ... and please colour the text using Open Targets Medium Grey - #afafaf. See below for an example:

I've updated the text ("Select..." is actually the default option). Colour change should probably go into ot-ui with a new component - worth a quick chat before proceeding.

Revisit dropdown minimising custom code

Fixed placeholder text. No custom colours applied.


UI Fragments

So I've been laying out two different application UI views and I'm finding I'm really missing the ability to add ui fragments
They're really useful to be able to conditionally insert collections:
(when something?
  (for [item some-coll]
    (ui/label item font fill)))

Try using lists/sequences (not vectors), same as with hiccup I belive

Ah, completely missed that =)... Thanks!
I've put together a quick PR, just to make it really obvious to people that the behaviour is there and available.