Transcoder gives 404 on /video(/:/transcode)

I've installed the transcoder, and I can see the status page on transcoder.domain.com where it says "Congrats! The UnicornTranscoder is correctly launched!"
But when I start a video in Plex, the console fills with errors.
Failed to load resource: the server responded with a status of 404 () - https://transcode.domain.com/video/:/transcode/universal/session/nkg1u8ouipdt0491lfqqc8hh/0/39.m4s
The server log is getting flooded with:
[Transcode] Transcoder segment range: 0 - 1 (1)
[Transcode] Transcoder segment range: 0 - 2(2)
[Transcode] Transcoder segment range: 0 - 3 (3)
[Transcode] Transcoder segment range: 0 - 4 (4)
[Transcode] Transcoder segment range: 0 - 5 (5)
etc...

The transcoder is also registered at plex.domain.com/api/stats, which give the following:
{
    "https://transcoder.domain.com": {
        "name": "https:///transcoder.domain.com",
        "sessions": [],
        "settings": {
            "maxSessions": 10,
            "maxDownloads": 10,
            "maxTranscodes": 10
        },
    "url": "https://loadbalancer.domain.com",
    "time":<PHONE_NUMBER>,
    "score": 0
    }
}

Logging the transcoder container shows nothing other than the startup information:
[cont-init.d] 01-install-transcoder: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

><EMAIL_ADDRESS>start /opt/UnicornTranscoder
> node ./bin/www

Did I miss something in my setup here?
Thank you in advance!

In addition:
start.mpd? on the loadbalancer redirects with a 307(?) to the transcoder.
Then after a second or then I get trascoder.domain.com /video/:/transcode/universal/start.mpd? - 200 OK back from the transcoder and all requests like https://transcoder.domain.com/video/:/transcode/universal/session/tufjpsrho53lc8fts4bodsuo/0/0.m4s start to fail.

In the network target of your browser can you get the link of the 404 request and open it in a new target, it will display somenthing "callback xxx", il will help us to debug. In general it's a misconfiguration and the transcoder can't start or it don't have access to files. Did you ran a "npm run install" in the transcoder folder ?

In the network target of your browser can you get the link of the 404 request and open it in a new target, it will display somenthing "callback xxx", il will help us to debug.

When I open any of the failed requests, it just gives me Cannot GET /video/:/transcode/universal/session/aqmryo9vpxryzjsv0fx4dke2/1/0.m4s.

In general it's a misconfiguration and the transcoder can't start or it don't have access to files.

Which files should these be? I mounted the media folder at the same path that Plex has it's media mounted. So within the containers they both access files via /media(/movies-/shows).

Did you ran a "npm run install" in the transcoder folder ?

I'm using the magn2o/unicorn-transcoder image, since everything is starting and codecs are also being installed at launch, I assume everything is working correctly? I have it started with the debug option, but after starting no debug information is showing.
Env;

PLEX_BUILD="<IP_ADDRESS>56-85f0adf5b"
SERVER_PORT="3000" (the instance address reverse proxies to this port)
LOADBALANCER_ADDRESS="https://loadbalancer.domain.com"
INSTANCE_ADDRESS="https://transcoder.domain.com:443"
PLEX_TOKEN="${PLEX_TOKEN}"

When I start playing something in Plex, it loads forever and I can see in /api/stats that a session has started on the transcoder with the status DONE immediately, even though the player is still trying to connect.
When I check the transcoder, I see;
Current transcodes     | 0
Current sessions       | 1
Current downloads      | 0

So the session reaches the transcoder? But it simply isn't starting.

So 1 step further, I've been changing the URLs in routes.js to accomodate the incoming requests and now I get either;
Callback -1

or
Error: ENOENT: no such file or directory, stat '/opt/UnicornTranscoder/cache/{removed_session_id}/chunk-stream1-00001.m4s'

When doing a request. So I indeed believe that it can't reach the files, I can see in the cache directory that the session folder is being created. How can I check where the Transcoder is looking for the video files?

Fixed :)


Revert NEP-3 and NEP-6

The revert should be in master-2x, isn't it?

No. I have removed the master-2.x branch.


Remove make_ prefix for executor properties

Fixes #5345, relies on #5341

flyby: improve generated (compiler) error messages in case a property is not supported but required.

The annotation_property test actually seems to have failed here as well on CircleCI: https://app.circleci.com/pipelines/github/STEllAR-GROUP/hpx/7672/workflows/4a271390-0963-4d10-9754-167f765c8987/jobs/251176, so it may in fact be deterministic. Not sure what could be going wrong though.

The annotation_property test succeeds now. I think this is good to go.


UI Design Enhancements and Improvements

Summary of Changes:

Enhanced Login Page with a gradient background for a modern look.
Updated Login Form and Forgot Password Form UI.
Improved Dashboard Index layout and structure.
Refined Data Table UI:

Added visible table borders.
Increased contrast in the table header for better readability.

Replaced ID column with SL (Serial) in data tables for more intuitive content numbering.
Updated AppPaginator component to display clearer pagination info, e.g., "Showing 1 to 10 items out of 50 items."
Enhanced the Create button by adding a remix plus icon, making it more visually relevant.
Made Page Header and Section Header dynamic:

On resource/create, the title automatically sets to "Create Resource."
On resource/edit, the title changes to "Edit Resource."
On /resource, the title is set to "Resources."

These updates contribute to a more cohesive and user-friendly interface throughout the application.
Translations for Bangla (Bn) added.

Login Page -

Dashboard -

Datatable -

Create Button-

Dynamic Page and Section title -

Hi Mehedi, thank you for your time on this Pull Request. Here are some considerations regarding the suggested changes:

Enhanced Login Page with a gradient background for a modern look
At the moment, we will keep a more neutral approach (white/gray). This ensures that if the user updates the brand/logo, it’s ready to go. In the future, as the project evolves, it can include themes, etc.

Updated Login Form and Forgot Password Form UI
Login form:
OK.
Forgot Password Form:
Please keep the original subtitle text that was removed. It can help inexperienced users understand the flow.

Improved Dashboard Index layout and structure
OK.

Refined Data Table UI
Added visible table borders
OK.
Increased contrast in the table header for better readability:
OK.

Replaced ID column with SL (Serial) in data tables for more intuitive content numbering:
During the development cycle, the ID can be used as a quick visual reference for the entities directly in the interface. This is the main reason for the column, which can probably be removed at a later stage of implementation.

Updated AppPaginator component to display clearer pagination info, e.g., “Showing 1 to 10 items out of 50 items.”
OK, perfect.

_ Enhanced the Create button by adding a remix plus icon, making it more visually relevant_
OK.

Made Page Header and Section Header dynamic
On resource/create, the title automatically sets to “Create Resource.”
On resource/edit, the title changes to “Edit Resource.”
On /resource, the title is set to “Resources.”
At each title change, there’s intermediate text showing in the title: “Modular - Laravel.” We have a smooth transition in the interfaces with a truncated change in title. I recommend merging this change only with a stable change in title values.

Thank you very much for your time and effort on this Pull Request, and please consider the comments above...
For future Pull Requests, splitting the changes in dedicated/focused subjects/Pull Requests will be easier/faster to be reviewed, like:

Updated Login Form and Forgot Password Form UI (Pull Request)
Data Grid Updates (Pull Request)
Dynamic titles (Pull Request)

Thanks!

Updated according to the Recommendations. Please review and accept the PR.


Support multiple basic_auth statements in caddy2

https://github.com/caddyserver/forwardproxy/blob/8d6f47b4c4f3bdbecba34d9f65c8c5629ca0a5b3/forwardproxy.go#L729-L732
Multiple basic_auth statements are not supported because it was not clear what json structure you wanted for doing it @mholt.
Some users are complaining https://github.com/klzgrad/naiveproxy/issues/137.

Sure, that's something that can be added I'm pretty sure.

Hi @mholt, can you choose one json format for multiple basicauths from below so I can start making a PR?

"basicauths": [
  {"user": "me", "password": "hunter"}
]

"users": ["me"],
"passwords": ["hunter"],

"basicauths": [
  ["me", "hunter"]
]

One more choice for your reference:
In traefik, users can configure multiple basicauths in a list. Below is an example of toml format used in traefik.
# Declaring the user list
[http.middlewares]
  [http.middlewares.test-auth.basicAuth]
    users = [
      "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
      "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
    ]

I don't know implementation details but would be nice to use hashed passwords in conf, which is safe to expose in a plain text.
Thanks.

Thanks for helping with this!
Before we go too far on this, I am quickly skimming the code and realizing that I only brought over the basicauth functionality to get the tests to pass temporarily. Caddy 2 already has a very flexible and capable authentication module that supports basicauth: https://caddyserver.com/docs/modules/http.authentication.providers.http_basic
Ideally we wouldn't have any authentication logic in this proxy module at all, since it exists in that module. However, if it's necessary for probe resistance, then at least we should look into simply embedding that module into this one, rather than re-implementing it.
For an example of this, Caddy's reverse_proxy module embeds the headers module which manipulates request/response headers: https://github.com/caddyserver/caddy/blob/385adf5d878939c381c7f73c771771d34523a1a7/modules/caddyhttp/reverseproxy/reverseproxy.go#L91
What do you think about that? Should be easier and faster right?

Forward proxy in Caddy1 implements its own basicauth to try to avoid side channel attacks with this
https://github.com/caddyserver/forwardproxy/blob/247c0bafaabd39e17ecf82c2c957c46957c2efcc/forwardproxy.go#L177-L182
I'll have to remove this constant time compare if I'm to do it with the authentication module. This mitigation is only theoretical but there are real people waiting to use this feature.

Any update for this?

Any update on this?

Maybe one more choice for your reference:
In traefik, users can configure multiple basicauths in a list. Below is an example of toml format used in traefik.
# Declaring the user list
[http.middlewares]
  [http.middlewares.test-auth.basicAuth]
    users = [
      "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
      "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
    ]

I don't know implementation details but would be nice to use hashed passwords in conf, which is safe to expose in a plain text.
Thanks.

but what if someone want use : in his password...

Fixed after https://github.com/caddyserver/forwardproxy/pull/74


<EMAIL_ADDRESS>has itself type files, drop @type/cheerio dependency please

ref<EMAIL_ADDRESS>I can make a PR if possible.

