Add Static Sha256 & Sha512 modules

Hey @timohanke,
Thanks for the great work on this library.
I had a use case where I needed the hasher to function properly and not loose its data after a canister upgrade.
Other people might have the same use-case as me, so i decided to update the code and make a PR.
Here are the changes I made:

Created StaticSha256 and StaticSha512 types to hold the state required for calculating the hash
Moved the s(0, 1, 2, ...) variables in a single array.
Converted the methods for the Digest class to module functions in the Static modules

I updated the library in a way that is backward compatible with previous versions.
The import statements and methods were kept the same and a user can easily switch to the static version by adding /Static to the import statement like so:
  import Sha256 "mo:sha2/Sha256/Static"

Hi @tomijaga thanks for the PR.
Would it have served your needs if the Digest class had a share() and unshare() function to get the internal state out and to reinstantiate it?
I would like to profile your PR to see if it has impact on instructions and heap allocations. But running mops test or mops bench fails for me with error
Canister <...> trapped explicitly: assertion failed at Static.mo:234.5-234.31, error code None

Does mops test work for you in your branch?

Hey @timohanke thanks for the response.
I couldn't find the bug causing the error in the Sha512 module.
So, I commented it out and was able to run the benchmarks for Sha256.

before
after

The new code change increased the instructions by quite a bit.
This was a surprise to me, as I thought the static method performed better. Good to know.
Exporting the internal state via the share() and unshare() methods should be just fine for my use-case.
I will update the PR to reflect the changes.

I've updated the code and added tests for the new methods

I couldn't find the bug causing the error in the Sha512 module.

I fixed the bug here, just for completeness: https://github.com/research-ag/sha2/commit/b6e2dd798d9fb8e2775aae21c1d84cf7cfaca6bb
I could then run the full benchmark and had the same result: +60% in instructions for both sha256 and sha512.
I could also run my external profiling (not part of mops bench) to see the heap allocations. They are not affected by this PR and stay the same.
So, yes, unless we find a way to improve instructions for the static version then probably share/unshare is the better approach. Does share/unshare work fine in your application?