They don't seem to be usable.
I don't see types for cheerio elements, such as Element and TagElement defined in @types/cheerio.
Then function itself, which has type Cheerio in types, is a mixin in that file, I'm not sure what <T> is supposed to be there.

I used<EMAIL_ADDRESS>in my project, after I install @iconify/tools. My written script encounter ts error, because my scripts depends on<EMAIL_ADDRESS>types, but ts load types from @types/cheerio.

I don't see types for cheerio elements, such as Element and TagElement defined in @types/cheerio.
Then function itself, which has type Cheerio in types, is a mixin in that file, I'm not sure what  is supposed to be there.

I will try to test it recently.

What error message are you getting?

Failed to compile.

../path/to/heading-elements.ts:20:34
Type error: Property 'tagName' does not exist on type 'Element'.
  Property 'tagName' does not exist on type 'TextElement'.

  18 |         const text = $(item).text()?.trim()
  19 |         if (typeof text === 'string' && !text) {
> 20 |           messages.push(`<${item.tagName.toLowerCase()}> textContent is empty`)
     |                                  ^
  21 |         }
  22 |
  23 |         if (index === 0 && item.tagName.toLowerCase() !== 'h1') {

With this error, I have to use ignoreBuildErrors of Next.js.

Oh, that's a different problem. Type should be TagElement. Probably an error in tools.

I've checked code in tools, it correctly uses TagElement.
If item in code above is not returned by tools, but is retrieved in other way, error is correct. item can be tag, text or comment, but tagName exists only on tag. So you need to check if item.type === 'tag'

@cyberalien After investigation and try, I create a PR #36 for this, It passed the build:tools and test:tools scripts.

Thanks!

@cyberalien Is there any plan to release it?

Sure, but pull request is marked as draft. Is it ready?

Sure, but pull request is marked as draft. Is it ready?

I was waiting for you code review before, if no more comments, it's ready now 😂


polish graph rendering and viewport controls

Support multiple Web Audio contexts
Render ports on nodes
Smooth edge lines
Draw edge lines between the ports the edge connects
Add a loading screen until the panel's script is ready
Add button that fits the graph to the viewport
Zoom viewport around the mouse cursor
Add viewport margin
Constrain viewport panning when zoomed within the graph bounds
Remove unused files

Multiple Web Audio Contexts
Collect web audio graph data in the devtools script for when the panel is opened and connects. On the panel the initial set of current graphs and updates is collected. One of those current graphs can be selected with the GraphSelector instance and it will passed on to the worker for layout and back to the panel for rendering. As one graph is rendered at any time, one instance of the rendering logic and state is reused with each graph, whichever one is currently selected. To the rendering logic receiving a graph for a web audio graph other than what it last displayed is the same as the previous graph destroying all of its nodes and making brand new ones.

@mzgoddard Friendly ping. If this is ready, please go ahead and merge it.

I tested the local build (bocoup-style branch) and it works fine. However, there's a notification bar up top ("...debugging this browser") and it won't close. Is there anything we can do?

@mzgoddard I believe this PR contains your demo in our meeting on 8/19. Right?

Yes. It has everything that was in that demo.

@mzgoddard Friendly ping. If this is ready, please go ahead and merge it.

Will do.

I tested the local build (bocoup-style branch) and it works fine. However, there's a notification bar up top ("...debugging this browser") and it won't close. Is there anything we can do?

I checked a few things. Its not obvious to me how to close it without disabling the extension. The bar has a Cancel and x close button. Both buttons when clicked, detach the extension. I checked runtime.lastError and it doesn't indicate why the detach is happening. Currently there is an event listener on detach that immediately reattaches. If I recall we can't remove that, it's part of how the extension gets a full graph when the tab is reloaded. As well if we did, the extension would not receive further WebAudio debugger events.
I think a quick incomplete solution would be to move WebAudioEventObserver and WebAudioGraphIntegrator from the devtools script and into the panel script. This would start the debugger when the Web Audio panel is opened. Which would cause that banner to appear. But only when the Web Audio panel is intentionally being used by the user. Maybe the panel should be renamed to Audion to help draw that relationship.
I think a more complete solution may be adding user settings that lets the user specify if they want it to attach to the debugger when devtools is opened or the panel is opened. And if it should reattach automatically when the panel is inactive.
As well there could be some solution in the extension manifest or api that I am unaware of.


WIP: Don't include the firmware in every app

Part two of the quest for PIC...
This probably needs a lot of testing. Known issues:

If you don't call set_screen_mode in init, you don't get a screen.
"Exit Game" is mostly broken (it does return to the file list, but with whatever screen mode the app set and the app's sound still going)
The memory allocations probably need adjusting (.data is in the same place with hacks)
Timers are broken

EDIT: Timers

https://github.com/pimoroni/32blit-beta/pull/269/commits/7ca49a3263747b454fdee6c10e9a3526903ad76a / https://github.com/pimoroni/32blit-beta/pull/269/commits/04b0e7321352c4ac332878b04fe818de54841cb2 get timers working, but seem a bit messy...

Default screen mode is back, exit works and the examples seem to work.

The Windows builds failed... because Travis didn't run them on Windows? :confused:

Part two of the quest for PIC...
This probably needs a lot of testing. Known issues:

~If you don't call set_screen_mode in init, you don't get a screen.~
~"Exit Game" is mostly broken (it does return to the file list, but with whatever screen mode the app set and the app's sound still going)~
The memory allocations might need adjusting (user code is similar to before, firmware heap/bss is in ITCMRAM)
~Timers are broken~

Put heap/bss in ITCMRAM may not a right place. It's only for fast code in ram and ARM don't suggested you to put other stuff into it.

Hmm, that makes sense. I think that part came from @Gadgetoid's original patch.

Just fixed the "currently running from" and reset commands so that the tool doesn't attempt to write ext flahs while running from it... Interestingly, saving bins to SD worked in the background.

(A few more rebases later...)
So, this is at the point where everything seems to work (I've been running it for a while now). Not sure if there's anything left that needs tidying up?

We've got a tag and release for a previous stable build, so we should be able to merge this and go onwards and upwards!

A momentus occasion!
Thanks for all your work on this monster of a change, it's a heck of an improvement in more ways than I could list.


Be able to set an initial position for the terminal

Environment
Windows build number: Microsoft Windows [Version 10.0.18362.86]
Windows Terminal version (if applicable): commit bbbd3e0323a82548416f40ddba

Steps to reproduce

Start Windows Terminal
Move the Windows Terminal window
Close Windows Terminal
Start Windows Terminal

Expected behavior
Window position is restored to were it was in step 3 above.
Actual behavior
Window is opened at a default location.

What if you have more than one window?

@DHowett-MSFT Good question and I realize my expectations what somewhat flawed. Currently the Windows Terminal window is opened so that half the terminal is outside of my screen bounds (I've changed the initialRows and initialCols)
When I think about it, I would want a way of setting the default window position somehow (like I can with the old fashion terminal).

There's already #766, which deals with restoring general state from the previous session. I'd say much of this issue fits under that umbrella, save for:

I would want a way of setting the default window position somehow (like I can with the old fashion terminal).

Shockingly, I don't think we have an issue tracking that particular feature request quite yet. This is now the thread tracking that feature request.

Personally, I prefer even having multiple instances being restored to the very same pixel position and size rather than stacking them pseudo-randomly over my desktop.
Tastes are different, so why not add an option like:
{
    "windowRestoreMode": "lastPositionAndSize"
}

With windowRestoreMode being an enum of values like:

none — Do nothing, let Windows place automatically.
lastPositionAndSize — Restore pixel-perfect both in position and size, no matter whether docked before (just like I described in #1420)
Possibly more modes…

Personally, I prefer even having multiple instances being restored to the very same pixel position and size rather than stacking them pseudo-randomly over my desktop.
Tastes are different, so why not add an option like:
{
    "windowRestoreMode": "lastPositionAndSize"
}

With windowRestoreMode being an enum of values like:

none — Do nothing, let Windows place automatically.
lastPositionAndSize — Restore pixel-perfect both in position and size, no matter whether docked before (just like I described in #1420)
Possibly more modes…

"Possibly more modes" should also include a predefined position on screen in pixels, imho.

Sounds very good, @lllopo.
For your defindedPositionAndSize mode, one could enhance this like e.g.:
{
    "windowRestoreMode": "definedPositionAndSize",
    "windowPos":
    {
        "x": 100,
        "y": 120,
        "width": 400,
        "height": 800
    }
}

One could even enhance this for multiple intances of Terminal to each use another set of positions/sizes like:
{
    "windowRestoreMode": "definedPositionAndSize",
    "windowPos":
    [
        {
            "isDefault": true,
            "x": 100,
            "y": 120,
            "width": 400,
            "height": 800
        },
        {
            "x": 500,
            "y": 120,
            "width": 400,
            "height": 800
        },
        {
            "x": 900,
            "y": 120,
            "width": 400,
            "height": 800
        }
    ]
}

Just one more discovery:
Visual Studio Code starts the first instance pixel-perfect as it was closed before. When starting a second instance, it starts it as some default position and size.
Not as advanced as my suggestion, but way better than Termin doing now.

What if you have more than one window?

More than one window is great in multiple monitor arrangements and I'd still like to have control over where they open and the their size. For multiple terminals on one display I'd prefer to have a tab feature in one window or use WTs splitPane function rather than individual windows.

this is still an issue in the present released version.

@escalonn This feature was merged two years ago, can you file a new issue to track whatever you're seeing? Please make sure to include your settings.json, your Terminal version, etc.
There's also #766 which merged into 1.12, which will restore the window positions automatically, which is part of what this thread was discussion originally.

For me, it is still not working pixel-perfect, too, when being docked to either side of the screen.
I gave up, bought DisplayFusion Pro and created a trigger therein to position the Terminal window correctly after it start.

@zadjii-msft I think you should lock this issue.


baRSS menu bar news reader

Project URL
https://github.com/relikd/barss
Category
news, menubar, utilities
Description
RSS & Atom feed reader that lives in the system status bar.

Why it should be included to Awesome macOS open source applications  (optional)
Checklist

[x] Edit applications.json instead of README.md.
[x] Only one project/change is in this pull request
[x] Screenshots(s) added if any
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 4 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

1505
404
https://raw.githubusercontent.com/MitMaro/git-interactive-rebase-tool/master/docs/assets/images/git-interactive-rebase-demo.gif

1877
301
https://github.com/ralcr/Localizable.strings redirects tohttps://github.com/cristibaluta/Localizable.strings

4965
404
https://raw.githubusercontent.com/PDF-Archiver/PDF-Archiver/master/assets/example.gif

7566
301
http://cogx.org/ redirects tohttps://cogx.org/

  Generated by :no_entry_sign: Danger

@relikd Thank you! 👍


PR: Remove internal copy of our docs

Our docs were moved to its own repo: https://github.com/spyder-ide/spyder-docs
This PR also points out the menu
Help > Spyder documentation

to the online version of our docs.

Hello @ccordoba12! Thanks for submitting the PR.

In the file spyder/app/mainwindow.py, following are the PEP8 issues :

Line 143:1: E402 module level import not at top of file


[Enhance] support pixel unshuffle

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Introduce torch.jit.script decorating to support dynamic shapes for model exporting.
Modification
Please briefly describe what modification is made in this PR.
Who can help? @ them here!
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist
Before PR:

[ ] I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
[ ] Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
[ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
[ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
[ ] The documentation has been modified accordingly, including docstring or example tutorials.

After PR:

[ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects.
[ ] CLA has been signed and all committers have signed the CLA in this PR.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


AOE workbook entries other than Resource Inventory throw "failed to resolve scalar expression"

🐛 Problem
After deploying Azure Optimization Engine via the steps described at https://microsoft.github.io/finops-toolkit/optimization-engine#-deployment-instructions and waiting a few days, all the AOE workbook entries are displaying an error: 'where' operator: Failed to resolve scalar expression named 'MeterSubCategory_s'....  I can only view the contents of Resource Inventory.
👣 Repro steps

Configure resources to send all diagnostic logs to a Log Analytics workspace
Deploy Azure Optimization engine to the same Log Analytics workspace
Wait 24 hours
Go to the same LA workspace -> Workbooks -> click on Costs Growing, Block Blob Storage Usage, or other workbooks
Receive errors

🤔 Expected
The workbook displays any info related to its purpose
📷 Screenshots

ℹ Additional context
🙋♀ Ask for the community
We could use your help:

Please vote this issue up (👍) to prioritize it.
Leave comments to help us solidify the vision.

Thanks for reporting this issue, @MohnJadden.
First, what type of Azure subscription did you deploy AOE against? EA? MCA? Other?
The errors you describe can only be attributable to issues in the Azure consumption (billing) ingestion pipeline. Can you please check whether the Export-ConsumptionToBlobStorage Azure Automation runbook is completing successfully? If not, can you check what is the Exception message? If they complete successfully, can you check the job logs and share here the (anonymized) output?

We're an MCA.  The runbook is showing that it's completed successfully.
Log output is below - looks like it's successful:
`7/17/2024, 2:18:41 PM - Output: Consumption Scope not specified, defaulting to Subscription
7/17/2024, 2:18:42 PM - Output: Logging in to Azure with ManagedIdentity...
7/17/2024, 2:18:45 PM - Output:
Environments                                                                                Context

{[AzureChinaCloud, AzureChinaCloud], [AzureCloud, AzureCloud], [AzureUSGovernment, AzureUSGovernment]} Microsoft.Azur...
7/17/2024, 2:18:45 PM - Output: Getting Storage Account context with login
7/17/2024, 2:18:46 PM - Output:
Name               : SubscriptionName (SubscriptionGUID) - TenantGUID -
MSINumber
Account            : MSINumber
Environment        : AzureCloud
Subscription       : SubscriptionGUID
Tenant             : TenantGUID
TokenCache         :
VersionProfile     :
ExtendedProperties : {}
7/17/2024, 2:18:46 PM - Output: Exporting consumption data from 2024-07-14 to 2024-07-14 for 1 subscriptions...
7/17/2024, 2:18:47 PM - Output: Starting consumption export process from 2024-07-14 to 2024-07-14 for subscription SubscriptionName...
7/17/2024, 2:20:39 PM - Output: Generated 1454 entries...
7/17/2024, 2:20:40 PM - Output: Uploading CSV to Storage
7/17/2024, 2:21:03 PM - Output:
ICloudBlob                         : Microsoft.Azure.Storage.Blob.CloudBlockBlob
BlobType                           : BlockBlob
Length                             : 1226523
IsDeleted                          : False
BlobClient                         : Azure.Storage.Blobs.BlobClient
BlobBaseClient                     : Azure.Storage.Blobs.Specialized.BlockBlobClient
BlobProperties                     : Azure.Storage.Blobs.Models.BlobProperties
RemainingDaysBeforePermanentDelete :
ContentType                        : text/csv
LastModified                       : 7/17/2024 6:21:02 PM +00:00
SnapshotTime                       :
ContinuationToken                  :
VersionId                          :
IsLatestVersion                    :
AccessTier                         : Cool
TagCount                           : 0
Tags                               :
ListBlobProperties                 :
Context                            : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
Name                               : 2024-07-14-SubscriptionGUID-AmortizedCost.csv
7/17/2024, 2:21:03 PM - Output: [2024-07-17T18:21:03.166Z] Uploaded 2024-07-14-SubscriptionGUID-AmortizedCost.csv to Blob Storage...
7/17/2024, 2:21:03 PM - Output: [2024-07-17T18:21:03.260Z] Removed 2024-07-14-SubscriptionGUID-AmortizedCost.csv from local disk...
`

Can you check what type of MCA is your Azure consumption? Please, run the query below in the AOE Log Analytics workspace and share the value for the QuotaID column:
AzureOptimizationResourceContainersV1_CL
| where ContainerType_s == 'microsoft.resources/subscriptions'
| project SubscriptionName=ContainerName_s, QuotaID=parse_json(ContainerProperties_s).subscriptionPolicies.quotaId

Hi, @MohnJadden.
Assuming the QuotaID for your subscription is PayAsYouGo_2014-09-01, I was able to reproduce your issue. Can you please replace the Export-ConsumptionToBlobStorage automation runbook code with the one available in the tentative fix here and then publish the runbook? This should solve the problem on the next daily export.

Confirmed - that solved the issue and I'm not seeing that error anymore.  Thank you!


Created specs for python 2 packages

Swagger spec update for new feature. Python 2 package support in Azure Automation.
This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[X] The title of the PR is clear and informative.
[X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[X] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[X] If applicable, the PR references the bug/issue that it fixes.
[X] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[X] I have read the contribution guidelines.
[X] My spec meets the review criteria:

[X] The spec conforms to the Swagger 2.0 specification.
[X] The spec follows the guidelines described in the Swagger checklist document.
[X] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-java

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-go

Automation for azure-sdk-for-node

@D1v38om83r has this new API version been reviewed by the ARM team?

@D1v38om83r ping

Can one of the admins verify this patch?

@D1v38om83r ping.

Closing due to inactivity.  Please re-open when ready to engage.


CIO-102

Fixes #102 - Here is the changelog fix. Add the entry for issue #102 and we should be good to go. Thanks!

@jwu910 I did add the 102 entry but seems like your PR about change log did not contain cio-102 within unreleased.
Another thing I noticed is your issue links are broken. 'issue' should be 'issues'


[FormBuilderTypeAhead] Passed parameters are ignored

Some parameters, such as a TextEditingController are listed in the constructor, but never used. This is very confusing and these fields should either be removed or the default value should be overridden. This should be easy to fix, e.g.
Currently (e.g. in FormBuilderTypeAhead):
FormBuilderTypeAhead({
...,
TextEditingController? controller,
});
...
  Widget build() {
    return TypeAhead(
    ...,
    controller: state._typeAheadController, // controller is ignored here!
    ...
    );
  }
)

Fix by overriding field from state if non null value provided:
controller: controller ?? state._typeAheadController,

I haven't looked into other classes, but I assume it's similar there. The "dead" parameters should be identified and either removed or much more preferably used as intended by overriding the defaults. I can help with this, just let me know what you think! :)

Hi!
Feel free to open a PR to fix this
Thanks

The controller is set on State:
The controller is set on State:
  @override
  void initState() {
    super.initState();
    _typeAheadController = widget.controller ??
        TextEditingController(text: _getTextString(initialValue));
    // _typeAheadController.addListener(_handleControllerChanged);
  }


'SubSequence' is not a member type of 'S'

After updating to Xcode 10.2, I'm no longer able to compile my project. I have multiple 'SubSequence' is not a member type of 'S' errors.

Found reason: https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes/swift_5_release_notes_for_xcode_10_2

The Sequence protocol no longer has a SubSequence associated type. Methods on Sequence that previously returned SubSequence now return concrete types.

@mperovic It looks like you are using an older version of ProcedureKit; the initializer for MapProcedure was changed in 2fbbe3fd52e890de04c253d3a8d6d3a9e6b39ccc to utilize SubSequence. This change was shipped in ProcedureKit 5.0.

You're absolutely right. Someone forced 4.5.0 in podfile.
Thanks


[Bug]: Create a MongoDB Atlas serverless cluster using CDK

Is there an existing issue for this?

[X] I have searched the existing issues

CDK package version
v2.110.1
CFN Resource version
v2.110.1
CFN Resource Region
us-east-1
Current Behavior
I am using SST and not directly CDK but this is not related, it looks like the interface of AtlasServerlessBasic i found here: https://constructs.dev/packages/awscdk-resources-mongodbatlas/v/3.1.0/api/AtlasServerlessBasicProps?lang=typescript may have some issues
I get the following error: Template format error: Unrecognized resource types: [MongoDB::Atlas::Project, MongoDB::Atlas::DatabaseUser, MongoDB::Atlas::ProjectIpAccessList, MongoDB::Atlas::ServerlessInstance]
AWS CDK code to reproduce the issue
new AtlasServerlessBasic(this, "Database", {
  projectProps: {
    orgId: "5aba***********",
  },
  serverlessProps: {}
});

Steps To Reproduce

Instantiate a AtlasServerlessBasic Construct with all the required parameters

cdk synth
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @ludoblues 👋 Thanks for opening the issue.
Could you share the versions of the CFN resources that you activated in your AWS account in the region us-east-1? The error message seems to suggest that you did not activate them. You can use the construct atlas-bootstrap to speed up the process of activating the MongoDB Atlas CFN resources in your account.

This is still an issue. I cannot use MongoDB CDK constructs at all.
Error message
Template format error: Unrecognized resource types: [MongoDB::Atlas::NetworkPeering] (Service: AmazonCloudFormation; Status Code: 400; Error Code: ValidationError; Request ID: XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX; Proxy: null)


build: use -isystem rather than -I for C++ headers

The system headers should be given lower priority than the user
specified headers.  This requires that we include the system C++ headers
as -isystem.  Without this, it is not possible to use a custom
toolchain to replace the clang compiler for building the android
runtime.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please smoke test

CC: @drodriguez @lanza

o_O I had forgotten that -isystem went last.

o_O I had forgotten that -isystem went last.

Probably for your own sanity ;-)


persist data source branch in localStorage

Testing Notes

Change branches
Refresh the page
[x] Should still be on the same data branch

It's easy enough to add basic support for a ?branch= param, but I'm a little unsure about some of the sharp edges. I'm assuming that loading a page with ?branch=... should load the data from that branch and persist it (including the source) into localStorage, right? If so, that means that subsequently leaving the site and returning will leave the user on a different branch without them explicitly having switched branches ... are we sure we want that sort of UX?

Is it possible to remember intent here? If you follow a query string to a branch, it's forgotten on the next visit without a query string, but if you choose via dev to change branches it persists?

We can, but I think it's going to be non-trivial. Filed #90 to track that.
Aside: I'm definitely considering anything with a bug label something that needs to be fixed before cut-over. Is there another label we want to use as well? And should it be on this issue, or no? (I'm assuming no?)


stack tab bar indicator on top of tab bar view

stack tab bar indicator on top of tab bar view. Like a carousel

I think I'm gonna make the implementation use only the Stack (instead of current Row/Column) so any positioning will be possible in all cases.


Common chunk core.min.js map file not found

On a fresh install, right after the postinstall build, core.min.js points its source map file to sourceMappingURL=aqua/core.map.js, when it's generated at pages/core.map.js. This is because of the webpack output option sourceMapFilename: '[name].map.js', where name is not the full filename.
There are two quick solutions, changing sourceMapFilename: '[name].map.js' to sourceMapFilename: '[file].map.js', or removing the line entirely, which I believe is the most appropriate option, because the default is [file].map and map files should be .map.
I'm able to open a PR for either option.

Thanks for reporting and for the future PR. Choose the solution you think is best.


Impossible to add [ and  ] on French's canadian keyboard (Windows)

When I press on [ or ] on my keyboard, it doesn't insert the character but close or open functions

This problems is in every Atom's environnement (untitled, .md, sql)
Also, French canadians keyboard use alt + the two buttons following the 'P' on the keyboard

Specs :
Keyboard's layout : French Canadian :

OS : Windows 8
Atom's Version : 0.126.0

What I found that worked for French Canadian keyboard is add in the keymap options these settings:
'.workspace .editor:not(.mini)':
'ctrl-alt-[': 'unset!'
'ctrl-alt-]': 'unset!'


Support for RBAC

It is possible to secure the Kong Enterprise API with RBAC, but it is not possible to run kongfig because there is no way to pass the credentials on.
https://getkong.org/docs/enterprise/0.32-x/setting-up-admin-api-rbac/

If someone gets into this same situation, you can use the  --header option passing the header with the authentication parameter.


Please add this into Porn Blocklists

Hello.  This list I made which is not blocked yet. If you don't mind to add it to your list. Thanks

Note to self: the actual repo URL is https://github.com/LittleCordines/pfsense-hosts-file/.

sorry. i am new to github. how to merge..

@LittleCordines I'm sorry if I was unclear.
Here's the thing.
I can't accept your repo as a source of hosts because you don't have a history of list curation.
Your list is very new.  If you actively maintain your list, adding and removing domains, over several months, then we will consider it.
We're committed to only use well-curated lists, here.
Sensible?

clearly understood


Why a Dedicated Page for PGSQL but not Others?

The OSBA has modules for MySQL, KeyVault, etc etc...why no pages on them but there is a page on PG?

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

ID: 702c42c6-2f4c-6f58-6f7e-09d5d1545705
Version Independent ID: 346b5b91-d9c0-4b13-0897-e8155f476fae
Content: Connect Azure Kubernetes Service (AKS) with Azure Database for PostgreSQL
Content Source: articles/postgresql/concepts-aks.md
Service: postgresql
GitHub Login: @rachel-msft
Microsoft Alias: raagyema

@doodlemania2 The Azure Database for MySQL page has similar documentation: https://docs.microsoft.com/en-us/azure/mysql/concepts-aks.
Please note that for both  Azure Database for PG and MySQL this is mostly a reference to the OSBA home page, which does have documentation on Postgres, MySQL, Key Vault and all other services it is available for. Please give feedback to the OSBA team if you have questions.

@doodlemania2 At the bottom this document: Connecting Azure Kubernetes Service and Azure Database for MySQL Is the link to provide documentation feedback, just as you did with this specific doc issue. By doing so, the issue is routed to the appropriate content team who can address the feedback.
We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion. Regards, Mike


Bump postgis in local tooling

Allow an override to the postgis devcontainer image, and bump default version to 15-3.3.

@fvankrieken Yeah, seems like our images already have v15 postgresql-client installed just via apt-get install?

Oh really? When I last checked it was 14, guess apt has 15 now. Lovely!


Button: poor look if "label" property is omitted

        <Button
          onClick={()=>{}}
          label="my button"
        >

        <Button
          onClick={()=>{}}
        >

Since label should be mandatory, this issue can be solved together with #71

Yes, I totally agree, let's close it as duplicate and use #71 as reference.


CSS Animation Project of File Drawers

I would like to add a project that involves a File Drawer where each drawer can be opened and there is surprise text inside.
I would love to contribute to this open source project for GSSoC '23.

assigned to @5h0ov
Complete this with in 10 days and
Include screenshot or deploy link to assess your project and thereafter include your project to main code with following the contributing.md guidelines

ok sir


[Bug] In JS for call node additional structure getting generated

Describe the bug
Code Snippet:
res.status(400)
for this JS code snippet we are getting graph structure added in screenshots
For above example graph has additional nodes
(<operator>.fieldAccess,res.status)
(IDENTIFIER,res,res.status(400))
(FIELD_IDENTIFIER,status,status)

To Reproduce
Simple import above code in joern.
Expected behavior
Should only create Call node, Identifier node & Liternal node.
Screenshots

If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS:  Mac
Joern Version : 2.0.305
Java version : <IP_ADDRESS>

Additional context
Add any other context about the problem here.

This is expected, the one is the base and the other is the receiver. One can observe a similar structure in Python where the receiver is argIdx=-1 and the "self" variable is argIdx=0.
This is to largely model dynamic languages' approach to importing and dispatching calls, where defined calls are attached to the module as a property, and then that property (method ref) is retrieved and then dispatched.


Usage of JSONString

Hi,
This is a follow up question from [1] related to commit https://github.com/openjson/openjson/commit/d2367f28cebd8f21c4a4e22faec4cab2f8a95982. In sort: what should be the usage of JSONString interface?
The string is the textual representation of the json which serves serialization/deserialization purpose. So #toJSONString helps any bean to render this json string the way the user decides. On deserialization time, JSONObject(String) ctor takes that string in input, and the loop is looped.
Now: what about the JSONObject(Object) ctor, considering the supplied object also implements JSONString?

Should #toJSONString only be used on #toString time?
Or should #toJSONString also be evaluated and serves as input on ctor time?

[1] http://apache-wicket.1842946.n4.nabble.com/VOTE-Release-Apache-Wicket-7-7-0-tp4677714p4677737.html

Anybody?

Could you check v1.0.4 please?

@mfursov 1.0.4 contains my implementation, it differs from org.json behavior
this is why this discussion has been started

Ok, I see now.
@solomax  Is there any reason why we need to handle toJSONString in constructor and be incompatible both with org.json and Android API ?

This is what I'm confused about :(
It seems I have misread the original issue reported ...
I thought toJSONString should be called while constructing objects, since it provides "canonical" JSON representation of the object ....
I can change my commit to call toJSONString from toString, and not to use toJSONString in constructor
Would it be OK?

@solomax I believe this will be the currect solution. Once you commit I can release new version to Maven

@mfursov I just realized I don't know how this can be implemented :(
bean is only available during construction, toString can be called anytime ....
Would appreciate help here

Could you check this commit please:
https://github.com/openjson/openjson/commit/41f4573f6d0979c71ac52fda6d0d1307f647890f

Just have double-checked the code
It will work with put without any changes
The issue only reproducible in case bean is used in the constructor :(
This fix doesn't address it :(

@solomax could you post a test case that will demonstrate the issue, please?

sure:
MyPojo2 myPojo2 = new MyPojo2();
String json2 = new JSONObject(myPojo2).toString();
assertEquals("{\"myProp3\":\"value3\",\"myProp4\":\"value4\",\"myProp5\":\"value5\"}", json2);

toJSONString will never be called ....

Why this is an issue? Org.json also does not call toJSONString for Object constructor.

Actually this was the original issue: http://apache-wicket.1842946.n4.nabble.com/VOTE-Release-Apache-Wicket-7-7-0-tp4677714p4677735.html
This is what I originally try to fix

AFAU the issue reported in that thread is not a regression but rather suggestion of a new feature that makes us incompatible with org.json.
I would suggest to roll the code back like I did in the issue-8 branch. I agree that calling toJSONString could be a good behaviour, but any new incompatibility with org.json is something we should avoid at least in v1 branch.

OK with me
@sebfz1 WDYT?

This is actually a regression. Please give me a couple of days to make a
simple project with testcases for both libraries...

Sure :)
WBR, Maxim
(from mobile, sorry for the typos)
On May 2, 2017 13:58, "Sebastien Briquet"<EMAIL_ADDRESS>wrote:

This is actually a regression. Please give me a couple of days to make a
simple project with testcases for both libraries...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openjson/openjson/issues/8#issuecomment-298512900,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADsPf7AnZULbXKr3lKucdAnm3gmeD-q3ks5r1tQGgaJpZM4NFW3K
.

Hi, sorry for the delay!
You can find here some tests upon org.json (latest), wicket (7.x) and opensjon (1.0.5).
https://github.com/sebfz1/openjson-issues/tree/master/src/test/java/com/example
There is something really strange :  new JSONObject(myPojo).toString() just does not call #toJSONString in any of these cases. Either my test is bad or I didn't understood the javadoc correctly...

The JSONString interface allows a toJSONString() method so that a class can change the behavior of JSONObject.toString(), JSONArray.toString(), and JSONWriter.value(Object). The toJSONString method will be used instead of the default behavior of using the Object's toString() method and quoting the result.

But - fasten your seatbelt - if beans are in a List, then is works as expected, meaning: new JSONArray(myArray).toString() calls #toJSONString. This is valid for wicket & org.json but fails with openjson.
The actual test results are:
OrgJsonTest.testBeanJSONString:30 expected:<...","myProp4":"value4"[,"myProp5":"value5"]}> but was:<...","myProp4":"value4"[]}>
WicketJsonTest.testBeanJSONString:30 expected:<...","myProp4":"value4"[,"myProp5":"value5"]}> but was:<...","myProp4":"value4"[]}>
OpenJsonTest.testBeanJSONString:31 expected:<...","myProp4":"value4"[,"myProp5":"value5"]}> but was:<...","myProp4":"value4"[]}>

OpenJsonTest.testArrayJSONString:42 expected:<...","myProp4":"value4"[,"myProp5":"value5"]}]> but was:<...","myProp4":"value4"[]}]>

The reason of the issue is OpenJSON's JSONObject.wrap does wrap JSONString objects as beans, but org.json's ones does not.
Here is a patch (in a separate branch) to unify behavior of OpenJSON with org.json:
https://github.com/openjson/openjson/commit/427087efb1c9d9d737cfbe237caf1c1812664a5c
I can't say if I like this patch, but since the priority is to be compatible I believe we have to follow this way.
WDT?

Looks like I have some white-spaces diffs in the patch. Please ignore them, they won't go to the mainline anyway.

I ran the tests over the issue-8 branch and it works as expected!
Please let me know when the fix is going to be applied on master and the new released be issued, thank you very much! :)

Thanks for addressing this @mfursov :)

Great to see the issue being addressed. Thanks!
Hopefully those are the last issues about json and the new version of Wicket can be released soon.

Update was released to maven


Type not being detected

https://github.com/AznStevy/bme590hrm/blob/6687a146db16b168ad9dbff2df9a04c096cf91ce/tests/test_file_handler.py#L53
When I try to check if a string is a dict, it says that the string is a dict which fails one of my tests. Not what's going on.

Hiya @AznStevy. I've reproduced your existing below for easy reference:
https://github.com/AznStevy/bme590hrm/blob/6687a146db16b168ad9dbff2df9a04c096cf91ce/tests/test_file_handler.py#L49-L64
What is happening here is that ecg_file.write_data(data, test_file_path) is in fact correctly raising a TypeError, however you are "catching" that error in your except TypeError block. So when ecg_file.write_data(data, test_file_path) throws the TypeError in your test, you execute the except block which runs the code assert True. Since this is always valid, the program will not fail as expected and will continue. So what happens next is that your program actually continues on to line 62 unimpeded, and fails on the assertion on line 64 instead.
Note the output pytest gives you:
data = 'This is a string'

    @pytest.mark.parametrize("data", [
        ({}),
        ({"name": "Bob"}),
        ({"_id": "42", "favorite_nums": [2, 3, 4]}),
        (str("This is a string"))])
    def test_write_data(data):
        test_file_path = "tests/test_data/test_json.json"
        ecg_file = FileHandler("/test_data/test1.csv", initialize=False)
        try:
            ecg_file.write_data(data, test_file_path)
        except TypeError:
            assert True

        with open(test_file_path) as json_data:
            file_data = json.load(json_data)