Thanks for the fix, I see where i made the mistake now.
What I've done in the past to improve the static version is replace the record with a tuple where immutable fields are stored as entries and mutable fields are stored in a var array within the tuple.
I updated the code here (https://github.com/NatLabs/sha2/commit/0efbcb915f186bd47c149bfb1b244b74230c639a) to compare the performance.

record
tuple

The instructions for Sha256 went down from +60% to 46% but Sha512 barely improved.
One drawback of the using the share/unshare is that you have to constantly export the state which creates some overhead.
The instructions for exporting the state will be equal to creating a new static record, seen in the first column with 0 blocks (27_317).
Adding this to the 1M blocks in the class version is still about 320M instructions compared to the 460M instructions in the static tuple version.
So even if I have to export the state after every 1M block, the class method performs better.
I am using the library to hash files, which will often be larger than 1MB, so share/unshare will work perfectly for my application.

One drawback of the using the share/unshare is that you have to constantly export the state which creates some overhead.

You don't do that once in preupgrade/postupgrade?

Have you tried the class+ method? I mean where you have the stable declared global StaticSha256 and pass that in through the constructor, and then class functions accesses it directly, not through a parameter. Don't know if that changes anything in terms of instructions, but was wondering if you tried. Then no share/unshare is needed and any intermediate state is automatically and instantly persisted without any additional share operation.

We made a new PR https://github.com/research-ag/sha2/pull/7 based on this PR and merged it after some small edit. Thanks for providing it.

The new version with share/unshare interface is now published as version 0.1.0 on mops https://mops.one/sha2


"Get started with Docker for Windows" issues

File: docker-for-windows/index.md
These are based on my experience after running Docker for Windows Installer.exe v<IP_ADDRESS>259 on Windows 10 Pro and trying to follow along with "Get started with Docker for Windows".

docker login was required before being able to run docker run hello-world. Without it, I would get:
> docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout.
See 'docker run --help'.

This was even after logging in via the Docker Desktop tasktray app.

On Windows 10, port 80 can be occupied by IIS as part of a normal OS install, preventing the nginx container from running as configured in "Getting started ...".

Closing issue as it refers to old version of Docker Desktop


Allow app to be loaded as a ES6 module

This is the only change needed to be able to use hyperapp as a ES6 module in a browser, while it still remains compatible with node and bundlers.
It changes the path to the h file to "./h" from "./h.js", since browsers will not auto-append the .js suffix like many bundlers/transpilers do.

Hmm, I don't really understand the test failure though, could someone point me in the right direction to fix it (if it is related to this change)?

Thanks @SahAssar! This looks deceptively simple. 🎉
The declarations file is complaining. @Swizz @Mytrill can you have a look?

Ok so, it seems to be due to typescript version. Even though typescript has the version ^2.5.2 in the package.json, it seems the latest 2.6.1 is used to compile tests/ts/index.tsx and looks like this version has broken the typings.
I'll take a look when I have time but it will not likely be before Saturday/Sunday, @Swizz feel free to have a look...

Separate issue to track the typings problems: https://github.com/hyperapp/hyperapp/issues/442

@SahAssar Do you know any other libraries doing something similar?

@JorgeBucaran You mean suffixing .js to allow for module loading? In that case, no, but I'm not that involved in other communities, so I wouldn't know.

@SahAssar We also need to change index.js to add the .js extension.


Add replace for rss link

What
This allows the rss feed link on the aggregation pages to update when new params are added
How to review
Sense check
or
Pull this branch, grab this branch of the search controller, run dp-frontend-search-controller using make debug ENABLE_REWORKED_DATA_AGGREGATION_PAGES=true, port forward the api router to sandbox dp ssh sandbox web 1 -p 23200:localhost:10800, head other to http://localhost:25000/datalist and see if the rss link changes when filters are added.
Who can review
Anyone

Related to the failing audit - https://github.com/micromatch/micromatch/issues/243
No a vulnerability


Send dynamic JSON

I have a few questions - based on this tutorial - as a newbie to Spring Boot.

You are saying that, the representation class Greeting.java needs to have a get and set methods that exactly match the expected keys?
How do we handle scenarios when the structure of JSON is not known well in advance?
What if, in certain scenarios, some keys are left out in response because they were optional?
How do we handle scenarios where keys may have spaces (e.g. https://stackoverflow.com/q/10311361/919480)?
And, if values are themselves nested JSON, what should the get method return so that Jackson can marshal it properly?

I know some of the cases mentioned above are 'edge' cases, but, the guide author must at least address these cases. Especially, coming from a MEAN stack background, all this is awful lot of work to send a JSON document!

All your questions are about JSON serialization and deserialization, not specifically about Spring Boot. This guide is also intentionally narrow in scope and doesn’t need to get into the specifics of how to customize the JSON handling. FYI the sample is using Jackson, so check out their docs as well as the Spring Boot user guide sections specifically about Jackson (e.g. https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-customize-the-jackson-objectmapper).


PWM 2 is double-allocated

https://github.com/thedropbears/pyinfiniterecharge/blob/dddee155487a4ff8511fddf6cdcc2dab0570f444/robot.py#L56
https://github.com/thedropbears/pyinfiniterecharge/blob/dddee155487a4ff8511fddf6cdcc2dab0570f444/robot.py#L73
I know we're only using PWM motor controllers for testing, but I'm sure someone will stare at the robot for a solid hour and be confused as to why something isn't moving if we don't fix this now.

This should be resolved once the existing indexer code is merged in


Revert GranitFrameDecoder

LineBasedFrameDecoder did not fit at all, It handles both \n and \r\n. 0x0a appears rather frequently in binary data.
DelimiterBasedFrameDecoder is better but we can't exclude appearing 0x0d0a in binary data, for example I can set deviceId to 2537 and never handle any position.
Because of that I've added reading frame based on length field of packet. Not binary packets handled as usual with \r\n delimiter.

This all looks very messy. I read the documentation again and I suggest following algorithm for frame decoder:

Find end of line index
Try to find '~' index
If end of line comes first, return result
If symbol '~' comes before end of line, read length of binary data (length field comest right after '~'), go to point 1 and search from the end of binary data

Also, please add frame decoder unit tests.

I also took another look at the protocol decoder, and it seems incorrect that you convert the whole message into a string even if it has binary data it in. Can't you just convert the header?
This check is definitely incorrect:
bufString.contains("OK")

Binary data can contain anything including these two symbols.

I hurried, I'm sorry.
I've got your point about tilde, It is sign of binary data. I've done almost as you said.
To ProtocolDecoder...
with bufString.contains("OK") I wanted to cover cases ACCESS OK and ERASE OK
Header length can be less 6, OK is 2, ERROR is 5. But I agree something should be done with it.

Merged, thanks. Please send me another pull request if you manage to fix issues in decoder.


nixos-rebuild cannot be made to build locally with a remote target

Describe the bug
There's no way to get nixos-rebuild to build locally with a nonempty --target-host: if --target-host is set but --build-host is unset, building happens on target host. In the past specifying --build-host localhost would have had that effect, but that's not the case anymore since cbd1dc1e725c4661c0ee556b8339b3c50d8a934c (cc @l0b0 @veprbl).
Steps To Reproduce
Steps to reproduce the behavior:

Run nixos-rebuild --target-host somehost switch
Observe that building happens on target host instead of locally.
Observe that documentation says that empty --build-host means that building happens locally.

Expected behavior
First and foremost, there should be a way to get stuff built locally with a remote target host.
Secondly, the documentation should correctly describe where building happens for different values of --build-host.
Additional context
Add any other context about the problem here.
Notify maintainers
@Profpatsch as maintainer of nixos-rebuild

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.80, NixOS, 23.05 (Stoat), 23.05.git.27e99b84dde`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.12.0`
 - channels(root): `""`
 - channels(robryk): `""`
 - nixpkgs: `/etc/nixpkgs`

@robryk If I understand correctly, --build-host localhost should result in the build happening on the host called localhost, which very likely is the local host. The only overhead should be an SSH connection to localhost, which should be tiny.

This assumes that ssh is actually setup on localhost, and that current user can ssh to localhost without jumping through any hoops (e.g. confirming that they really want to use the key from the agent).
Also, I expect that doing so will create amusingly confusing invocations of `nix-copy-closure

Good points, and there definitely should be a way to force building on the local host. Hopefully it can be achieved without reverting to the original behaviour, since that was both confusing (why was only "localhost" special, and not "<IP_ADDRESS>", "::1", "localhost.localdomain", "foo.local", etc?) and technically incorrect (the "localhost" string does not necessarily mean the local host).
Maybe a --local-build or similar flag would be a good way to avoid all three issues?

I would frankly expect (and documentation implies that) that not specifying --build-host would cause the build to happen locally (i.e. on the machine where nixos-rebuild is run). Do you know why that's not the implemented behaviour?

No idea, sorry. Tracing the history of the relevant lines backwards:

fb2eae08d53606823051dead0d07b6461e82ec1b

78be7f5a53e3945b72482a99c639f5fe8cc75fd6

ca0c46040649ab4a6d5d7bc838b393fdcbcae10c finally provides an explanation:

As a convenience, if only --target-host is specified, --build-host is
implicitly set to that host too. So if you want to build locally and deploy
remotely you have to explicitly set "--build-host localhost".

ISTM that this is really undesirable magic. Perhaps we could:

Cause lack of --build-host to always cause builds to happen locally.
Temporarily cause both --build-host set to localhost as well as --build-host unset when --target-host is set to cause a warning about recently changed semantics to be printed.

Would you consider this reasonable?

That looks like an excellent way forward. The message might be completely drowned in other output, but at least it would be possible to figure out why behaviour has changed.

Great. I will make a PR to that effect ~tomorrow.

https://github.com/NixOS/nixpkgs/pull/210382

This was fixed by #210382.


Add api for code reviews

Feature Description
Leaving the IDE is a major painpoint when doing Code Reviews.
To allow code reviews from IDEs

either #184 would have to be pushed forward (along with IDE plugins). Something like git appraise comes to my mind.
and/or create a custom api for PRs that can be implemented by plugins
and/or imitate the api of an existing product like gerrit or github and enable the useage of their plugins (or just be similar enough so those can be adapted)

A (maybe) low hanging fruit would be to add an api endpoint to create comments on PRs ( which is not there yet if I am not completly blind)
Screenshots
No response

Sorry, just noticed this is already part of the api, i was just not seeing that create pull request has a comment parameter


Add support for RFC822 timezone formatting for HeaderDateParser.

While trying out the API against a newsgroup server I use, I ran into various header timezone strings that were failing to parse. I updated the timezone parsing to handle all cases specified in RFC822, as well as "UTC", which is not specified in the RFC but is a common timezone string nonetheless.
Additionally, I ran into a header date string that was suffixed with " (UTC)". Since this is another token, I updated the token-count validation logic for this specific case.

@keimpema Please take a look at the AppVeyor build failure. It appears to be related to infrastructure rather than the code change.


symplegit won't work on linux

Runtime.getRuntime().exec("git");
this won't make it in linux, and this is too strictly validated in basicParamsCheks
typical resultions are with "/bin/sh -c" or allowing "/usr/bin/git"

Hi,
This will be fixed in 1.1 version.
The Maven would be available soon, we must ask to move our com.symplegit from old s01.oss.sonatype.org to Maven Central in order to build.
Meanwhile, you can use the final jar manually:
https://www.symplegit.com/download/symplegit-1.1.jar
(signature: https://www.symplegit.com/download/symplegit-1.1.jar.asc)
The new API is:
final Git sympleGit = SympleGit.custom()
    .setDirectory(repoDirectoryPath)
    .setGitExecutable("/usr/local/bin/git") // Specify the full path to the Git executable
    .build();


Minimal 2-step Verification process

This is the minimally-styled MVP for 2-step Verification: https://trello.com/c/Y0H24xy4/86-implement-minimal-2sv-for-selected-beta-users-in-production-and-preview-large
It requires styling as per https://github.com/alphagov/signonotron2/tree/prototype-2fa which will be done as a separate story.
This is intended to be deployed to production where members of Core Formats will be able to explicitly go and enable 2SV on their account for testing and user research purposes.
Near-future stories will add a QR code, style the pages correctly and allow certain classes of users to be marked as requiring 2SV.
This PR relies on a fork of the two_factor_authentication gem. Our change has been contributed upstream and is awaiting merge: https://github.com/Houdini/two_factor_authentication/pull/54
/cc @jamiecobbett @fofr @benilovj

I think it would be worth adding an integration test to show that 2SV is required when resetting a passphrase.

@jamiecobbett do you mean that if a passphrase has been reset by admin, the same 2SV secret still applies? Or that additional 2SV entry is required in order to change your own passphrase?

I've updated this to enforce sign in after password reset.

Apart from the minor comment, this looks good to merge :+1:

Fixed styling, fixed page title, added QR code

:key: :iphone: :+1:


Signing task fails when performing local build

When doing a local build on master, I am getting the following error:

Execution failed for task ':jaeger-apachehttpclient:signArchives'.
Cannot perform signing task ':jaeger-apachehttpclient:signArchives' because it has no configured signatory

A solution could be wrap the signing plugin definition within a conditional, like this:
if (project.hasProperty("signing.keyId")) {
    apply plugin: 'signing'
    signing {
        sign configurations.archives
    }
}

Issue was caused because I was trying to set a release version (0.20.0), which caused the signing tasks to become activated.


Package manager backend

Fix #1439 Package Manager: GetInstalledPackagesAsync doesn't contain package description
Fix #1431 Package Manager: REPL (and all dependent code) is frozen while available packages are loaded
When dealing with the REPL session, EvaluateAsync is used so that code can execute even if the REPL is busy.
To avoid making the REPL busy while querying list of available and installed packages, the query is done in a separate session, which is initialized with the same (repo+libpath) options as the REPL session.  This is based on similar code in FunctionRdDataProvider, which uses its own host session.
Make EvaluateAsync wait for the AfterHostStarted initialization to be completed.  This is the code that loads rtvs package, among other things, which is where i was running into issues.

:+1:

I moved the initialization of the task continuation source to happen earlier in time, next to where the initialization continuation source is.
With my original code, SteppingTest.BreakContinue was failing, but now it's passing again.

There is a known issue with BreakContinue, so ignore it for now:
https://github.com/Microsoft/RTVS/issues/1382


Add notes to image and deployment to guide run... dialog

Linked to slipstream/SlipStreamUI#195

@mebster decided to do this task during this Sprint.


fix: single project case with ip-allow command

:tada: This PR is included in version 1.26.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Feature request: loop scope

Introducing a new loop scope could be useful in some rules. For example:

rule:
  meta:
    name: enumerate PE sections
    namespace: load-code/pe
    author: "@Ana06"
    scope: function
    references:
      - https://0x00sec.org/t/reflective-dll-injection/3080
      - https://www.ired.team/offensive-security/code-injection-process-injection/reflective-dll-injection
    examples:
      - E4C33AC3638EEF68311F8AC0D72483C7:0x401510
  features:
    - and:
      - offset: 0x6 = IMAGE_NT_HEADERS.FileHeader.NumberOfSections
      - basic block:
        - or:
          - and:
            - description: IMAGE_FIRST_SECTION(nt_header)
            - offset: 0x14 = IMAGE_NT_HEADERS.FileHeader.SizeOfOptionalHeader
            - offset: 0x18 = FileHeader.SizeOfOptionalHeader
          - and:
            - description: (DWORD)dll_raw + dos_header->e_lfanew + sizeof(IMAGE_NT_HEADERS) + sizeof(IMAGE_SECTION_HEADER) * i
            - number: 0x28 = sizeof(IMAGE_SECTION_HEADER)
            - or:
              - offset/x32: 0xF8 = sizeof(IMAGE_NT_HEADERS32)
              - offset/x64: 0x108 = sizeof(IMAGE_NT_HEADERS64)
      - loop:
        - and:
          - offset: 0xC = IMAGE_SECTION_HEADER.VirtualAddress
          - offset: 0x14 = IMAGE_SECTION_HEADER.PointerToRawData
          - offset: 0x10 = IMAGE_SECTION_HEADER.SizeOfRawData

From https://github.com/fireeye/capa-rules/pull/308#discussion_r600715392

this seems useful.
it make take a bit of work to enable this without affecting performance too much. but perhaps performance tuning is needed anyways.
i wonder if there are any edge cases with a crazy number of loops that we'd need to handle. and how does the following behave? can it be done efficiently?
loop:
  and:
    loop:
      offset: 10

@williballenthin

loop:
  and:
    loop:
      offset: 10

I understand this as a loop which contains the offset 10. Something like this would for example match:
while(condition){
  var += 10
}

Do you mean that this may be too common and match too often or do we understand different things? 🤔

I think Willi's referring to nested loops like
while(condition1) {
  while(condition2){
    var += 10
  }
}


Keep aspect ratio when resized?

Hi, I am using this control to ply a video file, and as such need the aspect ratio to stay the same when the window / usercontrol is resized. I am struggling to find a solution for this. Would you be able to point me in the right direction?
Thanks1

Maybe this could help?
https://stackoverflow.com/questions/288954/how-do-i-keep-aspect-ratio-on-scalable-scrollable-content-in-wpf

Hi, and thanks! When i use:
    <Viewbox Stretch="Uniform">     <Grid>         <glWpfControl:GLWpfControl              x:Name="OpenTkControl"              Render="OpenTkControl_OnRender"/>     </Grid>     </Viewbox> </UserControl>
The glWpfControl is no longer visible.
with the usual:
   <Grid>         <glWpfControl:GLWpfControl              x:Name="OpenTkControl"              Render="OpenTkControl_OnRender"/>     </Grid>
Everything works perfectly.
Thanks again

Ah, my mistake, i needed to add width and height to teh Grid.
 <Viewbox Stretch="Uniform">     <Grid Height="1080" Width="1920">         <glWpfControl:GLWpfControl              x:Name="OpenTkControl"              Render="OpenTkControl_OnRender"/>     </Grid>     </Viewbox>
Works great. Thanks again!


Display more meaningful error message when account creation fails

All the errors are already sent back from the identity service, so just a way of displaying them is needed.
The only issue is that they are being returned in English, always, but I don't know how much I want to do something about this, at least right now.

Two things:

you could do something similar to link duplicates and just return a pre-defined message from the microservice that would then be replaced with a localised version on the front-end,
I don't think an error should be generated when an email already exists, as that would lead to user enumeration vulnerability - it should probably just say "check your email" or something like that instead, and just silently fail if the account already exists (perhaps send an email saying that the account already exists to avoid confusion).


add support for mingw-std-threads

This allows socket.io-client-cpp to build successfully for me using the MinGW cross-compiler from mxe.cc:
i686-w64-mingw32.static-cmake \
  -DBOOST_INCLUDEDIR:STRING=/opt/mxe/usr/i686-w64-mingw32.static/include/boost \
  -DBOOST_LIBRARYDIR=/opt/mxe/usr/i686-w64-mingw32.static/lib \
  -DBOOST_VER:STRING=1.60.0 \
  -DMINGW_STD_THREADS=$(pwd)/../mingw-std-threads

Replacing with https://github.com/socketio/socket.io-client-cpp/pull/133 (using a different branch name).


I would like to contribute

Hi I am new to open source. I would like to start contributing. It would be great if you could find  task for me.

Hi @sapgit97 !
What about tackling https://github.com/bancodobrasil/stop-analyzing-embed/issues/95? Want to give it a try?

Hi, from what I understood going through the linked issues, it would be something like this:
`router.get("/choice", (req, res) => {
// retrieving query parameters
const queries = req.query;
const previousChoices = queries && queries.previous;
const count = (queries && queries.count) || 2;
// calculating matched choices
const matchedChoices = getMatchedChoices(previousChoices, count);
// return matched choices
const response = {
choices: matchedChoices
}
res.json(response);
});
// logic to get matched choices
// placeholder only currently
function getMatchedChoices(previousChoices, count) {
// TODO: implement this function to return matched choices based on previous ones.
const dbChoices = (db && db.choices) || [];
const dbChoicesLength = dbChoices.length || 0;
let returnCount = (dbChoicesLength > count)? count : dbChoicesLength;
const result = dbChoices.slice(0, returnCount);
return result;
}`
and also I would need to add few more choices to the db file. Should I also have to implement the getMatchedChoices function? If yes, what should be the logic behind that?

Hi @tiagostutz any comments?

Hi @sapgit97! Sorry for the late response...

Should I throw some error if any of the previous queryParameters does not match any id in choices array of db
You could return a 400 (Bad Request)

Should I also have to implement the getMatchedChoices function? If yes, what should be the logic behind that?
Nope, this is just a mock function, don't need any logic. You can randomly return the result. The actual API is being built here: https://github.com/bancodobrasil/stop-analyzing-api. BTW, if you are interested in contributing on a Golang project, you could tackle some issues there.

Hi @tiagostutz, added PR #130.

Hi. this is Akshitha, a newbie. I am comfortable working with HTML, CSS, and javascript. is there any issue that I can solve or help with?

Hi there @AkshithaReddy1899   ! 👋🏻
Welcome to stop analyzing.!
First of all sorry sorry for the laaaaate response
Let's get something for you to tackle. Have you read the README instructions? Were you able to bring the project up and running? Need some help with that?
Please let me know as soon as you put the project running locally and then let's tackle some issues. Ok?


fix: add labels to service examples

PR summary
This PR adds the following:

labels to examples, so it is possible to identify which output section belongs to which method when examples are run
it also replaces "\n" to "%n" in printf methods. "%n" is platform indepented new-line character

PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Current vs new behavior

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.17.16 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update splunk forwarder version

Update splunk forwarder version to remediate CVEs
https://issues.redhat.com/browse/OSD-19609

/retest


Custom form-factors

Issue type
[X] Feature request
[ ] Bug report
[ ] Documentation
Environment
Python version: 3.5.2
NetBox version: 2.3.6
Description
As i can see you have hardcoded form-factors.
I think that better way might have possibility  creating custom form-factors. And customer could make needed type of interface. You need just make code for check that type of interface one device corresponds  type of interface second device.

Duplicate of #84


Frontend initial

Initial gui without any refactor on frontend layer

Hello @kkuba91! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file Application/Interfaces/Command/cli.py:

Line 18:80: E501 line too long (102 > 79 characters)
Line 25:1: W293 blank line contains whitespace
Line 36:1: W293 blank line contains whitespace
Line 42:1: W293 blank line contains whitespace
Line 47:1: W293 blank line contains whitespace
Line 53:12: E111 indentation is not a multiple of four

In the file Application/Interfaces/api.py:

Line 21:51: W291 trailing whitespace
Line 65:80: E501 line too long (109 > 79 characters)
Line 81:80: E501 line too long (96 > 79 characters)
Line 84:1: W293 blank line contains whitespace
Line 91:80: E501 line too long (102 > 79 characters)
Line 96:80: E501 line too long (80 > 79 characters)
Line 101:80: E501 line too long (86 > 79 characters)
Line 116:80: E501 line too long (86 > 79 characters)
Line 121:80: E501 line too long (95 > 79 characters)
Line 180:1: W293 blank line contains whitespace
Line 190:1: W293 blank line contains whitespace
Line 193:80: E501 line too long (82 > 79 characters)
Line 195:80: E501 line too long (87 > 79 characters)
Line 196:1: W293 blank line contains whitespace
Line 201:1: W293 blank line contains whitespace
Line 206:1: W293 blank line contains whitespace
Line 235:1: W293 blank line contains whitespace
Line 252:1: W293 blank line contains whitespace
Line 256:80: E501 line too long (82 > 79 characters)

In the file Application/__init__.py:

Line 39:1: W293 blank line contains whitespace
Line 51:80: E501 line too long (83 > 79 characters)

In the file Application/actions.py:

Line 48:80: E501 line too long (85 > 79 characters)
Line 63:1: W293 blank line contains whitespace
Line 93:80: E501 line too long (81 > 79 characters)
Line 131:80: E501 line too long (84 > 79 characters)
Line 140:80: E501 line too long (89 > 79 characters)
Line 143:80: E501 line too long (85 > 79 characters)
Line 151:80: E501 line too long (89 > 79 characters)
Line 156:80: E501 line too long (93 > 79 characters)
Line 164:80: E501 line too long (86 > 79 characters)
Line 167:80: E501 line too long (87 > 79 characters)
Line 172:80: E501 line too long (110 > 79 characters)
Line 183:80: E501 line too long (89 > 79 characters)
Line 200:80: E501 line too long (83 > 79 characters)
Line 205:80: E501 line too long (98 > 79 characters)

In the file Application/browser.py:

Line 76:80: E501 line too long (87 > 79 characters)
Line 88:80: E501 line too long (84 > 79 characters)
Line 103:80: E501 line too long (82 > 79 characters)
Line 162:1: W293 blank line contains whitespace
Line 166:80: E501 line too long (122 > 79 characters)
Line 169:5: E303 too many blank lines (2)
Line 176:80: E501 line too long (82 > 79 characters)
Line 180:80: E501 line too long (86 > 79 characters)
Line 192:1: W293 blank line contains whitespace
Line 194:80: E501 line too long (90 > 79 characters)
Line 195:80: E501 line too long (90 > 79 characters)
Line 203:80: E501 line too long (81 > 79 characters)
Line 205:80: E501 line too long (80 > 79 characters)
Line 208:80: E501 line too long (91 > 79 characters)
Line 215:80: E501 line too long (88 > 79 characters)

In the file Application/logger.py:

Line 29:80: E501 line too long (86 > 79 characters)
Line 30:80: E501 line too long (87 > 79 characters)
Line 117:80: E501 line too long (98 > 79 characters)

In the file Application/sql_utils.py:

Line 10:80: E501 line too long (89 > 79 characters)
Line 72:80: E501 line too long (81 > 79 characters)
Line 99:80: E501 line too long (84 > 79 characters)
Line 116:80: E501 line too long (86 > 79 characters)
Line 151:80: E501 line too long (84 > 79 characters)
Line 169:80: E501 line too long (84 > 79 characters)
Line 194:80: E501 line too long (80 > 79 characters)
Line 206:80: E501 line too long (92 > 79 characters)
Line 207:80: E501 line too long (81 > 79 characters)
Line 209:1: W293 blank line contains whitespace
Line 211:80: E501 line too long (85 > 79 characters)
Line 219:5: E303 too many blank lines (2)
Line 253:80: E501 line too long (81 > 79 characters)
Line 271:80: E501 line too long (85 > 79 characters)

In the file Application/turnament.py:

Line 57:80: E501 line too long (86 > 79 characters)
Line 58:80: E501 line too long (95 > 79 characters)
Line 60:80: E501 line too long (87 > 79 characters)
Line 61:80: E501 line too long (80 > 79 characters)
Line 64:80: E501 line too long (84 > 79 characters)
Line 100:80: E501 line too long (105 > 79 characters)
Line 107:80: E501 line too long (86 > 79 characters)
Line 121:80: E501 line too long (88 > 79 characters)
Line 135:80: E501 line too long (87 > 79 characters)
Line 172:80: E501 line too long (109 > 79 characters)
Line 175:80: E501 line too long (107 > 79 characters)
Line 194:80: E501 line too long (85 > 79 characters)
Line 206:80: E501 line too long (84 > 79 characters)
Line 229:80: E501 line too long (86 > 79 characters)
Line 234:80: E501 line too long (100 > 79 characters)
Line 235:80: E501 line too long (92 > 79 characters)
Line 241:80: E501 line too long (95 > 79 characters)
Line 252:80: E501 line too long (88 > 79 characters)
Line 274:80: E501 line too long (111 > 79 characters)
Line 292:80: E501 line too long (82 > 79 characters)
Line 298:80: E501 line too long (82 > 79 characters)
Line 338:80: E501 line too long (126 > 79 characters)
Line 340:80: E501 line too long (93 > 79 characters)
Line 344:80: E501 line too long (93 > 79 characters)

In the file Organization/Models/round.py:

Line 34:1: W293 blank line contains whitespace

In the file Organization/player.py:

Line 54:1: W293 blank line contains whitespace
Line 65:80: E501 line too long (107 > 79 characters)
Line 90:80: E501 line too long (184 > 79 characters)
Line 100:1: W293 blank line contains whitespace
Line 102:5: E303 too many blank lines (2)
Line 133:5: E303 too many blank lines (2)
Line 152:80: E501 line too long (84 > 79 characters)

In the file Organization/round.py:

Line 26:80: E501 line too long (83 > 79 characters)
Line 28:80: E501 line too long (100 > 79 characters)
Line 53:80: E501 line too long (82 > 79 characters)
Line 57:80: E501 line too long (87 > 79 characters)
Line 94:80: E501 line too long (87 > 79 characters)

In the file Organization/table.py:

Line 47:1: W293 blank line contains whitespace
Line 66:5: E303 too many blank lines (3)

In the file Systems/_swiss.py:

Line 75:80: E501 line too long (83 > 79 characters)
Line 83:80: E501 line too long (83 > 79 characters)
Line 85:80: E501 line too long (85 > 79 characters)
Line 118:1: W293 blank line contains whitespace
Line 119:80: E501 line too long (109 > 79 characters)
Line 132:80: E501 line too long (83 > 79 characters)
Line 139:80: E501 line too long (82 > 79 characters)
Line 149:80: E501 line too long (107 > 79 characters)
Line 162:80: E501 line too long (83 > 79 characters)
Line 169:80: E501 line too long (82 > 79 characters)
Line 172:80: E501 line too long (99 > 79 characters)
Line 173:80: E501 line too long (82 > 79 characters)
Line 192:80: E501 line too long (83 > 79 characters)
Line 195:80: E501 line too long (82 > 79 characters)
Line 198:1: W293 blank line contains whitespace
Line 204:80: E501 line too long (91 > 79 characters)
Line 212:80: E501 line too long (87 > 79 characters)
Line 214:80: E501 line too long (105 > 79 characters)
Line 216:80: E501 line too long (86 > 79 characters)
Line 234:80: E501 line too long (95 > 79 characters)


GStreamer error: Forbidden

Hi,
First off, thanks for maintaining this plugin. It is very useful!
The issue is related to https://github.com/natumbri/mopidy-youtube/issues/134
which I believe the issue has not been solved yet.
As soon as links expire mopidy is not able to continue playing the same music and I get the following error:
Apr 06 18:56:39 raspberrypi mopidy[570]: ERROR    2021-04-06 18:56:39,977 [570:MainThread] mopidy.audio.gst
Apr 06 18:56:39 raspberrypi mopidy[570]:   GStreamer error: Forbidden

I also applied the same fix as in the pull request https://github.com/natumbri/mopidy-youtube/pull/135 but it does not solved the issue.
The workaround I am using now is to restart the mopidy once a day.

Hello, work fine for me with fix #135 and  cache_ttl = 21600

Great, thanks @christian3107 for the prompt reply!
I did not set the ttl to 21600, maybe that does the trick. In fact, I've noticed that, for my workaround which restarts periodically mopidy, I needed to reduce the time from one a day to once every 6 hours. I observed that the links expire roughly after 8 hours or so.
I am removing my workaround and testing the PR again with such ttl. I'll let you know how it goes.
Also, I did not look at the code but one thing to consider is in which situations the cache gets queried?

When song gets added to the queue
When moving to the next song
On every play/pause actions

For long-running songs (i.e. relaxing music) that are paused now and then (this is my case) the point 3. is required. If that's not the case the PR is not helpful here.

@fsquillace I don't think we'll ever be able to support tracks that are paused for a long time.

Even with the patch, I played a paused track and get the same result:
Apr 11 12:21:20 raspberrypi mopidy[534]: ERROR    2021-04-11 12:21:20,423 [534:MainThread] mopidy.audio.gst
Apr 11 12:21:20 raspberrypi mopidy[534]:   GStreamer error: Forbidden

Replaying paused tracks for long time is basically essential for my use case. The project play/pause tracks depending on a sensor which detect movements in a room, so it is not always controlled manually. Only restarting every 6 hours works perfectly.

Could a workaround be to record the current time and stop, rather than pause. And then seek to the last recorded time before playing again?

That's a good idea too! The main problem is that is not as responsive as just doing play/pause. I've noticed that when running stop (with mpc stop) it takes few seconds to actually stop. Same thing when performing play after a stopped track.

Yeh, there is some teardown when going from play to stop but I'm a bit surprised it's noticeable. Presumably you don't need to stop-start rapidly for your use-case? And definitely yes there'd be unavoidable latency when going from stop to play, it's got to load the stream from scratch and also buffer it a little and then buffer again after it seeks. Maybe it's more noticeable on slower devices and network connections.

I guess persistently caching the audio file retrieved from YouTube would assist with these issues?
Depending on what you need to do, you might be better off abandoning mopidy-youtube altogether, and instead using YouTube-dl to grab the file you want, and mopidy's mopidy-file backend to play it?

The other option is to use download buffering. We added this for gmuic which had the exact same problem. I think it will solve the issue but it's a bit of a sledgehammer.

Depending on what you need to do, you might be better off abandoning mopidy-youtube altogether, and instead using YouTube-dl to grab the file you want, and mopidy's mopidy-file backend to play it?

I guess is not as convenient as just using this youtube plugin, mainly because I can directly search for YT playlists directly from a mopidy client.

I think in general, I was hoping this plugin to take an approach similar to what the youtube website takes when a yt url expires. In fact, on a given stale YT page (e.g. kept opened for quite some time), if you press play button the video will start to recover with a fresher link as soon as the buffer empties. Few years ago youtube was not working in this way and they came with this neater solution which prevent user to restart the whole page (which is roughly what I am doing with my workaround when restarting mopidy). If there are technical reasons to not achieve that I am fine, from a design perspective I see it a very reasonable use case.
Thanks @kingosticks I will try this other approach of download buffering as an alternative to avoid restarting mopidy (although it still seems a workaround).

There are technical reasons in so much that there's no way to give Gstreamer a new URI without changing the track. A work-around would be create a proxy-like thing which sits between Mopidy's GStreamer pipeline and the network. This would allow us to provide Gstreamer with the required single URI which is then translated to potentially multiple URIs by the proxy to handle expiration. I did a proof of concept before with a HTTP proxy but it was a big hack and it breaks for anyone using Mopidy with a real HTTP proxy. Someone could look at creating a gstreamer element to do a better version of this proxy-type idea but I'm not personally interested.

Thanks for the clarification @kingosticks !

There have been some requests for a caching option; I'm thinking about doing it.  One of the things it may assist with is expiring urls.  If you'd like to give it a try, see here: feature/cache
Config option required:
allow_cache = true

Feedback appreciated.


[Rails][Bug] Remove video attachment from Story view in Administrate is not working

Describe the bug
Currently, it seems like an error is being thrown when trying to remove media attachment from the Story edit view in Administrate. The expected behavior is that clicking the "Remove" button should remove the media attachment, but instead we are taken to a Rails error page.
To Reproduce
Steps to reproduce the behavior:

Add a video to a story, and save the story
Edit the story
Click the "remove" link below the media attachment
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Hey, is this issue still relevant, and is it a good one to start with?
Are there more high-priority issues on this project that need to be addressed and which are a similar level of complexity?

Hi @andersan, yes this issue is super relevant still, and I imagine it's a good one to become acquainted with the Rails and media storage side of things. Any help would be highly appreciated! I can assign you if you're interested in taking a look.
I can answer the other question a bit later on in the week.

@rudokemper just got the app set up locally and added a story, speaker and place to see how it all works.
Is this the same error you're seeing? I haven't worked with Rails in a while but can dig into it if it's the same one.

Maybe it is a configuration issue with the way the app is set up on my local environment. I'm running ubuntu 20.04, a fresh install of docker, and using Chrome to test.
Steps I took to get there:

Add media
Save the story
Verify that the story has the media added looking at the map
Edit the story
Try to remove the media

In the terminal running the local server/docker, this is the output when this error happens:
Started DELETE "/admin/stories" for <IP_ADDRESS> at 2022-03-02 14:42:02 +0000
Cannot render console from <IP_ADDRESS>! Allowed networks: <IP_ADDRESS>, ::1, <IP_ADDRESS>/<IP_ADDRESS>

ActionController::RoutingError - uninitialized constant StoriesController:

Started POST "/__better_errors/71f105941e69c37a/variables" for <IP_ADDRESS> at 2022-03-02 14:42:02 +0000
Cannot render console from <IP_ADDRESS>! Allowed networks: <IP_ADDRESS>, ::1, <IP_ADDRESS>/<IP_ADDRESS>
Since there is no EDITOR or BETTER_ERRORS_EDITOR environment variable, using Textmate by default.

After making some changes to the rails/config/environments/development.rb file as suggested here, the error message is slightly different ("Cannot render console" messages shown above no longer appear):
Started DELETE "/admin/stories?attachment_id=3&record_id=6" for <IP_ADDRESS> at 2022-03-02 15:05:14 +0000

ActionController::RoutingError - uninitialized constant StoriesController:
Started POST "/__better_errors/5001f7e0e0a43da5/variables" for <IP_ADDRESS> at 2022-03-02 15:05:14 +0000
Since there is no EDITOR or BETTER_ERRORS_EDITOR environment variable, using Textmate by default.

Note that after making those changes to the development.rb file, I can create, update and delete a story without any issue.

Nice! This change permits you to remove a media attachment from a story as well? If so, please do feel free to submit a PR and we can test it out!

The above issue was just a local config issue. I added a new stories controller outside the Admin context via "rails g controller stories". In the master branch, the Stories controller only exists in the admin folder. Adding that controller changes the error message to the following:
The action 'delete' could not be found for StoriesController
Adding "delete" to the admin stories controller might fix the issue, but I'm not sure. I'm a rails novice (work a lot more with JS/node.js) so am learning as I make these changes.

Think the issue was:

the route was pointing at "stories" instead of "admin/stories". the route for deleting "places" seems like it might have the same issue
there was no logic in the admin stories controller to remove the attachment

This should be fixed. Removing images/attachments and deleting stories both seem to work with these changes. I wasn't sure if the change would result in story deletion being broken.


New rolling date ranges.

New rolling date ranges.

Warnings

:warning:
The README has not been updated. Please update the README.

Messages

:book:
We were able to automatically fix some formatting issues in this PR for you!

:book:
Could not find any browser results.

Some things that were possibly fixed:

Code that could be fixed via the --fix flag
Formatting that could be fixed by prettier

Take a look at this commit to see what happened in detail: 0d392853644dec70288c25243d481fbf9ecc216d
And look at this wiki page to see the reasoning behind the ESLint rules: https://github.com/smartprocure/eslint-config-smartprocure/wiki/Rules-and-Why-We-Chose-Them

  Generated by :no_entry_sign: dangerJS against 4e3b2d33a98dd34093bed05e5cc2422d913d9826


high severity vulnerability in cross-spawn

npm audit report
cross-spawn  <6.0.6
Severity: high
Regular Expression Denial of Service (ReDoS) in cross-spawn - https://github.com/advisories/GHSA-3xgq-45jj-v275
Path:   yarn-audit-fix > synp > bash-glob > cross-spawn

https://github.com/imsnif/synp/pull/108


Implement GreedyICPool

Implement somewhat conservative option, where after a component is split, the split products aren't targeted.
This may be slower in the cases where one large component must be split multiple times, however this may avoid falling into local minima as it "shares" the splitting across components more evenly.
It isn't a huge change, and can probably be a parameter in GreedyICPool.
Also! Improve convergence to compare against when it first became an N component mixture, as opposed to waiting till target_ix = 0. This can avoid up to N unnecessary convergence checking mixtures.
The current algorithm leads to the following (bad) case example: say a 6-component mixture will ultimately be chosen as the best mixture, but we achieved this by splitting component 0, and now target_ix=1.
This means we will fit some 7-component mixtures by splitting components 1, 2, 3, 4 and 5.
Only when we cycle back to target_ix=0 do we begin the actual convergence check, by setting self.n_comps_at_cycle_start = 6. Now we split components 0, 1, 2, 3, 4, and 5. Note the duplication of 1 through 5.
If instead we set self.n_comps_at_cycle_start = 6 when we first accepted the 6th component, we would terminate when target_ix cycled back to 1 again.


Generate separate prettier and eslint ignore files to improve auto-formatting behavior

Creates a .vscode/settings.json for each sub-package to tell the VSCode Prettier plugin which ignore file to use.  By default it looks in the root of each sub-package, and finds no .prettierignore file. This way, format-on-save in VSCode will automatically respect our rules.

Recommend the vscode prettier and eslint extensions.

We want to avoid formatting and linting all Git-ignored files, _plus a few additional patterns_. However, neither Prettier [1] nor ESLint [2] support passing multiple ignore files. So, we now instead maintain separate `.prettierignore` and `.eslintignore` files, but automatically inject the contents of `.gitignore` into them.
This replaces the previous hacky approach, where I was creating a temp file before formatting/linting. This was bad because 1) it didn't work with our husky auto-format hook, and 2) it didn't work with the VSCode Prettier plugin.
[1] https://github.com/prettier/prettier/issues/8048
[2] https://github.com/eslint/eslint/issues/9794
cc @abdonrd

@aomarks thinking about this... I want to propose this alternative, which is a bit more declarative and easy to maintain.
https://github.com/Polymer/lit-html/pull/1415/files

@aomarks thinking about this... I want to propose this alternative: #1415
Which seems a bit more declarative and easy to maintain.

Thanks, merged.

With this #1415, are the .vscode/settings.json files still needed?

With this #1415, are the .vscode/settings.json files still needed?

Yeah, the prettier extension is a bit weird and looks for a .prettierrc in each root of a multi-root workspace, instead of looking for the nearest .prettierrc on disk, like I would expect.


Fix emitted file extension for JavaScript files with JSX.Preserve

(cherry picked from commit af0a0eedd85298d049f89f754364497e36efe671)

:+1:


JupyterHub: "Blocking Cross Origin API request"

Hi, I was trying to set up istio with jupyterhub so I can use custom envoyfilters through wasm.
However, instead of using the jupyterhub-istio-proxy, I was hoping to keep the configurable-http-proxy (at least until I get this one to work, since I wasn't able to get your proxy to work).
I am using ambassador edge-stack as a reverse proxy. So the system looks like:
[SSL termination via AWS loadbalancer] -> ambassador mapping -> jupyterhub ecosystem from 0.11.1 helm chart...
I have an envoyfilter (using proxy-wasm rust sdk) on the proxy-public pod, and it sets the following request headers:
fn on_http_request_headers(&mut self, num_headers: usize) -> wasm::types::Action {
    let my_host: String = String::from("hub");
    self.set_http_request_header("host", Some(&my_host));
    ...
}

Setting this header in the envoyfilter solves the "No webpage was found for the web address issue" that you document in your medium article. However, now I am getting a new issue. The console shows:

And if I look at the hub pod log, I see:
[W 2021-10-13 22:34:23.091 JupyterHub base:57] Blocking Cross Origin API request.  Referer: https://jupyterhub.something.com/hub/spawn-pending/asdf, Host: hub/hub/

I think it has to do with istio not properly preserving the host header. How do you solve this issue?

I vaguely recall troubleshooting something similar. I think I had to set something like `c.JupyterHub.ip = "" to get this to work. I hope it helps

Just wanted to follow up with you on this. So I ended up setting an apache webserver in-front of jupyterhub, and have istio sidecars disabled on the hub deployment and the proxy deployment. I now have an istio-side car on the apache webserver pod(s).
With this setup, there is no 403 issues. No configuration on jupyter will make this work, since I think that istio-proxy sidecar is not doing preserving the hostname, like how apache's "ProxyPreserveHost" does, since from the hub log, we can see that the host in the request is the kubernetes service name. Do you know how to preserve this header?


AudioServer.capture_set_device()and AudioServer.device() do not work on Windows

Godot version:

Godot 3.2.3 64 Bit and Godot 3.2.4 RC3
OS/device including version:

Windows 8.1
Issue description:

AudioServer.capture_set_device("Stereo Mix")    don't work.
print(AudioServer.capture_get_device_list())
Has as output: [Default, Stereo Mix (Realtek High Definition Audio), Microphone (Realtek High Definition Audio)]
But AudioServer.capture_set_device("Stereo Mix") (or AudioServer.capture_set_device("Stereo Mix (Realtek High Definition Audio)")) has with print(AudioServer.capture_get_device()) only Default as output. (It also won't work with Microphone.)
Maybe the documentation should be improved, if I have understood something wrong.
I haven't tested the AudioServer.device .
Steps to reproduce:

AudioServer.capture_set_device("Stereo Mix")
print(AudioServer.capture_get_device())

Minimal reproduction project:

AudioServer.zip (Enable Stereo Mix in Windows AudioSettings.)

Uploaded

You have to enable Stereo Mix on Windows or you can change the line 12 to `AudioServer.capture_set_device("Micophone").

I can't be sure AudioServer.capture_set_device() works or not, because the minimal project is too simple, so I just uplaod the screenshot

When I run the exact same script, my output is this:

When I run the exact same script, my output is this:

Maybe it is somhow only one Realtekdevice?

I use Mac, so not sure about that

It is probably a Windows problem. (I use Windows 8.1)

AudioServer.device =AudioServer.get_device_list()[1] does not work either. ( Speaker (Realtek High Definition Audio) )

If I run this script and use a AudioStreamPlayer with a AudioStreamMicrophone the Output prints Default but the Microphone (also Stereo Mix) don't work. Without this code the microphone works.
AudioServer.capture_set_device("Stereo Mix (Realtek High Definition Audio)")
  print(AudioServer.capture_get_device())

I am on Windows 10 and setting the device as above does indeed not work. Godot 3.3.2 Stable.
AudioServer.capture_set_device(AudioServer.capture_get_device_list()[2])

Dosn't work on Windows 11 withGodot  v4.0.alpha2.official [79077e6c1].
AudioServer.capture_set_device(AudioServer.capture_get_device_list()[1])

Not working with Godot v4.0.alpha10.official [4bbe7f0b9]

Tested on Windows 7 SP1, Godot_v3.5.1-stable_win64, Godot_v3.5-stable_win64, Godot_v3.4.4-stable_win64.
Not working.
I tried to set device from capture_get_device_list (I have 3 devices). The result of AudioServer.capture_get_device() is always "Default".

Also not working with Godot 4.0 Beta 1.

From the AudioServer docs...

String capture_device
If an invalid device name is set, the value will be reverted back to "Default".

My belief is that the engine is interpreting all Windows input devices to be invalid (for whatever reason), and attempting to set them with capture_set_device or setting capture_device directly causes the failsafe to return Default. My hypothesis is that removing the failsafe will make this work again, but there will probably be other issues present.

If anyone is interested in bisecting this, issue starts in Godot 3.2.3 and is still present through Godot 4.0 beta3.
I looked through the repository and found every mention of "capture_set_device", but I can't find any mention of the failsafe that's being used here:
audio_driver_wasapi.h
audio_server.h
audio_server.cpp
audio_driver_wasapi.cpp
There are the only mentions I found, though I'm sure there's more; I excluded Pulse Audio & Core Audio since those are for Linux and Mac, respectively, and this issue only seems to be effecting Windows through WASAPI (though the issue could lie elsewhere).

Setting the output device in _ready works for me.

From this output, it first initializes the default device (accurate to my system settings). Then it selects the device I put in _ready. But what's weird is that the input device never initializes, not even the default device.

With #69120, here is a new project to test this: Windows Default Audio Bug.zip
Still don't know what is causing this exactly, but it seems specific to WASAPI.
Input devices don't update, but output devices do.. just not immediately:

Do you have microphone access enabled in the Windows settings?

I have the equivalent Windows 10 setting enabled, but Godot 4 does not come up on the list of apps, so that might be related.

Microphone input does not work on Godot 4 Beta 17 & RC1 due to #72892. I'll build from master on Windows 11 and see if that makes a difference.

Time flies. Turns out (at least my hunch is) Godot isn't initializing the microphone (even after enabling audio input in Project Settings). Checking the Windows microphone settings, the last time Godot asked for microphone use was in Godot 3 about a year ago on my machine. So for some reason, WASAPI might not be initializing now in Godot 4.0.

Started working for me after disabling all other microphones and turning off "Exclusive Mode" on my default microphone.

Since this is not a necessary step to do in other games, I think it is still fair to consider this a bug.


[Jenkins] Remove jenkins config and deployment files

We are now using Zuul to replace Jenkins

recheck

recheck

recheck

recheck

I mean... not seeing stf-crc-ocp_413-... jobs kinda indicates this worked right? :)

You're thinking of the PR that removed zuul ocp 4.13 jobs.
This is removing jenkins.

recheck

recheck


Support esm config files

This adds support for loading svelte.config.js - config files in ESM format, which is now supported by language-tools. It tries to load the .js format first and falls back to .cjs to ensure backwards compatibility; some people may also want to keep using cjs config files due to things like easier imports of JSON files. This is also the reason why there's no change in the starter template: its config contains an import of package.json, and JSON imports are hidden behind an experimental node flag for now.

Converting this to a draft because I just noticed that this also needs an update in vite-plugin-svelte - @dominikg I think that this line needs to change to use import(..) . Note though that TS will transpile this to a require anyway, that's why you need to create a const dynamicImport = new Function('path', 'return import(path)'); function and use that one as a workaround (see https://github.com/microsoft/TypeScript/issues/43329 for more info).

This is now ready to review. I'd like to get a manual test of this from a linux/mac user. I tested this on windows and it worked for me.
I did not change the starter template even if it doesn't have the package.json import anymore. I'd like to split this decision out into a separate PR. We then also need to update all docs with config examples and add a FAQ entry about the possibility to switch to cjs if needed, for example if you need to import the package.json into your config (loading JSON isn't supported in ESM yet).

Would module.createRequire(import.meta.url)('...') be a valid workaround for JSON loading? If we want to be able to rewrite adapters as ESM, it'd probably be helpful if the config file loading them were also ESM. (How would using ESM adapters in a CJS config work? Would you export a promise resolving to the config? Do we want an extra await in the config loading code to support this?) To avoid complications should we just say that loaders should always be CJS?

Would module.createRequire(import.meta.url)('...') be a valid workaround for JSON loading?

Maybe? If that is the suggested way by node, then yeah, probably. But this is a thing the user then has to do in his file, there's no way to do this automatically

How would using ESM adapters in a CJS config work? Would you export a promise resolving to the config? Do we want an extra await in the config loading code to support this?

The only way to load ESM in CJS is to do the dynamic import() which returns a promise.

Right, which is why I was saying their CJS config would have no choice but exporting a promise resolving to their config. Do we want to plan for that by having an extra await as appropriate where we load the config? Or do we want to push createRequire as the way to do this? Or do we want the adapter API to simply remain CJS?

I think having the config being asynchronous should be okay for Kit, the language-tools and the vite plugin. Since all of them use import() to load the config, it's already async so this shouldn't make a difference. But we should check first to make sure.
Either way, I want this to go into separate PRs. This one makes it possible to use ESM configs while not changing any defaults, and it is still possible to use CJS.


Encode output inside mako cmd and write as binary

This change is a proposed fix for #376

Mike Bayer has proposed a fix for this issue in the main branch:
switch to textmode in all cases https://gerrit.sqlalchemy.org/c/sqlalchemy/mako/+/4450

I dont understand this PR or my comments about "fix this on the read side".   If this is for #376 why isn't it just the fix I proposed at https://github.com/sqlalchemy/mako/issues/376#issuecomment-1432083590 ?      Changing Mako to not read from binary mode or whatever can be something else.
can we make a PR that fixes #376 in the most simple way possible, thanks.

looks like I requested that here at https://github.com/sqlalchemy/mako/pull/377#pullrequestreview-1300411533  already, so this PR is stalled.   We can reopen if someone has time to work on this or make a new PR against #376.


Cannot install it on my system. Throws multiple errors "cannot create symbolic link" while unzipping the file. Installer is missing once unzipped.

Windows Version
Microsoft Windows [Version 10.0.19045.3570]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
No response
Distro Version
No response
Other Software
No response
Repro Steps
unzip the file in a local folder
Expected Behavior
To access the installer
Actual Behavior
No installer in the file.
Throws me errors while trying to unzip

Diagnostic Logs
No response

What exactly are you trying to unzip ? The recommended way to install is to use wsl --install


Updated example of how to use this library

The README.md code example was outdated.

The readme is accurate for the code on master.


Error relocating grpc-gateway.so: unsupported relocation type 7

Hi,
I am basically following the example from this blog to create a grpc plugin: https://www.krakend.io/blog/krakend-grpc-gateway-plugin/
The issue is that ones I try to run it on my mac I get the following error:

2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.838 ▶ DEBUG [SERVICE: telemetry/logging] Improved logging started.
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.838 ▶ INFO Starting KrakenD v2.5.0
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.839 ▶ INFO Working directory is /etc/krakend
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.839 ▶ DEBUG [SERVICE: Plugin Loader] Starting loading process
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.842 ▶ DEBUG [SERVICE: Executor Plugin] plugin #0 (plugins/grpc-gateway.so): plugin.Open("plugins/grpc-gateway.so"): Error relocating /etc/krakend/plugins/grpc-gateway.so: unsupported relocation type 7
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [SERVICE: Handler Plugin] plugin #0 (plugins/grpc-gateway.so): plugin.Open("plugins/grpc-gateway.so"): Error relocating /etc/krakend/plugins/grpc-gateway.so: unsupported relocation type 7
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [SERVICE: Modifier Plugin] plugin #0 (plugins/grpc-gateway.so): plugin.Open("plugins/grpc-gateway.so"): Error relocating /etc/krakend/plugins/grpc-gateway.so: unsupported relocation type 7
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [SERVICE: Plugin Loader] Loading process completed
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ INFO Starting the KrakenD instance
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [ENDPOINT: /user-manager/user/create] Building the proxy pipe
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [BACKEND: /user-manager/user/create] Building the backend pipe
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [BACKEND: /user-manager/user/create] No plugins registered for the module
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [ENDPOINT: /user-manager/user/create] Building the http handler
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ DEBUG [ENDPOINT: /user-manager/user/create][JWTSigner] Signer disabled
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ INFO [ENDPOINT: /user-manager/user/create][JWTValidator] Validator disabled for this endpoint
2023-12-18 00:16:26 [KRAKEND] 2023/12/17 - 23:16:26.843 ▶ INFO [SERVICE: Gin] Listening on port: 8000
2023-12-18 00:16:31 [KRAKEND] 2023/12/17 - 23:16:31.840 ▶ DEBUG [SERVICE: Telemetry] Registering usage stats for Cluster ID 2Tg5FBe+Uw2LHg0LnQEXdMI8LJ/ccadxsFzGBL7NAxg=
2023-12-18 00:16:26 Parsing configuration file: /etc/krakend/krakend.json

This is the dockerfile that I am using:

FROM krakend/builder:2.5 as builder
WORKDIR /src
ADD go.mod /go.mod
ADD go.sum /go.sum
COPY ./gateway/ /gateway
COPY ./generated/ /generated
COPY ./plugins/ /plugins
RUN export CGO_ENABLED=1
RUN export CC=aarch64-linux-musl-gcc
RUN export GOARCH=arm64
RUN export GOHOSTARCH=amd64
RUN export EXTRA_LDFLAGS='-extldflags=-fuse-ld=bfd -extld=aarch64-linux-musl-gcc'
RUN go build -ldflags="${EXTRA_LDFLAGS}" -buildmode=plugin -o /plugins/grpc-gateway.so /plugins/grpc-gateway.go
FROM devopsfaith/krakend:2.5
COPY --from=builder /plugins/grpc-gateway.so /etc/krakend/plugins/
COPY krakend.json /etc/krakend/krakend.json

I think the issue is related to the architecture problems you mention on your site for ARM64: https://www.krakend.io/docs/extending/injecting-plugins/, but adding the flags you mentioned there doesn't seem to solve the issue.
Do you know how I can solve it? Thanks in advance :)

Run uname -m and check if the host arch is indeed amd64


cmd/go:build: fails to build private gitlab repository

What version of Go are you using (go version)?

$ go version
1.13.4

Does this issue reproduce with the latest release?
If latest release you mean 1.13.4 version, then yes.
What operating system and processor architecture are you using (go env)?
Windows 10 Pro build 18362
go env Output
$ go env
set GO111MODULE=auto
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\aukstkalnis.de\AppData\Local\go-build
set GOENV=C:\Users\aukstkalnis.de\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=gitlab.com/Aukstklanis/go-teltonika
set GONOSUMDB=gitlab.com/Aukstklanis/go-teltonika
set GOOS=windows
set GOPATH=D:\Projects\Go_Projects\GoPath
set GOPRIVATE=gitlab.com/Aukstklanis/go-teltonika
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=D:\Temp\go-build914382358=/tmp/go-build -gno-record-gcc-switches

What did you do?
Tried to build gitlab's private repository
What did you expect to see?
Normal build result.
What did you see instead?
go: finding gitlab.com/Aukstkalnis/go-teltonika latest
go: finding gitlab.com/Aukstkalnis/go-teltonika/server latest
go: finding gitlab.com/Aukstkalnis/go-teltonika/trace latest
verifying<EMAIL_ADDRESS><EMAIL_ADDRESS>reading<EMAIL_ADDRESS>410 Gone
go.mod:

$go.mod
module gitlab.com/Aukstklanis/go-teltonika

go 1.13

And why go build tries to download repository that i am working on? I might have changed something and server do not have these changes...

why go build tries to download repository that i am working on?

It doesn't, unless the main module transitively depends on some previous version of itself.
Does the module directive in your go.mod file match your repo path?

The error during the verifying phase seems to be working as designed.
See https://golang.org/cmd/go/#hdr-Module_configuration_for_non_public_modules.

I don't  know about working as designed, but builds fails... My repo does not mach with module name defined in go.mod file. Only las folder mach.

This issue seems to be a question about how to use Go, rather than a feature request or defect report about the Go language and/or toolchain.
We have decided that our experiment to allow questions on the issue tracker has not had the outcome we desired, so I am closing this issue. I'm sorry that we can't answer your question here.
There are many other methods to get help if you're still looking for answers:

The golang-nuts mailing list.

Stack Overflow, with questions tagged go.

The Go Forum, a web-based forum hosted by GoBridge.

The Gophers Slack hosted by GopherAcademy; use the invite app for access.
The #general channel is a good starting point.

Go Community on Hashnode with questions and posts tagged with "go"

IRC channel #go-nuts on Freenode

Thanks


fill in dimensions with dims from inits

For testing only; do not merge.
This adds dims from inits in similar fashion to use of dims from constants when dimensions input is missing information.
This addresses issue #631

Using dims from inits is affecting test-size.R (not surprisingly), so I need to look into that.

@perrydv @danielturek: thoughts on the following?
If we set values in dimensionsList based on inits, we can run into cases where the inits have inconsistent dimensionality compared to the BUGS code and for which in the past NIMBLE was able to forge ahead, but now we would emit an error. For example in the following case, one can initialize a 1x1 matrix with a scalar and things work fine, but with the changes I am making to grab dimensions from inits, this errors out.
code <- nimbleCode({
    for(i in 1:1)
        for(j in 1:1)
           y[i,j] ~ dnorm(mu[i,j], sd = sig)})
m  = nimbleModel(code, debug = T, dimensions = list(mu = 0))

Error in addMissingIndexingRecurse(code[[i]], dimensionsList) :
  inconsistent dimensionality provided for node 'mu'

@paciorek Tough call.  We're always fighting against this ambiguity in demensions in R.  scalar or length-1 vector?  In your example, scalar or 1 x 1 matrix?  I don't know how much work you've put into this system for inferring dimensions from inits, but would it be within reason to have it recognize (and track) these inconclusive cases?  That a scalar could be an initial value for a length-1 vector, or for a matrix?  And that a vector could be an initial value for an n x 1 matrix, or for that matter, for a higher order dimension array?  It might be a bit of work, but could be an answer to this.

I've fixed this up in a form that I'm satisfied with - basically the use of inits to find dimensions now only does so if the inits come in as non-scalars (I had overlooked this in the original coding up of this functionality).  So we can initialize 1-length vectors or matrices with scalars, but if we initialize scalars with 1-length matrices, we trigger an error, which I think makes sense.
Once I get testing to pass, I will merge this in.


Add onListening hook

I don't know if this is something that the project would be interested in, so I'm opening this for discussion. I'd like to know if it might be good to provide an equivalent to webpack-dev-server's onListening hook. This simply executes a function once the server starts listening, doesn't do any middleware stuff. I use this at my current work to display the full entry URL of the application after it starts, which has been a nice-to-have for our internal dev experience. I'm open to creating a PR but I just wanted to check with you maintainers before I go down that route. Thanks!

PR welcome 😃

Released in v1.1.0.


Update for Swift 3 and CocoaPods

Will this project be updated for Swift 3 and for CocoaPods ?

Can you plz upgrade this to swift3.0 and swift4.0


validate: fail in check_devices at the right task

see https://bugzilla.redhat.com/show_bug.cgi?id=1648168#c17 for details.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1648168#c17
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

NOTE to myself:
backport in 3.2 will have to apply this change on this part of the code
- name: validate dedicated_device is/are actually device(s)
  parted:
    device: "{{ item }}"
    unit: MiB
  register: dedicated_device_parted
  with_items: "{{ dedicated_devices }}"
  when:
    - osd_scenario == 'non-collocated'

- name: fail if one of the dedicated_device is not a device
  fail:
    msg: "{{ item }} is not a block special file!"
  with_items: "{{ dedicated_device_parted.results }}"
  when:
    - osd_scenario == 'non-collocated'
    - item.failed


Use SVG for icons instead of bitmaps

Closes #8756

There are a couple of unresolved issues which is why I have marked this PR as a draft.
Firstly, there is no SVG version of the marker shadow. I don't have much experience designing these sort of things so I would appreciate it if someone could create an SVG version of this asset.
I am also considering the idea of removing the shadow image, and instead using the drop-shadow CSS filter. Which should automatically create shadows in the correct shape for 3rd party icons as well, without needing additional assets.
Secondly, it looks like the SVG version of the marker does not have the hole on the top filled in white (see below). Something that is present in the bitmap version.

WDYT?

Before landing this change, we should make sure it has no implications on performance when using a lot of markers on screen at once (e.g. thousands), and check in Blink, Webkit and Firefox since they are optimized differently with regards to rendering SVG.
Also, it would be nice to explore how the new markers could styled with CSS — e.g. add classes to some of the marker elements so that we could pass a className to a marker that we can target to make it red instead of blue.

Also, it would be nice to explore how the new markers could styled with CSS — e.g. add classes to some of the marker elements so that we could pass a className to a marker that we can target to make it red instead of blue.

We could probably use CSS variables for this even. However I do believe this would require us to in-line the SVG either way (vs. loading it as an image). Not sure what the performance implications of that would be.

@Falke-Design flyTo duration should be approximately the same regardless of performance. I'd measure number of frames instead (relative to theoretical maximum, which is duration * 60).

Also, it would be nice to explore how the new markers could styled with CSS — e.g. add classes to some of the marker elements so that we could pass a className to a marker that we can target to make it red instead of blue.

We could probably use CSS variables for this even. However I do believe this would require us to in-line the SVG either way (vs. loading it as an image). Not sure what the performance implications of that would be.

From experience inline SVG are terribly slow. I've had to convert them to base64 in one of my projects


implement all remained "panic" methods

I didn't create test programs but I just tested via compiler. There are no syntax and type errors.

Thank you very much for the contribution here, @shibukawa!
I've looked over this PR with moderate scrutiny and did not spot any major issues. Unfortunately, I don't have the bandwidth to write test programs for all those new endpoints and test that they're working optimally myself either.
On the one hand, this PR is a strict improvement over before, which was a panic. But I do have one concern. If new people start using some of these implemented but untested endpoints, if there's an issue, they may not realize that the code they're relying on is untested. Previously, it would've been very clear as they'd get a "not yet implemented" panic, but now it will quietly run and they may spend a lot of time debugging their own code before realizing the problem is inside an untested binding method implementation.
Since neither of us have tested the new endpoints, I would consider doing this step for now. Instead of outright removing the panic("MethodName: not yet implemented") messages, consider replacing them with a:
log.Println("MethodName: not yet tested (TODO: remove this after it's confirmed to work)")

That way, people who use these newly implemented but untested endpoints can confirm things work as expected, and they'll be very motivated to remove the log.Println calls as they'll be very spammy.
But I think that's a safer path to traverse. What do you think about that idea?

Also, if you agree that it's a good idea but prefer not to do it, let me know and I can take care of it myself. Thanks again for contributing!

OK, I understand your idea. I will add log.Println and push again next week.

Great, thanks!
I suggest skipping trivial single-line implementations like these:
 func LineWidth(width float32) {
-	panic("LineWidth: not yet implemented")
+	gl.LineWidth(width)
 }

Very little can go wrong there. If it compiles, it's likely fine.
But do include it on non-trivial methods that could either get the pointers wrong, or may not be implemented in the most performant way, etc., such as these:
 func ReadPixels(dst []byte, x, y, width, height int, format, ty Enum) {
-	panic("ReadPixels: not yet implemented")
+	if ty == Enum(UNSIGNED_BYTE) {
+		c.Call("readPixels", x, y, width, height, format, ty, dst)
+	} else {
+		tmpDst := make([]float32, len(dst)/4)
+		c.Call("readPixels", x, y, width, height, format, ty, tmpDst)
+		for i, f := range tmpDst {
+			binary.LittleEndian.PutUint32(dst[i*4:], math.Float32bits(f))
+		}
+	}
 }

But only for methods that you've not tried yourself. If you try it and it works, then it probably doesn't need the warning. Thanks again!

I added warning messages.

I've reviewed the changes. LGTM, merging. I've left a few minor comments that can be followed up optionally afterwards.
Thank you very much @shibukawa for this awesome contribution!


[Chat] [Feature]  Clear Typing indicator

Purpose

Clear Typing indicator

Does this introduce a breaking change?

[ ] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

Pull Request Checklist

[ ] Public API changes
[ ] Verified for cross-platform
[ ] Synced with iOS, Web team
[ ] Internal review completed
[ ] UI Changes

[ ] Screen captures included
[ ] Tested for Light/Dark mode
[ ] Tested for screen rotation
[ ] Tested on Tablet and small screen device (5")
[ ] Include localization changes

[ ] Tests

[ ] Memory leak analysis performed
[ ] Tested on API 21, 26 and latest
[ ] Tested for background mode
[ ] Unit Tests Included
[ ] UI Automated Tests Included

How to Test

Open...
Click on...

What to Check
Verify that the following are valid

...

Other Information

@v-loalbert can we use https://github.com/microsoft/fluentui-android/blob/master/fluentui_others/src/main/java/com/microsoft/fluentui?

@v-loalbert can we use https://github.com/microsoft/fluentui-android/blob/master/fluentui_others/src/main/java/com/microsoft/fluentui?

@iaulakh  Do you mean the Fluent UI's AvatarGroupView?
If so, then yes, I will use that instead of AvatarView to display the Typing indicator's Avatars


Felix: Syslog log format lacks tag

When starting felix (and possibly the other daemons), anything going to syslog does not have a properly formatted tag.  Due to this, syslog support is pretty much useless.  For example:
Dec 19 19:00:46.010231 <IP_ADDRESS> exiting after uncaught exception
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/calico/felix/felix.py", line 725, in main
agent.run()
File "/usr/lib64/python2.7/site-packages/calico/felix/felix.py", line 606, in run
polled_sockets = dict(lPoller.poll(self.config.EP_RETRY_INT_MS))
File "/usr/lib64/python2.7/site-packages/zmq/sugar/poll.py", line 101, in poll
File "_poll.pyx", line 115, in zmq.backend.cython._poll.zmq_poll (zmq/backend/cython/_poll.c:1678)
File "checkrc.pxd", line 11, in zmq.backend.cython.checkrc._check_rc (zmq/backend/cython/_poll.c:1879)
KeyboardInterrupt
Dec 19 19:00:49.638127 <IP_ADDRESS> starting
Dec 19 19:00:49.638517 <IP_ADDRESS> socket to entity <IP_ADDRESS>:9902
Dec 19 19:00:49.639025 <IP_ADDRESS> socket to entity <IP_ADDRESS>:9901
Dec 19 19:00:49.639267 <IP_ADDRESS> socket to entity <IP_ADDRESS>:9905
Dec 19 19:00:49.639514 <IP_ADDRESS> socket to entity <IP_ADDRESS>:9906
This should look more like:
Dec 19 19:00:49.638127 <IP_ADDRESS> calico-felix: starting

This was resolved by #75 and the fix is now in master. Thanks for the report @nbartos!


Fix warnings for ghc883 and github-0.25 compatibility

ssia

This would break compatibility with the current default pinned versions of GHC and github. But I wouldn't mind updating to GHC 8.8.3 as soon as my IDE setup can work with it (see https://github.com/Infinisil/all-hies/issues/52 and https://github.com/Infinisil/all-hies/issues/55)

Btw I still use the thing https://github.com/sorki/xnand and I quite like it :smile:


bug: TypeError: Le.a.command is not a function occurs on Windows production build when plugging Realtek adapter

Overview

Plugging in a Realtek ethernet adapter to connect to the rasberry pi & smoothieboard combo triggers this type error on the 3.17.1.-alpha build.
Current behavior

Log output:
18:54:40.722 [log] info: Level "error" and higher logging to C:\Users\Storm\AppData\Roaming\Opentrons\logs\error.log
18:54:40.728 [log] info: Level "debug" and higher logging to C:\Users\Storm\AppData\Roaming\Opentrons\logs\combined.log
18:54:40.728 [log] info: Level "info" and higher logging to console
18:54:40.951 [main] info: Starting App
18:54:40.968 [ui] info: Loading file://C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\ui\index.html
18:54:40.999 [main] info: Creating renderer logger
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unpipe listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unpipe listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unpipe listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unpipe listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [File]. Use emitter.setMaxListeners() to increase limit
(node:12368) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [File]. Use emitter.setMaxListeners() to increase limit
18:54:41.340 [log] info: Level "error" and higher logging to C:\Users\Storm\AppData\Roaming\Opentrons\logs\error.log
18:54:41.341 [log] info: Level "debug" and higher logging to C:\Users\Storm\AppData\Roaming\Opentrons\logs\combined.log
18:54:41.341 [log] info: Level "info" and higher logging to console
18:54:41.744 [update] info: Checking for update
(node:12368) UnhandledPromiseRejectionWarning: TypeError: Le.a.command is not a function
    at C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\lib\main.js:1:38034
    at Ue (C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\lib\main.js:1:38305)
    at Array.map (<anonymous>)
    at C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\lib\main.js:1:39059
(node:12368) UnhandledPromiseRejectionWarning: TypeError: Le.a.command is not a function
    at C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\lib\main.js:1:38034
    at Ue (C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\lib\main.js:1:38305)
    at Array.map (<anonymous>)
    at C:\Users\Storm\AppData\Local\Programs\Opentrons\resources\app.asar\lib\main.js:1:39059
(node:12368) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:12368) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:12368) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:12368) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
18:54:41.809 [renderer] info: Rendering app UI
18:54:42.222 [main] warn: Failed to install devtools extension {
  name: 'REACT_DEVELOPER_TOOLS',
  forceReinstall: true,
  undefined: [ { name: 'REACT_DEVELOPER_TOOLS', forceReinstall: true } ]
}
18:54:42.235 [main] warn: Failed to install devtools extension {
  name: 'REDUX_DEVTOOLS',
  forceReinstall: true,
  undefined: [ { name: 'REDUX_DEVTOOLS', forceReinstall: true } ]
}
18:54:43.011 [update] info: Found version 3.17.0 (url: Opentrons-v3.17.0-win-b15169.exe)
18:54:43.016 [renderer] warn: App update available on load, redirecting to app update.
18:54:43.078 [update] info: Checking for update
18:54:43.124 [update] info: Found version 3.17.0 (url: Opentrons-v3.17.0-win-b15169.exe)

Steps to reproduce

Install 3.17.1-alpha.1 on a windows machine
Start the app
Plug in the Realtek USB-ethernet adapter
Observe the logs

Expected behavior

The USB-ethernet adapter should connect without any errors, and the driver information should be available

Still in the process of inspecting the build, but all signs point to this being another instance of the electron-builder library pulling in the wrong version of a dependency - in this case, execa, which we pulled in to read the USB-to-Ethernet driver version via PowerShell
If this is the case, we have a few options ordered by complexity:

Drop execa and rely on the built-in Node.js child process library that execa wraps in a (much) nicer interface
Somehow isolate the app production build in CI
Enable full bundling in the app-shell's webpack config

Currently, it's only bundling source while leaving node_modules unbundled
Certain dependencies have no responded well to being bundled in the past, which is why the current configuration is what it is

None of those options (except for maybe no. 3) feel particularly long term nor do they feel like they address the root of the problem. I'll be ruminating on longer term stuff after I've inspected the production app bundle on Windows and confirmed the problem

More full audit of a production build I just did on my mac:

dependency
spec
actual
status

@thi.ng/paths
^1.6.5
1.6.5
ok

ajv
^6.10.2
6.10.0
wrong

dateformat
^3.0.3
3.0.3
ok

electron-context-menu
^0.15.1
0.15.1
ok

electron-debug
^3.0.1
3.0.1
ok

electron-devtools-installer
^2.2.4
2.2.4
ok

electron-dl
^1.14.0
1.14.0
ok

electron-store
^4.0.0
4.0.0
ok

electron-updater
^4.1.2
4.1.2
ok

execa
^4.0.0
0.7.0
wrong

form-data
^2.5.0
2.5.0
ok

fs-extra
^6.0.1
8.1.0
wrong

get-stream
^5.1.0
3.0.0
wrong

merge-options
^1.0.1
1.0.1
ok

node-fetch
^2.6.0
1.7.3
wrong

node-stream-zip
^1.8.2
1.8.2
ok

pump
^3.0.0
3.0.0
ok

semver
^5.5.0
5.5.0
ok

tempy
^0.3.0
0.3.0
ok

usb-detection
^4.9.0
4.9.0
ok

uuid
^3.2.1
3.3.3
ok

winston
^3.1.0
3.2.1
ok

yargs-parser
^10.0.0
10.1.0
ok

The situation is, in a word, bad. I think this pushes me towards option (2) in my above comment


can't keep button in same position in different resolutions

I had same issue with this guy link
I also try change background display mode fill to stretch or none,didn't work anyway.
Then i saw you said can change button in different position with more json such as mainmenu_auto/large.json etc to self-adaption any resolution(in the comments and gui-scale).
But sadly not working.So....is there any way make this mod can use percentage value or designation
resolutions to confirm button position?
Here is my json:pastebin.Coding with GB2312(simplified chinese)
This is the result of the configuration:
Default resolution(looks good)
imgur
1080p Full screen window or Full screen(bad)
imgur
I‘m hope your help to solve my problem,thank you!
Poor English,please forgive me.

That's what the alignment property on stuff is for, it basically defines what position on the screen objects are attached to. For your example you probably wanna use "bottom_center" for the buttons.

@lumien231
Thank you so much. After used your alignment method, those buttons stay on the bottom of the window.
May I ask you one more thing, how to make those buttons lay across the entire window on the bottom instead of leave some spaces on both side?
Should I create multiple json files to adapt different resolutions?


[Feature Request] autounattend to upgrade from Win10 to Win11

With Microsoft dropping support for Win10 would be great if a version of the xml could be made to upgrade to Win11, cleaning up the OS while keeping most of the old OS data.

I have some people testing this and working on it.
If you want you can follow this thread - https://discord.com/channels/1192038830245679177/1256006844300660800/threads/1260584790340407436

Hey! I can't see the thread because I'm not on the server, can you provide the link to it?

Sorry about that.
https://www.discord.gg/zWGANV8QAX

With Microsoft dropping support for Win10 would be great if a version of the xml could be made to upgrade to Win11, cleaning up the OS while keeping most of the old OS data.

ps: if u really need win10, just use iot ltsc, 2032 is support expiration date

After some more consideration and research on this topic, I'm closing this issue.
Answer files are to be used on fresh Windows installs and won't work the same way during an upgrade. To get the same effect on an already existing Windows installation, you will have to manually "debloat" or "tweak" Windows.
I created a video on the Chris Titus Windows Utility which might be useful for someone coming across this issue again. https://youtu.be/pldFPTnOCGM


cursor jumps to the bottom

Issue Type: Bug
im coding in golang.
my cursor jumps to the page bottom everytime after I save the code with 'command+S'
'format when save' is on
this problem exists in a history version, and this version. it makes me very unhappy
VS Code version: Code 1.22.1 (950b8b0d37a9b7061b6f0d291837ccc4015f5ecd, 2018-04-06T00:21:13.607Z)
OS version: Darwin x64 17.3.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz (8 x 2500)

Load (avg)
3, 3, 3

Memory (System)
16.00GB (2.37GB free)

Process Argv
/Applications/Visual Studio Code.app/Contents/MacOS/Electron

Screen Reader
no

VM
0%

Extensions (11)

Extension
Author (truncated)
Version

beautify
Hoo
1.3.0

solidity
Jua
0.0.37

solidity-extended
bea
3.0.2

better-toml
bun
0.3.2

Go
luk
0.6.78

mssql
ms-
1.3.0

python
ms-
2018.3.1

rust
rus
0.4.1

RustyCode
sav
0.19.1

JavaScriptSnippets
xab
1.5.0

vscode-proto3
zxh
0.1.3

(3 theme extensions excluded)

I think duplicate of #47382


APKAM - OTP design discussion and changes in implementation

Is your feature request related to a problem? Please describe.

Image source : Diagram source : https://www.protectimus.com/blog/totp-algorithm-explained/
Step 1: TOTP is setup between an already enrolled app(e.g wavi) and secondary server.
Q: shared secret for totp. Should this be stored as self key which gets synced to server?
Step 2: Apkam enrollment steps (sequence diagram below)
Q: when a person has access to apps like wavi/buzz etc., looking up TOTP and entering in another app is straightforward.
In IoT scenario how do we accomplish this? E.g what if enrolled client and to be enrolled client both are remote devices.

Describe the solution you'd like
Options suggested by @gkc
I'm not sure we need a totp necessarily. I'd thought of the sequence something like this …

Approver app (Wavi in this example) is asked for a PIN. It issues a verb command to the server like otp:generate:ttl:60 to generate a PIN which will be valid for 60 seconds

The server
creates a random 4-character alphanumeric pin
stores it as a private key along with its expiry time
And for housekeeping, schedules a future to run at the expiry time to delete the PIN again
Also for housekeeping, server upon startup should also scan through any existing PINs and delete any which have expired
returns the PIN to the Approver app

Approver app displays the PIN in some way to the user

User enters PIN into Enrolling app (Buzz in this example)

Buzz sends enroll request, which includes the PIN, to the server

Server scans PINs in the keystore and checks that there is a valid (unexpired) match. If so then it accepts the enrollment request.

Enrollment request (including the PIN used) is notified to the Approver app.

The Approver app checks that the PIN is the one it displayed. If it is, then
if it is interactive it displays the approve / reject dialog to the user
if it is not interactive then it can automatically approve because the PIN matches

If we decide we need a TOTP then as usual we will need two copies - in this case one for the client (a self key which can be synced) and one for the server (encrypted with the server’s public signing key)

implementation not started in PR66. carrying over.

implementation not started in PR66. carrying over.

Will be implemented in PR68

Spent 3 SP in PR-68. The changes are available in change_otp_impl

Spent 5 SP in PR-69:
Identified failures in scan_verb_test.dart. Fixed the issue and also refactored the scan_verb_handler.dart in the following PR: https://github.com/atsign-foundation/at_server/pull/1529.
Renamed the TOTP to OTP in at_commons, at_server_spec and at_secondary_server and published at_commons-3.0.54 and at_server_spec - 3.0.14. The changes in at_secondary_server are merged to trunk.

The changes are released into canary in v3.0.35a. Closing this issue.


Mirror works in editor but not in exports

Godot version
v4.0.beta16.official [518b9e580]
System information
Artix Linux 6.1.1-zen1-1-zen Plasma 5.26.4
Issue description
Mirror works in editor but not in Windows nor Linux exports, no error messages
Steps to reproduce
Download mrp and export to a platform
Minimal reproduction project
mrp-g4-mirror.zip

Can you please provide more information? Right now this looks more like a request for someone to debug your project than an actual bug report

Can you please provide more information?

Mirror worked in exports in Godot 3.5.1
Also tested the exported project on a Win10 machine, Wine, and a Linux export
The mirror works as should in editor, but exported acts as a broken texture or glitched

Actually, now that texture on the mirror I realize that it's from my other project I loaded recently. But I didn't use it on this project, could it be a bad memory reference?
Also should I post here my other issue? The mirror at certain angles causes LOD to decimate the mesh in the mirrors camera on the texture for the mesh, but it isn't visible on this mrp


Codegen might not know when to yield

here is an especially tricky case that our current codegen scheme doesn't account for:
f x : Ref Int -> Ref Int -> Int =
  wait x -- could be anything side-effectful
  fun y
    deref x + deref y

g x y : Ref Int -> Ref Int -> Int =
  deref x * deref y

p f g a : (Ref Int -> Ref Int -> Int) -> (Ref Int -> Ref Int -> Int) -> Ref Int -> _ =
  par
    f a -- needs yield
    g a -- needn't yield

q =
  let a = new 1
  after sec 2, a <- 3
  p f g a

The problem is we need to figure out when we need to do a yield (i.e., act->pc = CTR; return; case CTR: ...). We need to yield when we call another function so that the scheduler can switch us to that other execution context. This is both the case for regular (sequential) function applications and parallel function applications (as illustrated in the example above).
The way we currently handle a par statement is that we assume all operands are full function applications. (We similarly assume all sequential function calls end up fully-applied.) Then we always insert a yield point after such function calls.
However, this does not account for partial function applications. In the above example, f is a function that, when partially-applied, does something side-effectful; g is just a regular function. Thus, the caller should yield after applying the former, but not the latter. However, which is which cannot be distinguished at compile-time (the problem is we currently assume it can be): the function p cannot actually distinguish at compile-time whether the two closures given as its arguments require a yield after applying the first argument. We know as programmers because we can see that q calls p with f and g, but this is undecidable in general (e.g., q may decide to flip f and g dependent on some undecidable condition).
This is not yet a problem for our current compiler since our runtime just doesn't even support closures at all, but once it does, we will need to adapt codegen with this consideration in mind.

Note that my current work with @hmontero1205  on runtime closure support is already moving toward the right direction to support figuring this out at runtime. In particular, we are already recording both the arg count---how many arguments have currently been applied, and the arg cap---when we should yield when this number of arguments are applied. Apply would look something like, in some kind of pseudo-code:
apply(ret, f, a):
  if not f.is_unique: # f is shared, so we need to clone it
    f = clone(f)
  f.push_arg(a)
  if f.arg_count == f.arg_cap:
    # needs to yield
    activate(f.enter, f.argv, ret, parent, prio, depth) # increments parent.num_children
  else:
    # no need to yield
    ret = f

The caller can then figure out when it needs to yield by checking whether parent.num_children is non-zero.
@LeoQiao18  also already cautioned that when we determine the arg cap for a new closure, we should not get that number from the type. Instead, we need to actually look at the number of top-level arguments in the IR.

Closed a while ago


Add formatting for StmtMatch and MatchCase

Summary

Test Plan

Current dependencies on/for this PR:

main

PR #6286   👈

This comment was auto-generated by Graphite.