>           assert file_data == data
E           AssertionError: assert {'_id': '42', 'favorite_nums': [2, 3, 4]} == 'This is a string'

tests/test_file_handler.py:64: AssertionError

What it seems like you want to do instead is ensure that a TypeError is correctly raised when the input is not a dictionary to your write_data function. You can break this out into another test function that tests a variety of non-string function inputs and ensures the TypeError is correctly thrown. We covered how to do this in class and you can find an example in the lecture notes here. Let me know if you have any questions on that!
Also FYI, I noticed your build was failing for some reasons. See #4.


Unitary: popping makes quantum object unusable

Reported by @bartmate
After popping (measuring) a 1-bit qobject, it behaves differently. First I thought that it will be "set" into the measured value and then I can use it as before. But it seems it is not the case, I cannot use it any more, or at least it will not behave the same way as before. I solved the problem by adding new 1-bit qobjects which are initialized to the measured values.
I think this is uncomfortable. If I cannot use a qobject any more after popping , it would be great, if the library would be able to automatically do this work-around logic.

@bartmate to test on Fox in the Hole.

I deleted the part which always add a new qobject after measurement: see PR #37.
I found two problems:

The 2nd one is a run-time error. It may or may not be related with the 2nd one.
The 1st one: It seems there is still some problem with using a 1-bit QObject after a measurement (or maybe my expectation is wrong): The 2nd move is a split which should split the 4th (index=3) hole into 3th and 5th. My expectation is that those 2 holes should have ~.5 - ~.5 probabilites after the split, but it is not the case. The 3th hole has 0 probabilites, while the 5th one has 1.0.  I suspect, this is because the 3rd (index=2) hole was measured beforehand and it fixed the qobject somehow, so later splits cannot modify it.

Please, check.
1st:
(base) bm@ct:~/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole$ python3 fox_in_a_hole.py -q -fixseed
Quantum Fox-in-a-hole game.
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2

It seems you have lost :-(. Try again.

History:
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Guess: 2
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Moving (SWAP-based) left from position 4.
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Guess: 2
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Splitting (SWAP-based) from position 3 to positions 2 and 4.
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Guess: 2
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Moving (SWAP-based) left from position 4.
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Guess: 2
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Moving (SWAP-based) right from position 3.
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Guess: 2
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Moving (SWAP-based) left from position 4.
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Guess: 2
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Moving (SWAP-based) left from position 3.
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Guess: 2
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Splitting (SWAP-based) from position 3 to positions 2 and 4.
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Guess: 2
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Moving (SWAP-based) left from position 4.
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Guess: 2
State: [0.0, 0.0, 0.0, 1.0, 0.0]
Moving (SWAP-based) right from position 3.
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Guess: 2
State: [0.0, 0.0, 0.0, 0.0, 1.0]
Moving (SWAP-based) left from position 4.
State: [0.0, 0.0, 0.0, 1.0, 0.0]

2nd
(base) bm@ct:~/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole$ python3 fox_in_a_hole.py -q -fixseed
Quantum Fox-in-a-hole game.
Where is the fox? (0-4 or q for quit)
2
Where is the fox? (0-4 or q for quit)
2
Traceback (most recent call last):
  File "/usr/local/google/home/bartmate/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole/fox_in_a_hole.py", line 258, in <module>
    game.run()
  File "/usr/local/google/home/bartmate/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole/fox_in_a_hole.py", line 94, in run
    self.history_append_state()
  File "/usr/local/google/home/bartmate/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole/fox_in_a_hole.py", line 61, in history_append_state
    self.history.append('State: {}'.format(self.state_to_string()))
  File "/usr/local/google/home/bartmate/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole/fox_in_a_hole.py", line 179, in state_to_string
    return str(self.get_probabilities())
  File "/usr/local/google/home/bartmate/01Work/91Unitary/unitary/unitary/examples/fox_in_a_hole/fox_in_a_hole.py", line 168, in get_probabilities
    peek_result = self.state[0].peek(objects=self.state[1],
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/unitary/alpha/quantum_world.py", line 120, in peek
    return self.peek(objects, count, convert_to_enum, rtn_list)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/unitary/alpha/quantum_world.py", line 120, in peek
    return self.peek(objects, count, convert_to_enum, rtn_list)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/unitary/alpha/quantum_world.py", line 120, in peek
    return self.peek(objects, count, convert_to_enum, rtn_list)
  [Previous line repeated 964 more times]
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/unitary/alpha/quantum_world.py", line 101, in peek
    results = self.sampler.run(measure_circuit, repetitions=num_reps)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/work/sampler.py", line 53, in run
    return self.run_sweep(program, param_resolver, repetitions)[0]
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/simulator.py", line 77, in run_sweep
    return list(self.run_sweep_iter(program, params, repetitions))
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/simulator.py", line 111, in run_sweep_iter
    records = self._run(
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/simulator_base.py", line 250, in _run
    act_on_args = self._create_act_on_args(0, qubits)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/simulator_base.py", line 373, in _create_act_on_args
    args_map[q] = self._create_partial_act_on_args(
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/sparse_simulator.py", line 196, in _create_partial_act_on_args
    return act_on_state_vector_args.ActOnStateVectorArgs(
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/_compat.py", line 330, in decorated_func
    return func(*args, **kwargs)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/_compat.py", line 330, in decorated_func
    return func(*args, **kwargs)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/act_on_state_vector_args.py", line 391, in __init__
    self._state = _BufferedStateVector.create(
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/sim/act_on_state_vector_args.py", line 76, in create
    state_vector = qis.to_valid_state_vector(
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/qis/states.py", line 829, in to_valid_state_vector
    state = quantum_state(state_rep, qid_shape, validate=True, dtype=dtype, atol=atol)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/qis/states.py", line 303, in quantum_state
    return QuantumState(data=data, qid_shape=qid_shape, validate=validate, dtype=dtype, atol=atol)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/qis/states.py", line 101, in __init__
    self.validate(dtype=dtype, atol=atol)
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/qis/states.py", line 184, in validate
    validate_normalized_state_vector(
  File "/usr/local/google/home/bartmate/.local/lib/python3.9/site-packages/cirq/qis/states.py", line 897, in validate_normalized_state_vector
    if not np.isclose(norm, 1, atol=atol):
  File "<__array_function__ internals>", line 5, in isclose
  File "/usr/local/google/home/bartmate/anaconda3/lib/python3.9/site-packages/numpy/core/numeric.py", line 2364, in isclose
    if all(xfin) and all(yfin):
  File "<__array_function__ internals>", line 5, in all
  File "/usr/local/google/home/bartmate/anaconda3/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 2438, in all
    return _wrapreduction(a, np.logical_and, 'all', axis, None, out,
  File "/usr/local/google/home/bartmate/anaconda3/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 85, in _wrapreduction
    return reduction(axis=axis, out=out, **passkwargs)
  File "/usr/local/google/home/bartmate/anaconda3/lib/python3.9/site-packages/numpy/core/_methods.py", line 62, in _all
    return umr_all(a, axis, dtype, out, keepdims)
RecursionError: maximum recursion depth exceeded while calling a Python object

See above.


feat :allow columns as dict format

@Elvisambition Thanks for your PR. However, I think this feature has been supported already. I will close this PR. Thank you anyway.


CFI bookmarking etc. ("navigation logic"?) fails in Internet Explorer (v11, Windows 10)

Hello Juan (@JCCR), I've been testing the bookmarking "export" feature to check that the reading location is restored correctly in Chrome, Firefox, Edge and IE...unfortunately in Internet Explorer this feature fails. The yellow highlighted character does not show up when creating the "shared CFI bookmark", and the incorrect (first) page is opened when loading a URL with a specific CFI. I'm not sure whether this is related to the "CFI navigation logic" lag (CPU spike): https://github.com/readium/readium-shared-js/issues/247
This bug can be reproduced with the standard implicit "bookmarked" reading location, not just with the explicit "share" CFI goto URL parameter.
I test with:
https://readium.firebaseapp.com/?epub=epub_content%2Faccessible_epub_3

This appears to be fixed in Edge by https://github.com/readium/readium-shared-js/commit/a5d1644281ca2b41094cebd0b0a2a843adbde6ba
Thanks @JCCR  :)
However, in IE I am able to consistently reproduce an offset error which means that the position of the highlighted / bookmarked character range is a few steps behind. To test, open:
https://readium.firebaseapp.com/?epub=epub_content%2Faccessible_epub_3
...and click on the "share URL" button in the navbar. If the yellow highlight appears in the top-left corner, then it works fine on this page. Try the next page. Repeat until the yellow highlight does not appear in the top-left corner of the reflowable page spread. When this happens, quickly press the escape key to discard the popup modal dialog, and quickly press the left arrow key to display the previous set of pages => the highlighted character range is in the lower-right corner.

Closing as fixed.


Proposal to change number of reviewers from 3 to 2.

Purpose:
There are currently three approvers needed on the baseline-standard repo. We agreed during the standards call on the 11th of March to bring that number down to 2. The TSC had already approved the same request on the main baseline repo. According to @humbitious, no need to ask again.

@Therecanbeonlyone1969, @humbitious - Could one of you implement the settings to reflect the above please ? Thanks.

@Therecanbeonlyone1969, @humbitious - Could one of you implement the settings to reflect the above please ? Thanks.

I agree with this request -- @kthomas @humbitious  -- please submit your vote.

I believe this has been done.


onError exception handling

The exception was missing as a (3rd) variable in many of the onError callbacks of the loader.
I also added it to the plugin, so we will have more consistent error handling . Now, when an error occures in the plugin's load function, no exception will be thrown if the onError is defined.

More changes coming up, wait with merging

Don't merge for now, this will also include a fix for https://github.com/BabylonJS/Babylon.js/issues/2889

Now fixing https://github.com/BabylonJS/Babylon.js/issues/2889 . An error message will be logged if no onError is defined. if onError is defined, the exception object can be used to analyze the reason for the error.


Handle SIGINT

First of all, thank you, this is an awesome tool.
I'm running it on demand, so instead of -d in docker run we just run it. However if i send a SIGINT it simply does not stop, i need to forcefully docker stop it.
Is there anything you can do about this in the code?

Thanks for your feedback !
Glad to see people using it :smile:
I just try :
docker run -ti  tchiotludo/kafkahq
After hiting ctrl+c, the server stop gracefully :
2019-01-04 10:31:46,435  INFO Thread-1   org.kafkahq.App            Stopped
How do you send the SIGINT signal ?

Oh boy, please ignore me, I must be hungover from New Years still, i forgot to add the -ti.
And yeah, its a pretty handy app to look into kafka quickly, the json parsing is pretty useful.


Where to get the source code for the demo app?

Hi,
Can I get the source code for the demo app? http://zendelsolutions.com/zendel/projects/angular-filemanager/
Thanks,

Hello, I dont understand your question, can you explain it with more details?
Thanks

You can use the JAVA or the PHP connector
https://github.com/joni2back/angular-filemanager/tree/master/bridges

Hello,
I did all this all this steps >>
Use in your existing project

Install and use bower install --save angular-filemanager

Include the dependencies in your project

3) Use the angular directive in your HTML

but still nothing happens,
Is it possible that you give us the source code of the demo app or just a step by step example

I think your problem is that HTML directive is <angular-file-manager></angular-file-manager> instead of <angular-filemanager></angular-filemanager> like the README says.

Thanks hmartos you are a star atleast now i can see something, I need to figure out how to make the create folder and upload file works. I plan on using this on my angular app, my backend for the app is written in java

Thank you starspn, now we are at the same point!.
This is an amazing project, but it is not very well documented, so you have to carefully read the source files. anyway, the directive is the starting point so this should be corrected in README

Yes abosulety. it is an amazing project, I wish it was well documented or atleast they give us access to the source code of the demo

Hello, yes as @hmartos says, the directive was named from angular-file-manager to angular-filemanager in the latest release.
Now you need to extend the config file ... look the index.html main file (the same that includes the directive) in order to set your backend urls and enable/disable features.
The options are:
listUrl: "bridges/php/handler.php",
uploadUrl: "bridges/php/handler.php",
renameUrl: "bridges/php/handler.php",
copyUrl: "bridges/php/handler.php",
removeUrl: "bridges/php/handler.php",
editUrl: "bridges/php/handler.php",
getContentUrl: "bridges/php/handler.php",
createFolderUrl: "bridges/php/handler.php",
downloadFileUrl: "bridges/php/handler.php",
compressUrl: "bridges/php/handler.php",
extractUrl: "bridges/php/handler.php",
permissionsUrl: "bridges/php/handler.php",
enablePermissionsRecursive: true,
sidebar: true,
breadcrumb: true,
allowedActions: {
    rename: true,
    copy: true,
    edit: true,
    changePermissions: true,
    compress: true,
    compressChooseName: true,
    extract: true,
    download: true,
    preview: true,
    remove: true
},

Then, backend should work in in the way that the API is documented.
Please if you still trying without success, please tell me.
If you can, you could modify the README.md docs then propose a pull request in order to clarify this issues.
Thanks!

Are these options for the Directive?

Thank you @joni2back I will try to do a pull request tomorrow, but it is my first time, so I don't know how much time it will take me to do it!
I have overrrided this config file and it is working fine, but I am getting problems when trying to override this config file from fileManagerConfigProvider like you do in your index.html
  //example to override angular-filemanager default config
  angular.module('FileManagerApp').config(['fileManagerConfigProvider', function (fileManagerConfig) {
    var defaults = fileManagerConfig.$get();
    fileManagerConfig.set({
      appName: 'Demo - github.com/joni2back/angular-filemanager',
      allowedActions: angular.extend(defaults.allowedActions, {
        remove: true
      })
    });
  }]);

Thanks for your support!

What problem?
If you are modifying the config.js file you should re-compile the javascript (run gulp build)

Sorry, the problem is Error: [$injector:unpr] Unknown provider: fileManagerConfigProvider.
I am importing source files directly in my html,  not using minified javascript, so I don't need to recompile the javascript, do I?
  <script src="/bower_components/angular-filemanager/src/js/app.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/config.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/chmod.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/item.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/filenavigator.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/fileuploader.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/translations.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/controller.js"></script>
  <script src="/bower_components/angular-filemanager/src/js/selector-controller.js"></script>

Im trying the same and i dont have problems.. The source is up to date? (check config.js was transformed from constant to provider)

Thank ypu @joni2back, that was the problem!!

You're welcome. Dont forget to give the project a start :star:

Starred! I think all this problems are because this version is not available on bower, am I wrong?
This code is tagged as 1.2.0 and it should be tagged as 1.3.1 ??
Thank you.

Thank you again, I just released the 1.3.1 !

Thank you.. I will update my bower
On Tue, Aug 25, 2015 at 3:05 PM, Jonas Sciangula Street <
<EMAIL_ADDRESS>wrote:

Thank you again, I just released the 1.3.1 !
—
Reply to this email directly or view it on GitHub
https://github.com/joni2back/angular-filemanager/issues/55#issuecomment-134578848
.

--
Regards
Sibusiso Nkambulecell :<PHONE_NUMBER>email<EMAIL_ADDRESS><EMAIL_ADDRESS>


Get rid of Context::Get* subsystem getters.

@rokups What should we do with C# interface? _properties_core.i has all these getters too.


Ability to run simulations Async

We have been discussing this aspect for a while, and finally there was a user request for it: "Is it possible to receive the results even if my PC is off...". Therefore, I think it is time to start implementing it.
The priority for now seems to be for the low-level simulation calls and from what I have been discussing with @luispcunha it will take a bit more extra work for the scenarios. Since the low-level calls are the backbone of the scenarios, we can start by implementing an async method for them. Moreover, we can provide the option to run sync and async simulations.
The steps:

[ ] Add personal tokens and simulation identification tokens on the server side. This will allow users to check their job list, statistics and identify the simulations they may want to download to their side.
[ ] Implement methods to send a simulation and to fetch a simulation via simulation identification token. The idea is to split the invoke api functions into smaller steps. There is already various functions to manage tasks that will allow to treat this with simplicity.
[ ] Implement methods for users to check their job list. In the near future, this can also include statistics of time and hardware used, which is good for both parties.
[ ] Maybe, by default, the current invoke_api method should be able to keep running a simulation in case we do not cancel it, but there is some event that causes the collapse of the computer or IDE. For example, a simple event is internet connection drop.
[ ] Attach a simulation that is still running to check the simulation logs. This goes in hand with the item above or with the idea of just checking in if everything is ok, and detaching again. The idea is very similar to the screen method on terminal, but we are providing this feature in the client side.

There might still be intermediate steps in each of the ones above. This issue serves to open the discussion and implementation, since users are already asking for it. Feel free to split each task into more focused issues.

Possibly related to #81.


Bluetooth: BR: Add listener cb for discovery

The results of inquiry and extended inquiry are only reported from application level after the inquiry complete event notified.
While the event of inquiry result is notified by controller in real time.
It is not a good user experience.
Just like scanning of LE, add a listener cb for discovery.
When the event of inquiry result, extended inquiry result, or remote name request complete notified, call listener recv cb to notify the upper layer.
When the event of inquiry complete notified or no pending of remote name request , call listener timeout cb to notify the upper layer.

Just like scanning of LE, add a listener cb for discovery.

I think the reason why we have the two kind of scan callbacks for LE is due to backwards compatibility, i.e. the old singlelton callback was kept as-is when support for multiple independently registered callbacks was added. We don't necessarily have to follow that approach for BR/EDR since the API is not considered stable, i.e. let's do this the way we want to do it as if we were defining the API from scratch. @alwa-nordic @jori-nordic do you guys remember how this went for LE?
That said, I'm all in favor of making the API more asynchronous, i.e. the application should get updates as they happen, rather than the stack withholding the information until it's been able to get everything possible for each discovered device.

Just like scanning of LE, add a listener cb for discovery.

I think the reason why we have the two kind of scan callbacks for LE is due to backwards compatibility, i.e. the old singlelton callback was kept as-is when support for multiple independently registered callbacks was added. We don't necessarily have to follow that approach for BR/EDR since the API is not considered stable, i.e. let's do this the way we want to do it as if we were defining the API from scratch. @alwa-nordic @jori-nordic do you guys remember how this went for LE?
That said, I'm all in favor of making the API more asynchronous, i.e. the application should get updates as they happen, rather than the stack withholding the information until it's been able to get everything possible for each discovered device.

Well. I removed the callback parameter from function bt_br_discovery_start.


Fixes #23 add ids to all library elements

The Id has changed substantially, and as a result the automated tests no longer pass.
If the SystemTest TestHelper::GetRootName was changed to
static public string GetRootName()
{
return "nsu%3Dhttp%3A%2F%2Fopcfoundation.org%2FUA%2FFX%2FAML%2FTESTING%3Bi%3D";
}
then the tests will pass again.


feat(provider): LRUCache Layer

Motivation
Ref: #770

Solution

Adds a provider caching layer that dumps cache to fs.
Responses are saved as key-value pairs where key is the hash of the request and its params.

Overrides the following RPC methods

[x] get_block_by_number
[x] get_block_by_hash
[x] get_block_receipts
[x] get_proof
[x] get_storage_at
[x] get_code_at
[x] get_transaction_count
[x] get_logs
[x] get_transaction_by_hash
[x] get_raw_transaction_by_hash
[x] get_transaction_receipt

PR Checklist

[x] Added Tests
[x] Added Documentation
[ ] Breaking changes

Decided to make this a provider-layer, this lets us achieve two very important features that wouldn't work as a transport layer:

Let users access save_cache and load_cache on demand via the provider interface. In the case of a ransport layer this would only work when the layer is dropped and initialized respectively.
Requests that use BlockId tags like latest, pending etc. should not use cache. This becomes trivial to implement as a provider layer.

To accomplish this we need to merge #788

@mattsse addressed the suggestions


We've got updates to do

@Akarys42 Any chance you can look into getting this resolved soon? You're the only one that understands the update process, and we're super super far behind now.


unrelated python and c++ examples with the same name

Bug description
In the Overview page of pinocchio. The overview-urdf.cpp and overview-urdf.py are completely unrelated. This causes a false impression that doing in c++ what's in python is complicated while it is NOT (especially taking into account the complexity of the existing c++ code for newcomers).
Expected behavior
I understand that the overview can include examples of different functionalities in different languages, but the fact that 1) first examples in the page are identical in functionalities between c++ and python, and  2) the existing urdf-examples have the same identical name , make it expected that they both do the same.
A simple code like this in c++ can be used for example to replicate the python code.
#include "pinocchio/algorithm/joint-configuration.hpp"
#include "pinocchio/algorithm/kinematics.hpp"
#include "pinocchio/multibody/fwd.hpp"
#include "pinocchio/parsers/urdf.hpp"

#ifndef PINOCCHIO_MODEL_DIR
#define PINOCCHIO_MODEL_DIR "path_to_the_model_dir"
#endif

int main(int argc, char **argv) {
  // You should change here to set up your own URDF file or just pass it as an
  // argument of this example.
  std::string model_path;
  if (argc < 2) {
    model_path = PINOCCHIO_MODEL_DIR
        "/example-robot-data/robots/ur_description/urdf/ur5_robot.urdf";
  } else {
    model_path = argv[1];
  }

  // Load the urdf model
  pinocchio::Model model;
  pinocchio::urdf::buildModel(model_path, model);
  std::cout << "model name: " << model.name << std::endl;

  // Create data required by the algorithms
  pinocchio::Data data(model);

  // Sample a random configuration
  Eigen::VectorXd q = pinocchio::randomConfiguration(model);
  std::cout << "q: " << q.transpose() << std::endl;

  // Perform the forward kinematics over the kinematic tree
  pinocchio::forwardKinematics(model, data, q);

  // Print out the placement of each joint of the kinematic tree
  for (int i = 0; i < model.names.size(); ++i) {
    std::cout << model.names[i] << " " << data.oMi[i].translation().transpose()
              << std::endl;
  }

  return 0;
}

Sorry if this is not the right place for this comment, I started using pinocchio very recently and it's my first time raising an Issue here.

Apparently they were the same, check the old one here
The change was made in commit 53272f3

Thanks, @ZeinBarhoum, for raising this issue and pointing out this inconsistency.
We really appreciate it.
I have just opened this PR (https://github.com/stack-of-tasks/pinocchio/pull/2384) to fix this issue.

Solved via #2384.


StatusLine and StatusLineNC share the same highlighting

As described by :help hl-StatusLineNC, if StatusLine and StatusLineNC share the same highlighting then Vim will use "^^^" in the status line of the current window to indicate as such. This obviously happens when using split windows.
Here's a screenshot of what that looks like:

Indeed in colors/ghdark.vim we have:
call s:ghhl("StatusLine", "base1", "base3")
call s:ghhl("StatusLineNC", "base1", "base3")

I'm not sure if this is intentional, but it would be nice to have StatusLineNC set to something darker to indicate it being the non-current window. I tried call s:ghhl("StatusLineNC", "base5", "base2") and that looked nice to me. Here's what that looks like:

I can submit a PR if needed, but feel free if you'd rather go with something else.

Thanks! Gave it a go and looks good on my end. Closing this issue.


Users/mizho/dropplugins

I am good with the task.json changes, double check with your PM make sure the input are right.


Support multiple parents (parent Ids)

@remcoplasmeyer Very useful plugin! Just a question, is there any extension for supporting multiple parent Ids or is it planned for a future release? If not, do you have any suggestions/ tips on how to implement this modification?

Any reason why this was closed?
I was about to ask for the same. Multiple parents would be a great extension. I tried setting an array of parent ids but that does not work.

It would be a game changer feature if it could be implemented !!

It is no use, I have spent much time to improve the library, with active and merged PRs. Creator has clearly abandoned the project.


[WIP] RIP Quagga

Work in progress...

@fichtner It currently produces this error, any idea where this comes from:
configd.py: [40e17d38-fa5c-4ce3-b459-cc411ce2bad2]
Inline action failed with OPNsense/Quagga OPNsense/Quagga/quagga 'collections.OrderedDict object' has no attribute 'ripd' at Traceback (most recent call last):
File "/usr/local/opnsense/service/modules/processhandler.py", line 505, in execute return ph_inline_actions.execute(self, inline_act_parameters)
File "/usr/local/opnsense/service/modules/ph_inline_actions.py", line 50, in execute filenames = tmpl.generate(parameters)
File "/usr/local/opnsense/service/modules/template.py", line 309, in generate raise render_exception Exception: OPNsense/Quagga OPNsense/Quagga/quagga 'collections.OrderedDict object' has no attribute 'ripd'

unprotected access of "ripd" in the template? should be easy to find...

@fichtner the template does not contain the 'word' ripd

$ git grep ripd
net/quagga/src/opnsense/service/templates/OPNsense/Quagga/quagga:if helpers.exists('OPNsense.quagga.rip.enabled') and OPNsense.quagga.ripd.enabled == '1' %} ripd{% endif %}{%

ok, thats an older bug then, which I did not suspect...

@fichtner so this is working now - I need to bump version so it can be in 17.1.4

it's not that strict, version or revision bumps are only needed from release to release, e.g. 0.0.2 is good enough for now

@fichtner can I merge that?


Rootless server deployment with no dependencies

The server currently has three dependencies: Containerd, Buildkitd and Nerdctl. It also must run as root because Nerdctl fails to create a bridge device in rootless mode (possibly due to detach netns https://github.com/containerd/nerdctl/blob/main/docs/rootless.md#rootlesskit-network-design).
As default we want to run the server as a non-root user and not have to install or configure anything else. The user can then quickly try Ayup without messing around with these dependencies that have a lot of sharp edges or giving us root access.

Now need to bundle Rootlesskit, Buildkit and the CNI plugins, plus any exe's that these happen to use, but hopefully they are reasonably self contained.

Go very close to this with #35
Nix bundle almost works, but it creates a new user namespace (IIUC) and some capability needed by Rootlesskit gets dropped. However we maybe can patch the bundler to work around this.


The recovery mechanism does not work when the queues are created using RabbitAdmin

Version Used
Spring Boot Starter 2.1.2
Spring Boot Starter AMQP 2.1.2
Description of the problem
I created a demo project in order to reproduce the problem:
https://github.com/andcuevas/spring-rabbitmq-recovery-rabbit-admin-problem
The recovery mechanism does not work when the queues are created using RabbitAdmin.

The problem that you do that manually with this plain code:
 rabbitAdmin.declareQueue(new Queue(queueName, false, false, true));

Meanwhile when it is a @Bean, the RabbitAdmin has this logic:
this.connectionFactory.addConnectionListener(connection -> {

        ...
	initialize();
	...
});

Scanning the application context for appropriate beans and call an idempotent declare() for them every time we get an new connection.
So, if you would like to have a re-create logic in your manual case, you need to think about your own ConnectionListener to be injected into the ConnectionFactory.
I don't think that there is some issue from the framework perspective and this is just a question, which should be addressed on StackOverflow.

If this is a framework limitation, there is no mention of it in the documentation.
In my use case I need to create the queues based on a variable list that comes from properties and RabbitAdmin is part of the framework.

The documentation "Configuring the Broker" clearly states thats auto-configuration requires the elements (queues, exchanges, bindings) to be declared as beans.
You can create multiple elements with a single bean using a Declarables since version 2.1 (or List<Declarable> with earlier versions).
See Declaring Collections of Exchanges, Queues, Bindings.
Please make suggestions if you think the documentation needs improvement.

Thanks Gary for the clarification, English is not my first language and maybe is my limitation.
But it doesn't hurt to have an explicit comment in the section: https://docs.spring.io/spring-amqp//reference/html/_reference.html#auto-recovery

I've encountered this issue as well.
Since the framework disables the client's auto-recovery feature (and the documentation specifically says that Spring's auto-recovery replaces it completely), one would expect that every queue or binding that is declared using the framework would really be recoverable. Because this is not the case, it is also expected that enabling the underlying client's auto recovery will do the job, however, still, if the queue is not a bean in spring, it isn't recovered (and produces exceptions).
So is there any workaround for this?

Please open a new feature request issue; as long as the dynamically declared queues/bindings are declared through the RabbitAdmin, it could keep track of such declarations and re-declare them when the connection is re-established.
One work around is to keep track of the dynamic declarations yourself and add a connection listener to the connection factory (which is what RabbitAdmin does).
But the simplest would be to register them as beans so the admin will pick them up automatically.

Thanks @garyrussell . I've created #1365


Possible to allow custom IP Mask on Server (Not /24) for clients

On creating a Server IP, even if I assign it a /27, it still outputs it as a /24 when assigning the clients. Not a train smash, but would be nice if you could pull in the mask defined and then use it for the clients.
I would recommend stating that the mask needs to be defined, such as /24 - /30, (understanding that some people might want bigger ranges for a lot of clients, especially now (Covid and more requirements to work remotely, so some people might want a /23, /22, /21, etc)), and then carrying that value across to the clients.
I'm not a coder, but I've had a look, and think that you are setting it manually in:
https://github.com/perara/wg-manager/blob/master/wg_dashboard_backend/templates/peer.j2
Address = {{ data.peer.address.replace("/32", "/24") }}
On a separate note, I'm running it in docker and works like a charm. Amazing. Such a great product. Nice work. :)

Seems reasonable:
Would this be valid configuration if i were to use a /15 mask?
[Interface]
Address = <IP_ADDRESS>/15
ListenPort = 53522
PrivateKey = QEmwrgLdKG2f/yPrqL7ZwX1Tjn0rm99gzZR5sg6I5VI=

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# Client Name: Unnamed
PublicKey = Dq0BLdjSGzR0AHFtBuT0419w5D6U/Wdtlom0aHRjEFE=
AllowedIPs = <IP_ADDRESS>/32

Client:
[Interface]
Address = <IP_ADDRESS>/15
PrivateKey = sAm8t7J7g+JJsSD8341E9olFLF17xiHO83MpPFW9UFg=
DNS =

[Peer]
PublicKey = CSgp0Zq9CtHpH260WJym1YikRRYVv9SPmsSh4x+YcBI=
AllowedIPs = <IP_ADDRESS>/0, ::/0
Endpoint = sysx.no:53522

So, a /15 is valid, but it is a massive range, with 131,000+ hosts in the subnet. Not impossible, but highly unlikely. (http://jodies.de/ipcalc?host=<IP_ADDRESS>&mask1=15&mask2=)
The subnet and mask is usually designed and built according to the number of hosts you wish to have per subnet, and in the case of a vpn server, typicaly the number of clients you wish to serve per server (usually).
A /24 gives you 254, typically enough, but in these times I have seen instances personally of /23 (512), /22 (1024), /21 (2048), /20 (4096). Hardly ever greater than that. Most usually because it is a large block of IP space you are consuming in a company private range. I think allowing the person to chose the mask (/anything) is probably sufficient. I personally make mine small (/28) which usually gives 14 usable addresses (including the server), as I have a number of devices, but I come from a networking background, so choose to do things that way.
In general, if I chose a /24 for the server, ths would be a range of 256 addreses. 2 are lost (network and broadcast by default) so that leaves 254. The server in this case is like the router in most networks, and is "usually" set at either .1 or .254 in the subnet. Creating a client with a /32 is fine as what it means is that when the client joins, it is usually not routing anything behind it through that link, so you usually only want to get to that device, the /32 from the server. Allowing people to then manually amend the range on a per device basis is fine.
It was just in your case currently, even setting a custom range on the server still applied a standard mask of /24, which is not ideal.
In my case I would I set the server as <IP_ADDRESS>/28
Server = <IP_ADDRESS>
Client = <IP_ADDRESS>
The client config would show the server of <IP_ADDRESS>/28.
Itself of <IP_ADDRESS>/28.
This means that the client knows that there could be .3 -> .14 on the same subnet as itself, which means you could allow for device to device comms (if you wanted).
The Server sees the client as <IP_ADDRESS>/32, meaning all it knows is that the device is a single device (the most specific ip address route of a single device = /32).
If you wanted other networks behind the device you would advertise/add those networks to the client config on the server.
Leaving the server as a default of /24 should be fine, but I would state that is, and let people change it if need be, and allow the change to carry if they do.
Hope that all makes sense.

Hi and thanks for the detailed explaination :)
Yes, /24 is set as default, but ive made it possible to define any mask (1-32).
I know generally of how subnetting works but not sure of the following:
Suppose i set the server address to <IP_ADDRESS>/20, would it be valid to define the client.conf address as <IP_ADDRESS>/24 or should/must the mask be same for both client.conf and server.conf?
Ill elaborate if the example is unclear

Hmmm, thinking about it, yes it is a valid configuration, but one we would usually steer away from. The client "should" always match the subnet of the server. As this tells it what is on the same subnet as itself, or what is off the subnet. In this case however, as the client is always on a "point to point" link (always communicating with the server), it will always talk to (through) the server (gateway) regardless.
However if you do do that ,implement a /24 in a /24 subnet, (I suspect you want to make it easier to manage and implement) then the client subnet MUST always be equal to, or smaller than, the subnet of the server. Meaning if the server is /20, the client must be /20 or less (/21, /22, /23 ....). If the server was /24 and the client /20, the client could think a device in the same /20 (that is not in the same /24 subnet) is on the same subnet and would possibly never talk through the wireguard server. I say possibly, as I am not sure how WG implements the communications. I do assume all comms from the client, regardless of the IP addressing, will actually go to the server. In an IP world on any standard subnet, the comms will always "broadcast" and in that case would go to/through the default gateway to get off subnet. So I am assuming WG is NOT fundamentally breaking the rules of IP.
So, if you wanted to implement a /24 for clients in a /20, you can, but it is usually seen as not done.

Looking forward to this. There is a strong case to be made in favor of using /32 as the default client mask for security. Seems like most wireless APs effectively do this with "AP Isolation" enabled out of the box.
Regardless of the default value, we must have the ability to set each client IP mask to be written to configs. Do you have a docker image available for testing? I would be happy to run it through the ringer a bit.

Hi,
I've added the functionality in the dev branch (sorry forgot to actually make the branch).
https://github.com/perara/wg-manager/tree/dev

I just tested the non-dev docker build and found some inconsistencies at the client config generation:
I set the server to a /25 subnet and added a client the following configurations had beeen generated:
[Interface]
Address = <IP_ADDRESS>/25
[...]
[Peer]
# Client Name: Unnamed
PublicKey = yyy
AllowedIPs = <IP_ADDRESS>/32

So far so good
But the client configuation is somewhat broken:
Although the "Address" field in the UI says (correctly) <IP_ADDRESS>/32 the configuration itself shows
[Interface]
Address = <IP_ADDRESS>/24
[...]

So it seems the subnet size just defaults to 24 in the confguration file if the length is set to 32.
Mask lengths manually set up to 31 get set correcty in the file.

Thanks for testing. I'll check this out

I think this is fixed. I believe the bug appeared previously as configs did not generate properly between peer/server changes. However, now this should change after all changes.
With this, I also think the feature is good 2 use :)


detect connection close via own handler and auto reconnect

i want to have event in my ap when conection to libvirt daemon closed (client disconnected), as i see libvirt sources and this package i can use ConnectRegisterCloseCallback
But how can i work with this function?

python sources have ability to use callback func for this, but in go i don't see such stuff.
https://www.redhat.com/archives/libvir-list/2012-July/msg01675.html

i think that this package have error...
for example calling on libvirt ConnectEventConnectionClosed returns
&errors.errorString{s:"unsupported procedure requested"}

I had a quick look at this. The parser isn't finding the arguments to the ConnectEventConnectionClosed function, because they don't follow libvirt's usual convention - normally they would be called ConnectEventConnectionClosedArgs. So the parser is emitting the function without any arguments at all, which clearly isn't going to work. This will need some looking into.

very bad =(, does this means that also need to create patch to libvirt ?

@trapgate gentle ping..

I'll try to look at this later this week.

hi @trapgate do you have time to look at this issue?


Correct cqpv log field value for tunnel connections

According to @masaori335 's comments on #7491 and #7511, it sounds like cqpv log field doesn't have a valid protocol name used in a tunnel. TLS partial blind tunnel ignores the issue and uses another field (cqssa) to log protocol names.
If we can't / don't log protocol names used in tunnels to cqpv, it should be documented and the value should be - but not misleading garbage value.
And I also think using cqssa as an alternative field has two problems. We should probably log protocol names to cqpv on tunnel connections as well.
Log size -- To collect protocol names used for the both tunnel connections and non-tunnel connections you need to log two fields, and either of them is always redundant or garbage. It unreasonably increases log size.
Readability -- Looking at different log fields depending on connection type is hard. Also cqssa has protocol IDs but not human friendly protocol names. It requires log readers more knowledge.

I'll have to look at our environment.  Do we currently log garbage for % in the tunnel case?  I would think it would log "-"

for tunnel_route % is logged as "http" because it is modeled as an internal CONNECT.