⚠ SolarOscp has degraded performance

In c9857e6, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 403 ms

Resolved: SolarOscp performance has improved in ef8d91e.


STITCH-2213 Swift SDK: Create the "Sync" interface

This adds the connective glue between CoreSync, Sync, CoreRemoteMongoClient, the DataSynchronizer, and the StitchAppClient.
App clients are now constructed with a NetworkMonitor (which defaults to the new DarwinNetworkMonitor class). StitchAppClientInfo will receive that network monitor, as well the StitchAppClientImpl, which now conforms to AuthMonitor. This is passed upstream to the RemoteMongoClientFactory, which passes it back downstream to the newly added CoreRemoteMongoClientFactory, creating a new sync local MongoDB client. Later CoreRemoteMongoCollection's will construct the DataSynchronizer with these fields. DS is encapsulated by CoreSync, which is used as a proxy by the newly added Sync class.
A NamedThrowingServiceClientFactory has been added for the new case of a named ServiceClient that also throws.

@adamchel PTAL. There's one question for you as well.


ssh logs are not parsed

Could you try the type syslog instead of sshd

Could you try the type instead of . Pasting the lines in the issue can also help us instead of an image, wrap them around ````syslog``sshd`

Oct 31 15:33:23 localhost unix_chkpwd[2681]: password check failed for user (wax)
Oct 31 15:33:23 localhost sshd[2679]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.xxx.com  user=wax
Oct 31 15:33:25 localhost sshd[2679]: Failed password for wax from <IP_ADDRESS> port 49836 ssh2
Oct 31 15:33:27 localhost unix_chkpwd[2682]: password check failed for user (wax)
Oct 31 15:33:29 localhost sshd[2679]: Failed password for wax from <IP_ADDRESS> port 49836 ssh2
Oct 31 15:33:31 localhost unix_chkpwd[2683]: password check failed for user (wax)
Oct 31 15:33:33 localhost sshd[2679]: Failed password for wax from <IP_ADDRESS> port 49836 ssh2
Oct 31 15:33:33 localhost sshd[2679]: Connection closed by <IP_ADDRESS> port 49836 [preauth]
Oct 31 15:33:33 localhost sshd[2679]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.xxx.com  user=wax
Oct 31 15:33:35 localhost unix_chkpwd[2686]: password check failed for user (wax)
Oct 31 15:33:35 localhost sshd[2684]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.xxx.com  user=wax
Oct 31 15:33:37 localhost sshd[2684]: Failed password for wax from <IP_ADDRESS> port 49966 ssh2
Oct 31 15:33:38 localhost unix_chkpwd[2687]: password check failed for user (wax)
Oct 31 15:33:40 localhost sshd[2684]: Failed password for wax from <IP_ADDRESS> port 49966 ssh2
Oct 31 15:33:42 localhost unix_chkpwd[2688]: password check failed for user (wax)
Oct 31 15:33:44 localhost sshd[2684]: Failed password for wax from <IP_ADDRESS> port 49966 ssh2
Oct 31 15:33:44 localhost sshd[2684]: Connection closed by <IP_ADDRESS> port 49966 [preauth]
Oct 31 15:33:44 localhost sshd[2684]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.xxx.com  user=wax
Oct 31 15:33:47 localhost unix_chkpwd[2691]: password check failed for user (wax)
Oct 31 15:33:47 localhost sshd[2689]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.xxx.com  user=wax

The line is working if you have white list installed (By default) private ip ranges are ignored unless you adapt or remove the collection
line: Oct 31 15:33:29 localhost sshd[2679]: Failed password for wax from <IP_ADDRESS> port 49836 ssh2
	├ s00-raw
	|	└ 🟢 crowdsecurity/syslog-logs (first_parser)
	├ s01-parse
	|	├ 🔴 crowdsecurity/apache2-logs
	|	└ 🟢 crowdsecurity/sshd-logs (+9 ~1)
	├ s02-enrich
	|	├ 🟢 crowdsecurity/dateparse-enrich (+2 ~1)
	|	├ 🟢 crowdsecurity/geoip-enrich (+9)
	|	├ 🔴 crowdsecurity/http-logs
	|	└ 🟢 crowdsecurity/whitelists (~2 [whitelisted])
	└-------- parser failure 🔴

Either edit:
/etc/crowdsec/parsers/s02-encrich/whitelist.yaml
Or
cscli parsers remove crowdsecurity/whitelist

thanks,let me try.

cscli parsers remove crowdsecurity/whitelists &&sudo systemctl reload crowdsec .it's work

"/etc/crowdsec/parsers/s02-enrich/whitelists.yaml" remove private string can't work

Please could you elaborate? remove private string can't work ?

Please could you elaborate? remove private string can't work ?
Now it's work.thanks

Closing due to confirmation it working


[Core-1] Implementation of Core-1

This is the implementation of Core-1 #2.
Note that JDK 20 has not released, so this is a draft PR until GA is available.

I will merge this PR once Gradle supports to JDK 20.

Forcing merge since only me take part in this project


chore: project addition by Deepanshu

Add a new project to the list
I want to add a college canteen website made using html css javascript and php.
Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I agree to follow this project's Code of Conduct
[X] I want to work on this issue

@Deepanshu0703 please make sure that we are not providing any labels for project additions as they are not associated with solving any issues.( according to gssoc23 rules)

could you share your progress on this issue?


camera.computeViewRectangle still doesn't work in 2D or CV

What happened?
In 2D, When the camera zooms in to Earth, the return value is undefined.
Reproduction steps

...
Sandcastle example
No response
Environment
Browser:
CesiumJS Version:
Operating System:

Duplicate of https://github.com/CesiumGS/cesium/issues/4346


[STORM-1499] fix wrong package name for storm trident

move TestTridentTopology.java from  storm.trident to org.apache.storm.trident

NOTE: It should be backported to 1.x-branch.

+1 Nice finding


Refactor SuggestionItem and SuggestionItemImpl

Currently, this is our SuggestionItemImpl:
public class SuggestionItemImpl implements SuggestionItem {
    private String displayText;
    private Runnable action;

    public SuggestionItemImpl(String displayText, Runnable action) {
        this.displayText = displayText;
        this.action = action;
    }

    @Override
    public String getDisplayText() {
        return displayText;
    }

    @Override
    public Runnable getAction() {
        return action;
    }
}

Since in SearchSuggestionCommand we would need to store the number of occurrences of a keyword (can be a sentence) and display it in the View, as @kevinputera suggested we can replace String getDisplayText() with Optional<String> getProperty(String key) and do the key-value mappings at the constructor.

@johannagwan FYI, a refactor by definition shouldn't involve any change in API. This is better framed as "revamp" or "update" or something similar.

@johannagwan FYI, a refactor by definition shouldn't involve any change in API. This is better framed as "revamp" or "update" or something similar.

Oh alright, will change the name!


show system menu when right click titlebar

What I mean is this menu:

I use followng code to show this menu when left-click on titlebar icon
    QObject::connect(mainWindow,
                     &QMainWindow::windowIconChanged,
                     titleBarWidget.iconButton,
                     &QPushButton::setIcon);
    QObject::connect(titleBarWidget.iconButton,
    &QPushButton::clicked, mainWindow, [mainWindow] () {
#ifdef WIN32
        HWND hwnd = (HWND)QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("handle"), mainWindow->windowHandle());
        //mainWindow->winId()
        HMENU systemMenu = ::GetSystemMenu(hwnd, FALSE);
        if (systemMenu) {
            // Open system menu in the left top corner of window.
            double pos_x = static_cast<double>(mainWindow->pos().x()) * mainWindow->devicePixelRatioF();
            double pos_y = static_cast<double>(mainWindow->pos().y() + mainWindow->menuWidget()->height()) * mainWindow->devicePixelRatioF();
            TrackPopupMenu(systemMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON,
                           pos_x, pos_y, NULL,
                           hwnd, 0);
        }
#endif
    });

However I don't know how to show this when user right-click titlebar as well, any idea?

All mouse events will be blocked for areas not added to ignored object list, so seems that I need to modify framelesshelper.cpp, which I have no idea where to get started.

I use followng code to show this menu when left-click on titlebar icon

Your code is correct in principle.

I have no idea where to get started.

Well, last year I tried to add the feature you mentioned to this repo, I spend several months on it, but I failed in the end. The most critical thing is I can't get the context menu message in the native event filter, maybe Qt itself filtered it out. But actually it's achieveable, but it can't be done in the native event filter, you have to do it in the QWidget/QWindow's nativeEvent function. You can try it yourself. Related messages are WM_NCRBUTTONUP, WM_CONTEXTMENU, you just need to judge whether the mouse is in the title bar area first.

seems that I need to modify framelesshelper.cpp

No it's not needed. I've tried it long ago, it will not work. You have to override QWidget/QWindow's nativeEvent to do that.

@maz-1 which includes are needed for this to work? I would like to add context menu to the qmainwindow example
Thank you

@maz-1 which includes are needed for this to work? I would like to add context menu to the qmainwindow example
Thank you

The needed Win32 API is TrackPopupMenu

@JulienMaille You need to do it in the WM_NCRBUTTONUP or WM_CONTEXTMENU

commited :)

@maz-1 which includes are needed for this to work? I would like to add context menu to the qmainwindow example
EDIT: I was able to use your code and show the menu, but clicking on items do not trigger anything (min/max/close)

My previous code does has some problem, you will need something like this:
static inline void displaySystemMenu(HWND hWnd, float pos_x, float pos_y)
{
    HMENU hMenu = ::GetSystemMenu(hWnd, FALSE);
    if (hMenu) {
        MENUITEMINFO mii;
        mii.cbSize = sizeof(MENUITEMINFO);
        mii.fMask = MIIM_STATE;
        mii.fType = 0;
        // update the options
        mii.fState = MF_ENABLED;
        SetMenuItemInfo(hMenu, SC_RESTORE, FALSE, &mii);
        SetMenuItemInfo(hMenu, SC_SIZE, FALSE, &mii);
        SetMenuItemInfo(hMenu, SC_MOVE, FALSE, &mii);
        SetMenuItemInfo(hMenu, SC_MAXIMIZE, FALSE, &mii);
        SetMenuItemInfo(hMenu, SC_MINIMIZE, FALSE, &mii);
        mii.fState = MF_GRAYED;
        WINDOWPLACEMENT wp;
        GetWindowPlacement(hWnd, &wp);
        switch (wp.showCmd) {
            case SW_SHOWMAXIMIZED:
                SetMenuItemInfo(hMenu, SC_SIZE, FALSE, &mii);
                SetMenuItemInfo(hMenu, SC_MOVE, FALSE, &mii);
                SetMenuItemInfo(hMenu, SC_MAXIMIZE, FALSE, &mii);
                SetMenuDefaultItem(hMenu, SC_CLOSE, FALSE);
                break;
            case SW_SHOWMINIMIZED:
                SetMenuItemInfo(hMenu, SC_MINIMIZE, FALSE, &mii);
                SetMenuDefaultItem(hMenu, SC_RESTORE, FALSE);
                break;
            case SW_SHOWNORMAL:
                SetMenuItemInfo(hMenu, SC_RESTORE, FALSE, &mii);
                SetMenuDefaultItem(hMenu, SC_CLOSE, FALSE);
                break;
        }
        LPARAM cmd = TrackPopupMenu(hMenu, (TPM_RIGHTBUTTON | TPM_NONOTIFY | TPM_RETURNCMD),
                                    pos_x, pos_y, NULL, hWnd, NULL);
        if (cmd) {
            PostMessage(hWnd, WM_SYSCOMMAND, cmd, 0);
        }
    }
}

@wangwenx190 shouldn't we call Utilities::showSystemMenu from the same place we test the mouse and report HTCAPTION?

@wangwenx190 shouldn't we call Utilities::showSystemMenu from the same place we test the mouse and report HTCAPTION?

Normally this really should happen in the WM_NCRBUTTONUP block. WM_NCHITTEST will be triggered even if the mouse is hovering

It seems my recent fix prevents this test to be true
https://github.com/wangwenx190/framelesshelper/blob/9904a5077ada12e791807cae1571161b3035c1fe/utilities_win32.cpp#L432

Your fix doesn't seem to be related to this, need further investigate

@JulienMaille  Yes indeed, your code is causing WM_NCRBUTTONUP being skipped, but I won't revert your code, I think the fix is more important than this issue, and this issue seem to can be solved by some other ways, need more investigation though.

I think my code is a workaround. I currently use a different workaround that doesn't break menu. I could PR it it you want

I think my code is a workaround. I currently use a different workaround that doesn't break menu. I could PR it it you want

Sure, bro! I'm eager to know the better workaround! :)

Implemented in 2.0


Deploying an EdgeFunction bound to a CloudFront distribution with a Storage bucket as origin (Pass props for root Stack)

Environment information
System:
  OS: Linux 5.15 Ubuntu 20.04.5 LTS (Focal Fossa)
  CPU: (16) x64 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
  Memory: 12.83 GB / 15.51 GB
  Shell: /bin/bash
Binaries:
  Node: 18.20.3 - ~/.nvm/versions/node/v18.20.3/bin/node
  Yarn: undefined - undefined
  npm: 10.7.0 - ~/.nvm/versions/node/v18.20.3/bin/npm
  pnpm: undefined - undefined
NPM Packages:
  @aws-amplify/backend: 1.0.0
  @aws-amplify/backend-cli: 1.0.1
  aws-amplify: 6.3.5
  aws-cdk: 2.140.0
  aws-cdk-lib: 2.140.0
  typescript: 5.4.5
AWS environment variables:
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables

Description
As the title says, I am trying to create and bind an EdgeFunction to a CloudFront distribution with a Storage S3 bucket (from defineStorage) as origin, through the Amplify backend (from defineBackend).
I tried to use the root node (App) from one of the generated backend resources as the root Construct on a secondary Stack. This is necessary because the us-east-1 region must be explicitly set on the Stack for CDK to accept the EdgeFunction:
Caused By: Error: stacks which use EdgeFunctions must have an explicitly set region
    at EdgeFunction.createCrossRegionFunction (/home/path-to-project/node_modules/aws-cdk-lib/aws-cloudfront/lib/experimental/edge-function.js:1:7079)

Note: The above error would go away with something like aws-cdk/issues/15620, but I don't think that would actually solve the underlying problem. Unless the EdgeFunction deployment would work without the explicit us-east-1 region set, and this is just a semantic check.
Anyway, the EdgeFunction deploys correctly but I can't grant IAM Resource permissions to the function from graphqlApi:
Caused By: Error: Stack "uniqueStackName" cannot reference {sandbox-path/data/amplifyData/GraphQLAPI/Resource[ApiId]} in stack "sandbox-stack/data". Cross stack references are only supported for stacks deployed to the same environment or between nested stacks and their parent stack. Set crossRegionReferences=true to enable cross region references
    at resolveValue (/home/path-to-project/node_modules/aws-cdk-lib/core/lib/private/refs.js:1:2612)

...or set the origin of the CloudFront distribution to the Storage bucket:
Caused By: Error: Resolution error: Resolution error: Resolution error: Resolution error: Cannot use resource 'sandbox-path/storage/appEdgeFunctionStorageCloudFrontOrigin' in a cross-environment fashion, the resource's physical name must be explicit set or use `PhysicalName.GENERATE_IF_NEEDED`.

And if I try to set crossRegionReferences on my secondary Stack:
Cross stack/region references are only supported for stacks with an explicit region defined.
    at resolveValue (/home/path-to-project/node_modules/aws-cdk-lib/core/lib/private/refs.js:1:3420)

Which is a strange error message but I think refers to the fact that the root Stack and therefore all NestedStacks (auth, data, etc) have an undefined region.
There doesn't seem to be a way to pass props to the BackendFactory from defineBackend so I can't explicitly set the region at the top level. I could be missing something but the ability to pass custom props to the root Stack would be a possible solution. Currently the whole tree seems to be initialized as the default value of the app arg in createDefaultStack. Explicitly setting the root Stack region to us-east-1 would allow for the EdgeFunction etc to be deployed in a NestedStack (from backend.createStack) - NestedStacks inherit their region from their parent Stack.
I know that the NextJS version leverages EdgeFunctions for SSR so maybe that deployment backend could be exposed, as an alternate solution, but that's a big maybe as I can't find public code associated with that process.
I'm posting this now in case I've completely missed something obvious and someone can point me in the right direction, but in the meantime I will also start working on a contribution that allows for custom props to be passed to the root Stack. That said, there might be a good reason we can't pass props like region to the root stack due to how Amplify handles the deployment 🤔
For reference this is the relevant slice from backend.ts (immediately after defineBackend):
const apiStack = new Stack(
  backend.data.node.root,
  'uniqueStackName',
  {
    env: {
      region: 'us-east-1'
    },
    //crossRegionReferences: true,
  }
)

const appEdgeFunctionRole = new Role(apiStack, 'appEdgeFunctionRole', {
  roleName: PhysicalName.GENERATE_IF_NEEDED,
  assumedBy: new CompositePrincipal(
    new ServicePrincipal('lambda.amazonaws.com'),
    new ServicePrincipal('edgelambda.amazonaws.com'),
  ),
  managedPolicies: [
    ManagedPolicy.fromAwsManagedPolicyName('AmazonS3FullAccess'),
    ManagedPolicy.fromAwsManagedPolicyName('CloudWatchLogsFullAccess'),
  ],
})

const handlerPath = url.fileURLToPath(new URL('./custom/edge/', import.meta.url))

const appEdgeFunction = new cloudfront.experimental.EdgeFunction(apiStack, 'appEdgeFunction', {
  code: lambda.Code.fromAsset(handlerPath),
  handler: 'index.handler',
  runtime: lambda.Runtime.NODEJS_18_X,
  role: appEdgeFunctionRole,
})

backend.data.resources.graphqlApi.grant(appEdgeFunctionRole, appsync.IamResource.all(), 'appsync:graphql')

new cloudfront.Distribution(apiStack, 'appEdgeFunctionStorageCloudFront', {
  defaultBehavior: {
    origin: new S3Origin(backend.storage.resources.bucket),
    edgeLambdas: [
      {
        functionVersion: appEdgeFunction.currentVersion,
        eventType: cloudfront.LambdaEdgeEventType.VIEWER_REQUEST,
      }
    ],
  },
})

Marking this feature request to expand the backend props


Data cleaning task for যা দেখেছি যা বুঝেছি যা করেছি - chunk 2

This is the data cleanup task for যা দেখেছি যা বুঝেছি যা করেছি - chunk 2.
You can download the text file from here.
After clicking the link above, click 'Download raw file' (the download icon) on the top right corner to download the file to your local machine.
Important
Please follow the instructions in CONTRIBUTING.md to start contributiing. Do not assign the issue to yourself right away and start working on it. If you have any questions about the contribution process or you hit a roadblock, please feel free to reach out to me (@dg1223) or any other team/tech leads by commenting here or on our Whatsapp channel.
Thank you for willing to contribute to this project.

I would like to take this chunk. Please assign.

I would like to take this chunk. Please assign.

done

@mir-abir-hossain instruction 1 updated; instruction 3 removed

Closed after merging #29


[QA] Minigame - Colliders Missing in Various Games Allow Players to Exit Play Area

Explorer Alpha build versions:

v0.33.0

Issue Description:
In the following games, players can exit the play area while playing due to missing colliders on the sides (or front in Math Kittens).

Recall Rush (36,86)
Tower of Hanoi (61,-22)
Math Kittens (-85,-97)

Launch the game.
Move towards the edges of the play area (sides or front).
Exit the play area.

❌ Actual Result
Players can exit the area during gameplay due to missing colliders.
https://github.com/user-attachments/assets/9caf3928-231f-4620-b474-1c1f683247e7
https://github.com/user-attachments/assets/fd3f0c45-ca3f-44ff-b87c-1917a3268c9c
https://github.com/user-attachments/assets/f32bc0ac-6363-4e65-8260-3954e5ba4fdb
✅ Expected Result
Players should not be able to exit the play area at any time during gameplay.


[BUG] Session restoration is empty when used inside a zellij pane

Describe the bug
Saving and restoring sessions works fine outside of Zellij, but when attempting to restore a session within Zellij, it just loads into a blank file. Unsure if this is an issue with Zellij or with auto-session.
To Reproduce
Steps to reproduce the behavior:

Open your preferred terminal (iTerm2, Alacritty, etc.)
Open nvim
Save a session
Restore the session from nvim (not using Zellij), it works fine
Exit nvim
Load zellij
Load nvim within zellij
Restore the session, it appears to just open a blank file under the current working directory.

Expected behavior
Session restoration should work no matter what context nvim is loaded in.
Baseline (please complete the following information):

Result of set sessionoptions?: sessionoptions=blank,buffers,curdir,folds,help,tabpages,winsize,termin a
OS. e.g uname -a: Darwin Kernel Version 23.4.0: Wed Feb 21 21:45:49 PST 2024; root:xnu-10063.101.15~2/RELEASE_ARM64_T6020 arm64
Neovim version nvim --version:

NVIM v0.10.0
Build type: Release
LuaJIT 2.1.1716656478

Config below...
auto-session:

return {
  "rmagatti/auto-session",
  config = function()
    local auto_session = require("auto-session")

    auto_session.setup({
      auto_restore_enabled = false,
      auto_session_suppress_dirs = { "~/", "~/Dev/", "~/Downloads", "~/Documents", "~/Desktop/" },
    })

    local keymap = vim.keymap

    keymap.set("n", "<leader>wr", "<cmd>SessionRestore<CR>", { desc = "Restore session for cwd" }) -- restore last workspace session for current directory
    keymap.set("n", "<leader>ws", "<cmd>SessionSave<CR>", { desc = "Save session for auto session root dir" }) -- save workspace session for current working directory
  end,
}

zellij:
// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true"
keybinds {
    normal {
        // uncomment this and adjust key if using copy_on_select=false
        // bind "Alt c" { Copy; }
    }
    locked {
        bind "Ctrl g" { SwitchToMode "Normal"; }
    }
    resize {
        bind "Ctrl n" { SwitchToMode "Normal"; }
        bind "h" "Left" { Resize "Increase Left"; }
        bind "j" "Down" { Resize "Increase Down"; }
        bind "k" "Up" { Resize "Increase Up"; }
        bind "l" "Right" { Resize "Increase Right"; }
        bind "H" { Resize "Decrease Left"; }
        bind "J" { Resize "Decrease Down"; }
        bind "K" { Resize "Decrease Up"; }
        bind "L" { Resize "Decrease Right"; }
        bind "=" "+" { Resize "Increase"; }
        bind "-" { Resize "Decrease"; }
    }
    pane {
        bind "Ctrl p" { SwitchToMode "Normal"; }
        bind "h" "Left" { MoveFocus "Left"; }
        bind "l" "Right" { MoveFocus "Right"; }
        bind "j" "Down" { MoveFocus "Down"; }
        bind "k" "Up" { MoveFocus "Up"; }
        bind "p" { SwitchFocus; }
        bind "n" { NewPane; SwitchToMode "Normal"; }
        bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
        bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
        bind "x" { CloseFocus; SwitchToMode "Normal"; }
        bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
        bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
        bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
        bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
        bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;}
    }
    move {
        bind "Ctrl h" { SwitchToMode "Normal"; }
        bind "n" "Tab" { MovePane; }
        bind "p" { MovePaneBackwards; }
        bind "h" "Left" { MovePane "Left"; }
        bind "j" "Down" { MovePane "Down"; }
        bind "k" "Up" { MovePane "Up"; }
        bind "l" "Right" { MovePane "Right"; }
    }
    tab {
        bind "Ctrl t" { SwitchToMode "Normal"; }
        bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
        bind "h" "Left" "Up" "k" { GoToPreviousTab; }
        bind "l" "Right" "Down" "j" { GoToNextTab; }
        bind "n" { NewTab; SwitchToMode "Normal"; }
        bind "x" { CloseTab; SwitchToMode "Normal"; }
        bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
        bind "b" { BreakPane; SwitchToMode "Normal"; }
        bind "]" { BreakPaneRight; SwitchToMode "Normal"; }
        bind "[" { BreakPaneLeft; SwitchToMode "Normal"; }
        bind "1" { GoToTab 1; SwitchToMode "Normal"; }
        bind "2" { GoToTab 2; SwitchToMode "Normal"; }
        bind "3" { GoToTab 3; SwitchToMode "Normal"; }
        bind "4" { GoToTab 4; SwitchToMode "Normal"; }
        bind "5" { GoToTab 5; SwitchToMode "Normal"; }
        bind "6" { GoToTab 6; SwitchToMode "Normal"; }
        bind "7" { GoToTab 7; SwitchToMode "Normal"; }
        bind "8" { GoToTab 8; SwitchToMode "Normal"; }
        bind "9" { GoToTab 9; SwitchToMode "Normal"; }
        bind "Tab" { ToggleTab; }
    }
    scroll {
        bind "Ctrl s" { SwitchToMode "Normal"; }
        bind "e" { EditScrollback; SwitchToMode "Normal"; }
        bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
        bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
        bind "j" "Down" { ScrollDown; }
        bind "k" "Up" { ScrollUp; }
        bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
        bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
        bind "d" { HalfPageScrollDown; }
        bind "u" { HalfPageScrollUp; }
        // uncomment this and adjust key if using copy_on_select=false
        // bind "Alt c" { Copy; }
    }
    search {
        bind "Ctrl s" { SwitchToMode "Normal"; }
        bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
        bind "j" "Down" { ScrollDown; }
        bind "k" "Up" { ScrollUp; }
        bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
        bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
        bind "d" { HalfPageScrollDown; }
        bind "u" { HalfPageScrollUp; }
        bind "n" { Search "down"; }
        bind "p" { Search "up"; }
        bind "c" { SearchToggleOption "CaseSensitivity"; }
        bind "w" { SearchToggleOption "Wrap"; }
        bind "o" { SearchToggleOption "WholeWord"; }
    }
    entersearch {
        bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
        bind "Enter" { SwitchToMode "Search"; }
    }
    renametab {
        bind "Ctrl c" { SwitchToMode "Normal"; }
        bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
    }
    renamepane {
        bind "Ctrl c" { SwitchToMode "Normal"; }
        bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
    }
    session {
        bind "Ctrl o" { SwitchToMode "Normal"; }
        bind "Ctrl s" { SwitchToMode "Scroll"; }
        bind "d" { Detach; }
        bind "w" {
            LaunchOrFocusPlugin "session-manager" {
                floating true
                move_to_focused_tab true
            };
            SwitchToMode "Normal"
        }
    }
    tmux {
        bind "[" { SwitchToMode "Scroll"; }
        bind "Ctrl b" { Write 2; SwitchToMode "Normal"; }
        bind "\"" { NewPane "Down"; SwitchToMode "Normal"; }
        bind "%" { NewPane "Right"; SwitchToMode "Normal"; }
        bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
        bind "c" { NewTab; SwitchToMode "Normal"; }
        bind "," { SwitchToMode "RenameTab"; }
        bind "p" { GoToPreviousTab; SwitchToMode "Normal"; }
        bind "n" { GoToNextTab; SwitchToMode "Normal"; }
        bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
        bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
        bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
        bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
        bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
        bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
        bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
        bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
        bind "o" { FocusNextPane; }
        bind "d" { Detach; }
        bind "Space" { NextSwapLayout; }
        bind "x" { CloseFocus; SwitchToMode "Normal"; }
    }
    shared_except "locked" {
        bind "Ctrl g" { SwitchToMode "Locked"; }
        bind "Ctrl q" { Quit; }
        bind "Alt n" { NewPane; }
        bind "Alt i" { MoveTab "Left"; }
        bind "Alt o" { MoveTab "Right"; }
        bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
        bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
        bind "Alt j" "Alt Down" { MoveFocus "Down"; }
        bind "Alt k" "Alt Up" { MoveFocus "Up"; }
        bind "Alt =" "Alt +" { Resize "Increase"; }
        bind "Alt -" { Resize "Decrease"; }
        bind "Alt [" { PreviousSwapLayout; }
        bind "Alt ]" { NextSwapLayout; }
    }
    shared_except "normal" "locked" {
        bind "Enter" "Esc" { SwitchToMode "Normal"; }
    }
    shared_except "pane" "locked" {
        bind "Ctrl p" { SwitchToMode "Pane"; }
    }
    shared_except "resize" "locked" {
        bind "Ctrl n" { SwitchToMode "Resize"; }
    }
    shared_except "scroll" "locked" {
        bind "Ctrl s" { SwitchToMode "Scroll"; }
    }
    shared_except "session" "locked" {
        bind "Ctrl o" { SwitchToMode "Session"; }
    }
    shared_except "tab" "locked" {
        bind "Ctrl t" { SwitchToMode "Tab"; }
    }
    shared_except "move" "locked" {
        bind "Ctrl h" { SwitchToMode "Move"; }
    }
    shared_except "tmux" "locked" {
        bind "Ctrl b" { SwitchToMode "Tmux"; }
    }
}

plugins {
    tab-bar location="zellij:tab-bar"
    status-bar location="zellij:status-bar"
    strider location="zellij:strider"
    compact-bar location="zellij:compact-bar"
    session-manager location="zellij:session-manager"
    welcome-screen location="zellij:session-manager" {
        welcome_screen true
    }
    filepicker location="zellij:strider" {
        cwd "/"
    }
}

// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// Options:
//   - detach (Default)
//   - quit
//
on_force_close "quit"

//  Send a request for a simplified ui (without arrow fonts) to plugins
//  Options:
//    - true
//    - false (Default)
//
// simplified_ui true

// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"

// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd ""

// Toggle between having pane frames around the panes
// Options:
//   - true (default)
//   - false
//
// pane_frames true

// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
//   - true (default)
//   - false
//
auto_layout true

// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
//   - true (default)
//   - false
//
// session_serialization false

// Whether pane viewports are serialized along with the session, default is false
// Options:
//   - true
//   - false (default)
// serialize_pane_viewport true

// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000

// Define color themes for Zellij
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
//
// themes {
//     dracula {
//         fg 248 248 242
//         bg 40 42 54
//         red 255 85 85
//         green 80 250 123
//         yellow 241 250 140
//         blue 98 114 164
//         magenta 255 121 198
//         orange 255 184 108
//         cyan 139 233 253
//         black 0 0 0
//         white 255 255 255
//     }
// }
themes {
	rose-pine {
		bg "#403d52"
		fg "#e0def4"
		red "#eb6f92"
		green "#31748f"
		blue "#9ccfd8"
		yellow "#f6c177"
		magenta "#c4a7e7"
		orange "#fe640b"
		cyan "#ebbcba"
		black "#26233a"
		white "#e0def4"
	}
  gruvbox-dark {
 		fg "#D5C4A1"
 		bg "#282828"
 		black "#3C3836"
 		red "#CC241D"
 		green "#98971A"
 		yellow "#D79921"
 		blue "#3C8588"
 		magenta "#B16286"
 		cyan "#689D6A"
 		white "#FBF1C7"
 		orange "#D65D0E"
 	}
  tokyo-night {
    fg 169 177 214
    bg 26 27 38
    black 56 62 90
    red 249 51 87
    green 158 206 106
    yellow 224 175 104
    blue 122 162 247
    magenta 187 154 247
    cyan 42 195 222
    white 192 202 245
    orange 255 158 100
  }
}

// Choose the theme that is specified in the themes section.
// Default: default
//
theme "rose-pine"

// The name of the default layout to load on startup
// Default: "default"
//
default_layout "dev"

// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"

// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
//   - true (default)
//   - false
//
// mouse_mode false

// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000

// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy"                    // wayland
// copy_command "pbcopy"                     // osx

// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
//   - system (default)
//   - primary
//
// copy_clipboard "primary"

// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false

// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"

// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// Default: false
//
// mirror_session true

// The folder in which Zellij will look for layouts
//
// layout_dir "/path/to/my/layout_dir"

// The folder in which Zellij will look for themes
//
// theme_dir "/path/to/my/theme_dir"

// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// Default: true
//
// styled_underlines false

// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// Default: false
//
// disable_session_metadata true

I just installed zellij and sessions restore normally for me. Can you:

Post your auto-session config
set log_level = debug in your auto-session config and then post the messages you see in :Notifications or :messages

thanks!

I see the updated config. Just to confirm, after starting nvim, you're doing <leader>wr to restore the session, right? And without zellij it restores but under zellij it doesn't?
Unfortunately, it's no reproing for me (meaning the sessions are restored in both cases). Can you add log_level = 'debug', to your config and then post what the log says (it'll either be in :Notifications if you have nvim-notify or in :messages otherwise)
Are you launching nvim differently in any way under zellij?

@cameronr sorry! I posted the wrong config above. Updated. It's a very straightforward config.
:messages output below.

Upon saving the session:
auto-session DEBUG: {
  auto = false,
  sessions_dir = ""
}
auto-session DEBUG: {
  is_empty = true,
  upcoming_session_dir = "\\%Users\\%me\\%Dev\\%App"
}
auto-session DEBUG: get_session_file_name {
  upcoming_session_dir = "\\%Users\\%me\\%Dev\\%App"
}
auto-session DEBUG: not session_name {
  session_name = "\\%Users\\%me\\%Dev\\%App",
  sessions_dir = "\\%Users\\%me\\%Dev\\%App"
}
auto-session DEBUG: session name post-format {
  session_name = "\\%Users\\%me\\%Dev\\%App"
}
auto-session DEBUG: get_session_file_name {
  final_path = "/Users/me/.local/share/nvim/sessions/\\%Users\\%me\\%Dev\\%App.vim",
  upcoming_session_dir = "\\%Users\\%me\\%Dev\\%App"
}
auto-session DEBUG: {
  session_file_name = "/Users/me/.local/share/nvim/sessions/\\%Users\\%me\\%Dev\\%App.vim"
}
auto-session INFO: Session saved at /Users/me/.local/share/nvim/sessions/\%Users\%me\%Dev\%App.vim

Upon restoring the session:
auto-session DEBUG: RestoreSession {
  session_dir = "/Users/me/Dev/App"
}
auto-session DEBUG: Using session DIR
auto-session DEBUG: get_session_file_name {
  session = "/Users/me/Dev/App",
  upcoming_session_dir = "/Users/me/Dev/App"
}
auto-session DEBUG: not session_name {
  session_name = "\\%Users\\%me\\%Dev\\%App",
  sessions_dir = "/Users/me/Dev/App"
}
auto-session DEBUG: session name post-format {
  session_name = "\\%Users\\%me\\%Dev\\%App"
}
auto-session DEBUG: get_session_file_name {
  final_path = "/Users/me/.local/share/nvim/sessions/\\%Users\\%me\\%Dev\\%App.vim",
  upcoming_session_dir = "/Users/me/Dev/App"
}
auto-session DEBUG: { "No session name, getting session file name",
  last_loaded_session_name = "\\%Users\\%me\\%Dev\\%App",
  session_dir = "/Users/me/Dev/App",
  session_file_path = "/Users/me/.local/share/nvim/sessions/\\%Users\\%me\\%Dev\\%App.vim"
}
auto-session DEBUG: {
  last_loaded_session_name = "\\%Users\\%me\\%Dev\\%App",
  last_loaded_session_namelegacy_file_path = "/Users/me/.local/share/nvim/sessions/-Users-me-Dev-App.vim",
  last_loaded_session_namesession_file_path = "/Users/me/.local/share/nvim/sessions/\\%Users\\%me\\%Dev\\%App.vim"
}
auto-session DEBUG: {
  path = "/Users/me/.local/share/nvim/sessions/%Users%me%Dev%App.vim",
  readable = true
}
auto-session INFO: Session restored from /Users/me/.local/share/nvim/sessions/\%Users\%me\%Dev\%App.vim
auto-session DEBUG: {
  content = '{"current":"\\/Users\\/me\\/.local\\/share\\/nvim\\/sessions\\/%Users%me%Dev%App.vim"}'
}
auto-session DEBUG: {
  content = '{"current":"\\/Users\\/me\\/.local\\/share\\/nvim\\/sessions\\/%Users%me%Dev%App.vim"}',
  sessions = {
    current = "/Users/me/.local/share/nvim/sessions/%Users%me%Dev%App.vim"
  }
}
auto-session DEBUG: session control file contents {
  content = '{"current":"\\/Users\\/me\\/.local\\/share\\/nvim\\/sessions\\/%Users%me%Dev%App.vim"}',
  sessions = {}
}
auto-session DEBUG: {
  RESTORED_WITH = "/Users/me/.local/share/nvim/sessions/\\%Users\\%me\\%Dev\\%App.vim"
}

However, it is not in the App directory again once that session is supposedly reloaded.

I recognize the Josean config :)
Thanks for posting those logs. I want to make sure I'm following things.

First, which directory are you creating the session for? It looks like /Users/me/Dev/App, is that right?
After the session is saved, can you post the contents of the session file (/Users/me/.local/share/nvim/sessions/%Users%me%Dev%App.vim)? I want to make sure it actually has buffers in it
Can you post the logs when restoring in the plain terminal (where it works) and when under zellij (where it doesn't)? I want to see if the session is restored in both cases (but the buffer(s) are missing) or it's not restoring for some reason?

thanks for the responses!

You caught me with the Josean config!

That's correct. Note that I've swapped my local device's username and the directory name for obfuscation, but that's the right directory, I just find-replaced the name.
Below (find-replaced as well for consistency):

let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
  let s:wipebuf = bufnr('%')
endif
let s:shortmess_save = &shortmess
if &shortmess =~ 'A'
  set shortmess=aoOA
else
  set shortmess=aoO
endif
badd +0 Dev/App/.ruby-version
argglobal
%argdel
$argadd NvimTree_1
edit Dev/App/.ruby-version
let s:save_splitbelow = &splitbelow
let s:save_splitright = &splitright
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
let &splitbelow = s:save_splitbelow
let &splitright = s:save_splitright
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
exe 'vert 1resize ' . ((&columns * 30 + 80) / 160)
exe 'vert 2resize ' . ((&columns * 129 + 80) / 160)
argglobal
enew
file NvimTree_1
balt Dev/App/.ruby-version
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal nofen
lcd ~/Dev/App
wincmd w
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let &fdl = &fdl
let s:l = 1 - ((0 * winheight(0) + 20) / 41)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 1
normal! 0
lcd ~/Dev/App
wincmd w
2wincmd w
exe 'vert 1resize ' . ((&columns * 30 + 80) / 160)
exe 'vert 2resize ' . ((&columns * 129 + 80) / 160)
tabnext 1
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
  silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20
let &shortmess = s:shortmess_save
let &winminheight = s:save_winminheight
let &winminwidth = s:save_winminwidth
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
  exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
nohlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

Yes! I'll need to send those tomorrow but I'll do it ASAP.

Thanks for the help.

There are some interesting things in that session and I look forward to seeing the logs between the plain terminal run and zellij.
A few more questions for whenever you're able to:

Are you launching nvim the same way in both cases (e.g. just nvim)? It looks like the session was possibly launched with an NvimTree argument?
When you save the session, what does :Telescope buffers (or :ls) show?
When the session is restored, what does :Telescope buffers (or :ls), for both the working case and for the non working case? It looks like the only file in that session is Dev/App/.ruby-version but it looks like it might be 0 length (because of the +0 after badd)?
Do you have NvimTree open when the session is saved? if so, can you try without it open? If that still doesn't work, can you try without NvimTree installed just to see if that changes anything?

thanks!

Thanks for the detailed follow up and glad we got to the bottom of it!
If you want to open NvimTree on restore, you can add this to your auto-session config:
      -- opens NvimTree on Restore and changes to the path for the session
      post_restore_cmds = {
        function()
          local nvim_tree_api = require('nvim-tree.api')
          nvim_tree_api.tree.open()
          nvim_tree_api.tree.change_root(vim.fn.getcwd())
          nvim_tree_api.tree.reload()
        end,
      },

For directory handling, I don't know nvim-tree well but it looks like there are a few possibilities depending on your workflow, maybe setting nvim-tree.actions.change_dir.global would do what you want?

Actually, this might work better, it'll close NvimTree before a session is saved and then reopen it when a session is restored. Work flow would be you're in dir Proj and have a session for it and want to switch projects. so you save your session there, navigate to OtherProj directory, then restore the session there and nvim tree will be restored.
      pre_save_cmds = {
        function()
          local nvim_tree_api = require('nvim-tree.api')
          nvim_tree_api.tree.close()
        end,
      },

      post_restore_cmds = {
        function()
          local nvim_tree_api = require('nvim-tree.api')
          nvim_tree_api.tree.open()
          nvim_tree_api.tree.change_root(vim.fn.getcwd())
          nvim_tree_api.tree.reload()
          vim.notify('post_restore_cmds')
        end,
      },

The biggest downside to that workflow is you'd have to manually save your session in Proj and then manually restore when switching directories. It may be possible to automate it but things can be a bit finicky. If you're interested in something more automatic, can you describe your workflow in more detail and I can see if it's supportable?


Replace serde_urlencoded with serde_qs

Hi,
It looks like serde_urlencoded has not been updated for a long time and cannot serialize nested structures.
There is a replacement that I found working serde_qs replacement.
      #[derive(Debug, PartialEq, Deserialize, Serialize)]
        struct Address {
            city: String,
            postcode: String,
        }
        #[derive(Debug, PartialEq, Deserialize, Serialize)]
        struct QueryParams {
            id: u8,
            name: String,
            address: Address,
            phone: u32,
            user_ids: Vec<u8>,
        }

        let params = QueryParams {
            id: 42,
            name: "Acme".to_string(),
            phone: 12345,
            address: Address {
                city: "Carrot City".to_string(),
                postcode: "12345".to_string(),
            },
            user_ids: vec![1, 2, 3, 4],
        };

        let working = serde_qs::to_string(&params)?;
        let broken = serde_urlencoded::to_string(&params)?; // throws: unsupported value

Encountered the same issue, it refuses to serialize a slice of bytes. Ideally, it would be great to have serde as a feature that would be possible to turn off if not needed and have an option to pass in query params as raw strings, so the burden of urlencoding is on the library user in this case

Bumping this as well, we should be able to serialize nested structs into urls with serde_qs.  For example:
Struct QueryParams {
  some_nested: Option<Vec<String>>;
}

// `/api/v2/entity?some_nested=val1&some_nested=val2`

I'm still not inclined to make this change, see my older comment for why: https://github.com/seanmonstar/reqwest/issues/1079#issuecomment-741206109


Hi, Looks like change another mixamo character not work

I have ROMP driven SMPL model looks OK, but when using CDBA (I using script locally) driven mixamo model, result looks wrong:

I am using this bone mapper in your repo:
bones_mixamo_smpl_mapper = {
    "Hips": "Pelvis",
    "LeftUpLeg": "L_Hip",
    "RightUpLeg": "R_Hip",
    "Spine2": "Spine3",
    "Spine1": "Spine2",
    "Spine": "Spine1",
    "LeftLeg": "L_Knee",
    "RightLeg": "R_Knee",
    "LeftFoot": "L_Ankle",
    "RightFoot": "R_Ankle",
    "LeftToeBase": "L_Foot",
    "RightToeBase": "R_Foot",
    "Neck": "Neck",
    "LeftShoulder": "L_Collar",
    "RightShoulder": "R_Collar",
    "Head": "Head",
    "LeftArm": "L_Shoulder",
    "RightArm": "R_Shoulder",
    "LeftForeArm": "L_Elbow",
    "RightForeArm": "R_Elbow",
    "LeftHand": "L_Wrist",
    "RightHand": "R_Wrist",
    "LeftHandIndex1": "L_Hand",
    "LeftHandMiddle1": "L_Hand",
    "RightHandMiddle1": "R_Hand",
    "RightHandIndex1": "R_Hand",
}
bones_smpl_mixamo_mapper = {v: k for k, v in bones_mixamo_smpl_mapper.items()}
bone_name_from_index_character = {
    k: bones_smpl_mixamo_mapper[v] for k, v in bone_name_from_index.items()
}

Do u know why?
also the hand look not right.

Because the bones' initial orientation is not compatiable with the SMPL.
I have created a dev branch to fix the bones' rest pose.
I will finish it this week.

@yanch2116 thanks. But how did u get your demo works? Your demo character also mixamo.

@jinfagang I found that the mixamo armature's topology is similar with SMPL, so I just transfer SMPL poses to it.  It looks ok but not accurate.

@yanch2116 How to try other character? My above result its not accurate but totally wrong , some people said it was bacuese of init pose not right in this fbx model, what do u think?

The bones' initial orientation is not compatiable, so need to modify first.
https://user-images.githubusercontent.com/38496769/185066005-59bc1c27-1c13-48c4-8333-55a3dfe77332.mp4
I have tried a lot character using mixamo auto-rigger and my new script. You can see the 钟离 in the video.

@yanch2116  So most of mixamo model download direclty from mixamo website need proces first?
What does not compatible mainly means here? what exactly not compatible? How should I download your zhongli model so that I can try on my side?

The bones' initial orientation in SMPL is the same with global coordinate.But when you import mixamo character into Blender, the Blender will set bone's Y-axis along with the bone,so the initial coordinate is not same with global coordinate.
英文不好。大概意思就是你mixamo的fbx导入blender，骨头初始的坐标系的y轴会自动设置为沿着骨头的方向，但是SMPL的骨头初始的坐标系y轴和全局坐标系保持一致，就是这个差别。

zhongli.fbx.zip
试试看能不能驱动，这周我会把东西都更新一下。

@yanch2116 但是我下载了YBot模型，似乎又是可以驱动的，不需要做任何额外处理。你说的fixbones 再上面那个脚本里面还有哪些工作没有完成吗

对，mixamo上有些是和SMPL一样的，我一开始的mixamo的女侠形象就是可以直接驱动的，在blender中看骨头朝向就知道了，如果骨头垂直于手臂，就是可以驱动，如果骨头沿着手臂，就不可以。如果用auto-rigger就全都是沿着手臂的骨架，就需要先处理一下。
fixBones脚本已经完成了，不过整个脚本还有一些东西要更新。

You can now try the Fix Bones  in the addon to correct the bone orientation for some Mixamo characters.

The bones' initial orientation in SMPL is the same with global coordinate.But when you import mixamo character into Blender, the Blender will set bone's Y-axis along with the bone,so the initial coordinate is not same with global coordinate.
英文不好。大概意思就是你mixamo的fbx导入blender，骨头初始的坐标系的y轴会自动设置为沿着骨头的方向，但是SMPL的骨头初始的坐标系y轴和全局坐标系保持一致，就是这个差别。

你好 请问下如果我不想用这种保存fbx的方式 想在代码里完成SMPL 到 mixamo的骨骼转换操作 要怎么做呢

The bones' initial orientation in SMPL is the same with global coordinate.But when you import mixamo character into Blender, the Blender will set bone's Y-axis along with the bone,so the initial coordinate is not same with global coordinate.
英文不好。大概意思就是你mixamo的fbx导入blender，骨头初始的坐标系的y轴会自动设置为沿着骨头的方向，但是SMPL的骨头初始的坐标系y轴和全局坐标系保持一致，就是这个差别。

你好 请问下如果我不想用这种保存fbx的方式 想在代码里完成SMPL 到 mixamo的骨骼转换操作 要怎么做呢

fixbone里面的代码就是转换的

The bones' initial orientation in SMPL is the same with global coordinate.But when you import mixamo character into Blender, the Blender will set bone's Y-axis along with the bone,so the initial coordinate is not same with global coordinate.
英文不好。大概意思就是你mixamo的fbx导入blender，骨头初始的坐标系的y轴会自动设置为沿着骨头的方向，但是SMPL的骨头初始的坐标系y轴和全局坐标系保持一致，就是这个差别。

你好 请问下如果我不想用这种保存fbx的方式 想在代码里完成SMPL 到 mixamo的骨骼转换操作 要怎么做呢

fixbone里面的代码就是转换的

我理解你的意思是在代码里转换mixamo的骨骼轴向从沿着手臂到竖直向上
我的问题是 我在场景下用的人物模型 只能是沿着手臂的轴向 人物骨骼不可以改变 所以我需要调整每一段骨骼的轴角值来匹配沿着手臂的轴向的骨骼


"Linear solver not recognized" when using SCIP

macOS 10.13.4:
I built google or-tools 6.7.2 from source with SCIP, following instructions on documentation page (i.e. make_third party, specifying scip folder in Makefile.local, etc).  When running the examples (from bin folder), integer_programming worked fine for both CBC and SCIP.  However, when using the generated .dylib as a library (in c++ xcode project), CBC works but SCIP does not.  When trying to use SCIP, error generated:
F0716 10:06:04.858498 25363328 linear_solver.cc:394] Linear solver not recognized.
*** Check failure stack trace: ***
I tried this with scip 4.0.0, 4.0.1, and 5.0.1.
Help appreciated!

Hi,
How did you integrate it in your C++ project ? I mean did you use the corresponding compilation flags ?
For example if I run make detect_cc (on debian here)
Relevant info for the C++ build:
PROTOC = LD_LIBRARY_PATH=/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib64:/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib: /usr/local/google/home/corentinl/work/or-tools/dependencies/install/bin/protoc
CCC = g++ -fPIC -std=c++11 -fwrapv
CFLAGS = -O4 -DNDEBUG -I. -Iexamples -Iortools/gen -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include/coin -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include/coin -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include/coin -DUSE_CLP -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include/coin -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include -I/usr/local/google/home/corentinl/work/or-tools/dependencies/install/include/coin -DUSE_CBC -Wno-deprecated -DUSE_GLOP -DUSE_BOP
LDFLAGS = -lz -lrt -lpthread -Wl,-rpath,$ORIGIN -Wl,-rpath,$ORIGIN/../lib -Wl,-rpath,$ORIGIN/../dependencies/install/lib64 -Wl,-rpath,$ORIGIN/../dependencies/install/lib
LINK_CMD = g++ -shared
DEPENDENCIES_LNK = -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lgflags -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lglog -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib/ -lprotobuf -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lCbcSolver -lCbc -lOsiCbc -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lCgl -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lClpSolver -lClp -lOsiClp -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lOsi -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lCoinUtils
SRC_DIR = .
GEN_DIR = ortools/gen
EX_DIR = examples
OBJ_DIR = objs
LIB_DIR = lib
BIN_DIR = bin
prefix = /usr/local
OR_TOOLS_LNK = -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lgflags -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lglog -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib/ -lprotobuf -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lCbcSolver -lCbc -lOsiCbc -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lCgl -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lClpSolver -lClp -lOsiClp -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lOsi -L/usr/local/google/home/corentinl/work/or-tools/dependencies/install/lib -lCoinUtils -L/usr/local/google/home/corentinl/work/or-tools/lib -lortools
OR_TOOLS_LDFLAGS = -lz -lrt -lpthread -Wl,-rpath,$ORIGIN -Wl,-rpath,$ORIGIN/../lib -Wl,-rpath,$ORIGIN/../dependencies/install/lib64 -Wl,-rpath,$ORIGIN/../dependencies/install/lib
OR_TOOLS_LIBS = lib/libortools.so

look at the CFLAGS in your case you should also have a -DUSE_SCIP i.e. you must have this define when compiling in your external project

Thanks for the response,
I don’t have any cflags.  I just linked the 4 .dylibs and added the include directory to include paths.  I do #define USE_(whichever solver i’m using) at the top of my main.cpp file (before includes).  Are there cflags i need to add? Am I setting the project up wrong?  I have been using ortools like this in Xcode projects for a while now using CBC_MIXED_INTEGER and GLOP...is there something else I need to do to get SCIP working?

Ok, I'm only linking the libortools.dylib now, but same problem.  CBC works fine but SCIP gives me the same error as before.
result of otool -L:
@rpath/libortools.dylib (compatibility version 6.7.0, current version 6.7.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)

Concerning issue #759, I ran into exactly the same problem building or-tools-6.10. I was able to build the tools, from source, on a Linux CentOS 7 environment including SCIP 6.0.1 (which I also needed to build from source because the binaries provided from SCIP cannot run in CentOS 7 due to GLIBC incompatibilities.) However, as said, both SCIP 6.0.1 and or-tools 6.10 (cc, dotnet, ...) can be built without any errors. However, when running 'make test_cc USE_SCIP', the error
"Linear solver not recognized using SCIP"
shows up and that portion of the test run is skipped. The question is, is this issue really closed? What is the solution? I am assuming that or-tools were built with the proper libraries (libscip, ...) because there were no complaints after building. Is or-tools using shared libraries? Or is it using static libraries? Should the shared libraries be placed somewhere else than the UNIX_SCIP_DIR/lib?
Your help is highly appreciated.

@GIrisarri can you post the command line of the example you build
e.g. make build SOURCE=examples/cpp/integer_programming.cc
Fist you should define UNIX_SCIP_DIR
https://github.com/google/or-tools/blob/554cbccaa95b4c11eced13f145de1bf468e1f919/makefiles/Makefile.unix.mk#L96-L100
https://github.com/google/or-tools/blob/554cbccaa95b4c11eced13f145de1bf468e1f919/makefiles/Makefile.unix.mk#L129-L136
you can check SWIG is correctly detected using
make detect_port and make detect_cc you should see a -DUSE_SCIP etc...  in CFLAGS,

Thank you very much for your response.
In Makefile.local (after doing make third_party), I defined UNIX_SCIP_DIR and pointed to a directory that contains three other directories (bin, include, lib). These three directories are the same as the SCIP directories provided in the binary distribution of SCIP for CentOS 7, only that they are the result of my source build. or-tools recognizes them without a problem when I do make cc, or make dotnet, ... or-tools  6.10 then builds without any errors (I do make all it reports successful build of all versions.) By the way, I needed to install SWIG from source, latest version. The default version in the CentOS distribution is too old for or-tools 6.10.
The problem I found appeared when I ran: make test_cc USE_SCIP. This compiles all the tests, including the linear programming and the integer programming. Those run fine with CBC/CBL, but failed when attempting to run with SCIP with the above error. The test_cc, I believe, is equivalent to running the command you suggest above for the individual integer_programming case. I have not ran that one but I could try it.  Is this an issue with dynamic libraries (shared libraries?) The error resport, and since the error is reported at the point of trying to use SCIP/SOPLEX, it appears that it is trying to load the shared library at that point and is not finding it. Does that make sense?

@Mizux. Thanks again for the information provided above. I managed to resolve the issue. It appears that google-or builds on Linux (CentOS 7 in my case) use the static libraries (libscip.a, ...) Therefore, I built scip-6.0.1 from source and got the static library for scip. With that, and a rebuild or google-or tools, then all the tests (make test_cc) run and the SCIP solver is used as expected.
Notice that SCIP binaries, however, are not distributed using the static libraries (only shared libraries). Therefore, any one who runs into the same issue will need to build scip from source and expect that the static build is done. Then is a matter of putting the library in the directory pointed to by UNIX_SCIP_DIR.

@GIrisarri we decide to go for the static one since it easier for us to expect a correct package in python and nuget or Java wrapper otherwise we need to deal with keeping the shared library in archive etc...
Last time I tested was SCIP 6.0.0 and CMakeLists.txt and Makefile were both half broken (see patch they provide as emergency fix).
IIRC shared library didn't work on MacOS because they didn't correctly set RPATH and/or PIC in CMAke configuration -> I choose to go for the "working on all platform (more or less)" static library.
I'll try to give a try for the v7.1 to SCIP 6.0.1 see if things are better now (and I should have send a email to SCIP team, too sad they don't have an github mirror with issue tracker :( )


Bad return value when debug info stripped

When generating GLSL on SPIR-V that had debug info stripped, 0 is returned in place of an empty string, causing an exception to be thrown when compiled as debug. Attached is the fix.
fix.txt

Ouch, that's bad. Thanks for the find. Pushed fix.


[SWOC'24] README File Updated!

🛠 Fixes Issue: #34
Type of change ✍

[x] This change requires a documentation update

👨💻 Changes proposed:

Improving and styling the Readme file of the repository.
Adding tags related to repository like number of issues, pull requests, Licence used, Repo size, etc.
Project admin and mentors section.
Styling the about section so that user will attract to read about the project from the main README file.

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.
[x] I have included comments in areas that may be difficult to understand.
[x] My changes have not introduced any new warnings.
[x] I have conducted a self-review of my code.
[x] I am a participant of SWOC'24.

📄 Note to reviewers

I think one issue will be assigned to only one at a time.

@pinak22dhir please review this pr and requested to merge this pr under SWOC'24

@Avdhesh-Varshney  you can assign to 10 people one issue at a time


[Event Request] Database::"Warehouse Shipment Line" - Function CheckSourceDocLineQty - OnCheckSourceDocLineQtyOnBeforeSetQuantityBase

We like to request the following Event:
Object: Database::"Warehouse Shipment Line"
Function: CheckSourceDocLineQty
Publisher Event: OnCheckSourceDocLineQtyOnBeforeSetQuantityBase
Reason: To implement custom business logic
Where is the event placed:
procedure CheckSourceDocLineQty()
var
WhseShptLine: Record "Warehouse Shipment Line";
SalesLine: Record "Sales Line";
PurchaseLine: Record "Purchase Line";
TransferLine: Record "Transfer Line";
ServiceLine: Record "Service Line";
WhseQtyOutstandingBase: Decimal;
QtyOutstandingBase: Decimal;
QuantityBase: Decimal;
IsHandled: Boolean;
begin
IsHandled := false;
OnCheckSourceDocLineQtyOnBeforeSetQuantityBase(Rec, QuantityBase, IsHandled);
if not IsHandled then
if "Qty. (Base)" = 0 then
QuantityBase :=
UOMMgt.CalcBaseQty("Item No.", "Variant Code", "Unit of Measure Code", Quantity, "Qty. per Unit of Measure")
else
QuantityBase := "Qty. (Base)";
Event Code:
[IntegrationEvent(false, false)]
local procedure OnCheckSourceDocLineQtyOnBeforeSetQuantityBase(var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var QuantityBase: Decimal; var IsHandled: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Add E8010 discouraging os.popen() usages

See #5.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build 994176709:
0.0%

Covered Lines:
126

Relevant Lines:
126

💛  - Coveralls


Form options can't be selected sometimes when animations are off

This seems to be a timing issue.  I have a page that queries a web database and during the callback I populate a form with selection options using the database results
With animations turned off, if I navigate quickly to this page then a tap on the select box does nothing.  If I scroll down a little and then tap the select box then the options appear as expected.  (Android 2.1, 2.2 and 2.3)
From testing, scrollTo(0,1) does not appear to be a reliable work-around in this case.
Ideas?

Could you retest and let me know if this is still an issue?

Retested and in my case this appears to be an issue with using .slideDown() with  elements on Android.  Not a jQTouch issue so I'll close.


FIX: Pass sbref files to SyN workflow

Changes proposed in this pull request
The improvements to SDC to detect sbref files and prefer them needed to come with passing sbrefs to the SyN workflow.
Fixes #3046.
Documentation that should be reviewed

@mgxd If you have an opportunity to review this, I would appreciate it. I've tested it with the dataset submitted in #3046, so it works, just needs code review.

This seems fine, but feels dirty accessing a "private" attribute

I would like to get away from this structure entirely in 23.2.x by passing around a dict of workflows (or at least outputnode/buffernodes), but I needed to squeeze this in as a minimal bug-fix and couldn't see another way without replicating the logic.


Logs added to main.py

Logs to determine the workflow status

How can we identify any error scenarios? IMO, we need the logs the most when something is wrong. Say an HTTP call fails, or file read error, etc. Shall we try to identify those error scenarios and log them?

How can we identify any error scenarios? IMO, we need the logs the most when something is wrong. Say an HTTP call fails, or file read error, etc. Shall we try to identify those error scenarios and log them?

I updated the code to log exceptions


Successful synchronous unary-unary calls sometimes block until deadline, then return successfully

I noticed this in python_plugin_test and have been able to reproduce it in early_adopter/implementations_test.
Rather than investigate immediately I'll leave it until the beta API is in place and then look for it there.

It occurs in my test project too!
It really used to make me puzzled for a long time!
Finally I changed my call with
response_future = stub.rpcmethord().async(message, timeout)
reponse = response_future.result()

Retitled - I'm not aware of this happening with asynchronous (Future-returning) calls, only blocking calls.

I believe that this defect is specific to the alpha code will be resolved this week as the beta code goes live. All the tests of the beta code that we currently have check for this problem and do not find it.

Obsolete


Document ComponentMatrix API

ComponentMatrix and ComponentVector are exported functions, but are not mentioned in the API documentation here

You're right, these should have been documented (and have better constructor methods defined). I was just using them as aliases for dispatch, but it's nice to have them as constructors that do dimension checking as well, so I added that feature (with documentation, of course).


✨ Stabilization of NegativeInt.Companion.create* factory functions

📝 Description
We would like to stabilize the create(Number) and the createOrNull(Number) factory functions of the NegativeInt.Companion type.
🔗 Dependencies
This issue is blocked by the following ones:

[x] #350

✅ Checklist

[ ] Remove the experimental annotation from the createOrNull function, update its versioning annotation, update its Kotlin and Java tests and the unreleased changelog.
[ ] Remove the experimental annotation from the create function, update its versioning annotation, update its Kotlin and Java tests and the unreleased changelog.
[ ] Close this issue as completed and update tracking ones if present.

Another issue for this task will be created when ready.


Cask request: Parallels Access

Cask details
Name - Parallels Access
Homepage - http://www.parallels.com/products/access/
License - Commercial
Download URL - http://www.parallels.com/directdownload/pax-agent/mac/
Description - The fastest, simplest, most reliable remote access to your computer from anywhere. Access all your applications, files, and computers in one place.

I tried adding in my own repo, but something with the installer script doesn't appear to be working. If someone could take a look at samshadwell/homebrew-cask@f77c605

@samshadwell Please submit a PR for discussion.

@vitorgalvao , #19954

Sorry, was just trying to avoid submitting a PR for broken code.

Don’t worry, we actually prefer that. If you submit it wit broken code and say “I need help”, more people can actually see it and help. Plus, you’ll get Travis looking at it with every fix.

Closing in favour of https://github.com/caskroom/homebrew-cask/pull/19954.
Either way, we may not be able to do it.


Get MaxHP from fleet data rather than returned API

Try fix #89

KCAPI_E3.zip
My battle log for confirming.


Inconsistent file names on file system vs require statement

Hi there,
I am unable to use react-wobbly-spinner in my project because the latest version on NPM has file name capitalization issues.  See this screenshot:

I was going to make a PR but I don't see this issue when I clone and build this repo, so I think there may be some discrepancy between what is on Github and the latest version on npm.

Thx! I'll take a look.

I published 1.1.0. It should work now. I also updated the codepen to use the latest from NPM and it works.

Awesome, thank you!


chore: fix BeaconConsensusEngineHandle doc

Fixes a cargo doc issue about redundant explicit link targets

closing this, I think https://github.com/paradigmxyz/reth/pull/6499 is just having some cache issues


Offer a peak at the live source code where possible

It would be neat to be able to view the source code along with the documentation.
For example on https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controllerbase.challenge?view=aspnetcore-2.1
Instead of the user having to download the ASPNet MVC project, maybe offer a peak of the Challenge method (or the ControllerBase class).
The method signature is great but being able to view the source code can provide some more insight:
https://github.com/aspnet/Mvc/blob/84c8db5aaeb537118d427c6cd0c653abb06db5d3/src/Microsoft.AspNetCore.Mvc.Core/ControllerBase.cs#L2175

@dend Can take this under consideration?

#log-suggestion @dend

🚀 ATTENTION: Internal request logged.

Duplicate of #433

Great news - the core .NET libraries now have links to source code!
Example: https://learn.microsoft.com/dotnet/api/system.string.chars?view=net-8.0


511 - If cluster symbol inherited from the theme, points/clusters do not display when widget activated

If a point feature layer is configured with clustering enabled, but the cluster symbol is inherited from the theme, that layer does not display on the map when the widget is activated.
Steps to repro:

Using webmap id:9afad08e0eff496688f04cee8decca0e as an example, configure the 511 widget with multiple layers as data sources, including the Cameras layer.

For the Cameras layer, click edit to open the Set Symbol dialog. Check on the option to Enable clustering, then select the second radio button to use the Cluster Symbol from Theme.

Click OK on the Set Symbol panel, then click OK on the Configure 511 panel.

Launch the app and activate the 511 widget.  Note that once the widget is activated, the Cameras layer (clusters or individual points) are no longer visible on the map.

Verified with commit https://github.com/Esri/solutions-webappbuilder-widgets/commit/2f94dbf9f3ee3972ab6aa468d348d705efc61e34.


JAMES-2886 Fix collection handling for PropertiesProvider

Proof that we can now lauch 2 custom routes with webAdmin...
https://user-images.githubusercontent.com/6928740/121112398-8f229a00-c83a-11eb-9ecd-7f81ca145775.mp4
I discovered our property loading was actually flowed...
Review @Arsnael  please...

(Rebased to squash fixups prior merge)


Feat: add alternative choices selection methods

This will likely need refinement and optimisation, so consider this a proposal that I'd like to seek feedback on.
Motivation
SGLang's current choices normalisation method (token length normalised) often performs poorly due to bias towards longer-token options. This arises in cases where the later tokens of an option with many tokens are highly predictable based on its earlier tokens. This is the most succinct example I can come up with that illustrates the flaw, which will trip up even highly capable models:
@sgl.function
def example(s):
    s += sgl.user("What is the capital of France?")
    s += sgl.assistant(sgl.gen("answer", choices=["Paris", "Antidisestablishmentarianism"]))

This PR provides solutions to the above example, and should resolve #523, #608, and possibly other open issues.
Modification
This PR enables the choices normalisation methodology to be configurable, and alongside the existing token length normalised strategy, introduces two new alternatives:

Greedy token selection
Unconditional likelihood normalised, as per this link that @merrymercy shared with me

Both of these implementations probably need to be further refined. One potential issue I've noticed with greedy selection is that it if there are differences in the tokens prepended to the options for token healing purposes, then the selection will be based on this rather than the actual option, which doesn't seem right. It's outside the scope of this PR, but the token healing process in general seems to have an outsized impact on the choices selection.
Checklist

Ensure pre-commit pre-commit run --all-files or other linting tools are used to fix potential lint issues.
Confirm that modifications are covered by complete unit tests. If not, please add more unit tests for correctness.
Modify documentation as needed, such as docstrings or example tutorials.

Really cool to see progress on this issue, as it's a major blocker we're facing. The most effective solution I've found is to use the probability of some kind of end token to distinguish the priority of choices which are prefixes of other choices. It does require me to specify which suffix token(s) to take into account. E.g. if I'm generating a JSON string, I look for a double quote; if I ask the model to answer with only the choice and nothing else, I look for EOT, etc. Would be nice to be able to support that through this same API.

Could you resolve the conflicts? I will review it later this week.

Could you resolve the conflicts? I will review it later this week.

Done — thanks!

Hi @AidanCooper I've fixed the CI issue with the fork. Could you merge the latest main branch? Thanks.

Thanks @Ying1123! The downside to resolving the default behaviour at the API layer is that we can't specify backend-dependent values, but it's workable in this instance.
Thanks for merging this. I think it's possible that the new selection algorithms could be further optimised for real-world use with some further tweaking, but that will be easier done in follow-on PRs.


Mutt mailbox fix

set mbox_type=Maildir
set folder=$HOME/Mail
set spoolfile=+/
set header_cache=~/.cache/mutt

Fixes the Mutt client (at least partially)

This looks good. I'll await secondary approval before merging.


ran into issue with font-awsome and running ng-serve

npm install --save font-awesome
1 error Darwin 16.4.0
32 error argv "/usr/local/Cellar/node/7.7.1/bin/node" "/usr/local/bin/npm" "install" "--save" "font-awesom"
33 error node v7.7.1
34 error npm  v4.1.2
35 error code E404
36 error 404 Registry returned 404 for GET on https://registry.npmjs.org/font-awesom
37 error 404
38 error 404 'font-awesom' is not in the npm registry.
39 error 404 You should bug the author to publish it (or use the name yourself!)
40 error 404 Note that you can also install from a
41 error 404 tarball, folder, http url, or git url.
42 verbose exit [ 1, true ]
error while running server:
ng serve --proxy-config proxy.conf.json
ERROR in ./~/css-loader?{"sourceMap":false,"importLoaders":1}!./~/postcss-loader!./src/styles.css
Module not found: Error: Can't resolve<EMAIL_ADDRESS>in '/Users/saurabh/work/samples/angular_quickstart/celerio-angular-quickstart/quickstart/web/src'
@ ./~/css-loader?{"sourceMap":false,"importLoaders":1}!./~/postcss-loader!./src/styles.css 3:10-201
@ ./src/styles.css
@ multi ./src/styles.css

Thanks for reporting it. I have freezed some version and it should be ok now.


Clean up SocketFinder.findSocket(...) handling

Cleans up SocketFinder.findSocket(...) a bit and simplifies the logic for the simple case of a single address being resolved.
This changes some of the prior functionality though I wouldn't consider it a breaking change as it's not documented functionality and the new approach seems (to me) to be more correct. Previously if a host resolved to both IPv4 and IPv6 addresses, each set would get half the time out and the IPv4 addresses would be attempted first. This PR changes the logic to handle all IP addresses concurrently using the full timeout.
It also centralizes the logic for handling the case where there's a single address. Regardless of JVM type it now attempts to directly connect to it. This changes the behavior for the IBM JDK as previously it would have attempted the NIO approach followed by a normal socket creation upon success. Again this seems like a better choice as the overall logic is simpler and end result is the same.
This PR was coded atop #662. See there for more details on the parent change.

Hi @sehrope ,
Would you mind resolving the conflicts?

@ulvii Done.

One more rebase as dev has been updated since the last one.


PyTorch device assignment.

In general, this package should abstract out device placement as much as possible, leaving it completely in control of the API user. What is the best strategy to achieve this?

One way is to have all pytorch code explicitly call thing.to(device) and set the device in an environment / external variable (or argument passed to function, etc)
I've done this in my DL scripts as follows
GPU = torch.cuda.is_available()
device = torch.device("cuda:0" if GPU else "cpu")

if socket.gethostname() == 'myhostname':
    device = "cpu"

Then later on in my code, I have:
                data = data.to(device)
                label = label.to(device)


Add possibility to add header elements to any request

Hi,
I have improved slumber for my own needs.
I think the change is backward compatible:
For any request you hav now the possibility to specify a new argument:
class Resource(ResourceAttributesMixin, object):
...
def (..., headers=,  **kwargs):
...
Thanks for checking this modification
(of course this is running in my application)
Regards
Christian Arnault

Coverage decreased (-1.1%) to 86.099% when pulling 27c8a711b08cee19e2c005e2009f54ee386f95d5 on ChristianArnault:master into 4c4b7bca2e848848c35cd7317c50d082e2ac1058 on samgiles:master.


fixes #1893 verifyHostname stop working with 1.6.x client after upgra…

…de Undertow

Thanks @stevehu. We have started testing this... will approve when tests come back OK

Testing has come back successful (both negative and positive tests)


Datapack support

Hello.
Does the mod support the use of datapacks to add no recipes ? And if so, is there any documentation ?
Context : Basic Create kinda gets boring to me and I wanted to try something new so I search a Skyblock modpack focused on Create. To my surprise, the few that exist do not run on my computer or are very uncomplete. That's how I started to think about making my own modpack and I started it with Fabric since I'm more experienced than with Forge. I got everything I needed for the first phase, but now I need Zinc and I'm kinda stuck since nothing can give me Zinc. Since I already have a datapack to obtain Dust and Silt from crushing wheel (I made it myself for a previous modpack that wasn't a skyblock), I decide to upgrade it.
I copied the arborescence from the mod .jar and made a version for zinc :
create_enf/data/create_enf/recipes/sieve/ore/zinc_from_gravel.json and basically copied copper_from_gravel.json, replacing fabricaeexnihilo:raw_copper_piece with create:zinc_nugget (I will adjust drop rates later)
The create_enf/data/create_enf/recipes/sieve/ore/zinc_from_gravel.json file contains :
{
  "type": "fabricaeexnihilo:sieve",
  "input": {
    "item": "minecraft:gravel"
  },
  "result": {
    "count": 1,
    "item": "create:zinc_nugget"
  },
  "rolls": {
    "fabricaeexnihilo:diamond_mesh": [
      0.25
    ],
    "fabricaeexnihilo:flint_mesh": [
      0.1
    ],
    "fabricaeexnihilo:iron_mesh": [
      0.15
    ],
    "fabricaeexnihilo:netherite_mesh": [
      0.32
    ]
  },
  "waterlogged": false
}

The previous part of the datapack works fine but I can't get to make it work toe sieve gravel to zinc nuggets.
Am I making something wrong ? Or is there no compatibility with datapacks tet ?
And if so, I can help and make some documentation about it !

Okay, I'm so dumb, the datapack wasn't in correct folder (global datapacks instead of save datapack)
So sorry for all this.


[feature request]: allow developers to easily debug query_builder after pushing to it

Is your feature request related to a problem? Please describe.
I'd like to easily be able to tell what queries I'm running when debugging an issue.
impl UsersFilterInput {
    pub fn build_query(self, query_builder: &mut QueryBuilder<'static, Postgres>) {
        // print a copy-pastable query I can run in my terminal
        println!("{}", query_builder);
    }
}

errors with
error[E0277]: `sqlx::QueryBuilder<'static, sqlx::Postgres>` doesn't implement `std::fmt::Display`
  --> api/src/schema/query/user.rs:62:24
   |
62 |         println!("{}", query_builder);
   |                        ^^^^^^^^^^^^^ `sqlx::QueryBuilder<'static, sqlx::Postgres>` cannot be formatted with the default formatter
   |
   = help: the trait `std::fmt::Display` is not implemented for `sqlx::QueryBuilder<'static, sqlx::Postgres>`, which is required by `&mut sqlx::QueryBuilder<'static, sqlx::Postgres>: std::fmt::Display`
   = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)

Describe the solution you'd like
It'd be nice if I could just print query_builder.query or something like that and see the query that's going to the database.

Is this not sufficient: https://docs.rs/sqlx/latest/sqlx/query_builder/struct.QueryBuilder.html#method.sql

I think that works. Thank you.

Is this not sufficient: https://docs.rs/sqlx/latest/sqlx/query_builder/struct.QueryBuilder.html#method.sql

Actually it would be useful for some of my "extreme" cases to be able to print out the entire formatted sql string. Now it only returns $1, $2, ... as value args where I'd like to see the finished SQL query with the args as values.
Is that possible with the current feature set?


Remaining React 18 changes

[x] Currently, unmount in clientStartup.ts does https://github.com/shakacode/react_on_rails/blob/fa2fe25eb6a749d1605d6aa7abd11ef4f911c9f6/node_package/src/clientStartup.ts#L216
With the new Root API, it should be replaced by root.unmount(), which means we need to store rendered roots. The current approach will not work due to https://github.com/facebook/react/blob/2e0d86d22192ff0b13b71b4ad68fea46bf523ef6/packages/react-dom/src/client/ReactDOMLegacy.js#L391-L401:
if (__DEV__) {
  const isModernRoot =
    isContainerMarkedAsRoot(container) &&
    container._reactRootContainer === undefined;
  if (isModernRoot) {
    console.error(
      'You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' +
        'passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.unmount()?',
    );
  }
}

We should add tests which cover this. (#1466)

[ ] Clarify situation with multiple roots and if we should use createPortal instead. See the discussion starting with https://github.com/shakacode/react_on_rails/pull/1449#issuecomment-1108489890. Also note

identifierPrefix: optional prefix React uses for ids generated by React.useId. Useful to avoid conflicts when using multiple roots on the same page. Must be the same prefix used on the server.

in https://reactjs.org/docs/react-dom-client.html#createroot (the same option is available for hydrateRoot).

[ ] Update places in docs which still use ReactDOM.render.

[ ] Look if we want any changes based on React Router v6.

@tomdracz Is there anything else we need to change for React 18 that I've missed?

@tomdracz And to fix point 1, do you know if it will be enough to store the roots on findContext() when rendering, or can we get different instances of window/global between reactOnRailsPageLoaded and reactOnRailsPageUnloaded?

@alexeyr-ci1, @tomdracz should I push a release?

@justin808 @pulkitkkr's #1455 is almost ready, and I think we'll want a release including it. So I suggest waiting until it's done and making the release after.

@tomdracz Is there anything else we need to change for React 18 that I've missed?

Think that covers it!

@tomdracz And to fix point 1, do you know if it will be enough to store the roots on findContext() when rendering, or can we get different instances of window/global between reactOnRailsPageLoaded and reactOnRailsPageUnloaded?

Not entirely sure on this one but I would expect window/global to be consistent between the two calls. No idea what happens if you bring Turbo to the mix though

@alexeyr-ci1 should I push a new version? or wait? Please check the changelog to see if it's current.

I still think to wait for #1455, unless you want it ASAP. The changelog does need to be updated, but let me do the Popmenu PR first and I'll come back to it.

@justin808 Updated the changelog.

It's actually only used with Turbo, we really need integration tests for it. Added #1468.
@tomdracz Actually, do you know if it should be called on non-Turbo page unload?

I think there's no need. Non Turbo stuff will just reload the page so we should get fresh mounts on new page. Haven't dug into gem internals so that's just an educated guess

@alexeyr-ci1 Should I push a release with React 18 support? We'll also have #1455 hopefully.

Any updates on release? Is it available in npm?

I'm pretty sure this was fixed a long time ago.


Implement Query.Run

This change is

@guerremdq -- the travis build failed due to new incompatibilities in the environment, please rebase to include https://github.com/m-lab/go/pull/175 which should address this issue in the environment.

@stephen-soltesz Looks like the Build in Travis is not triggered , right ?

Yes, I see that too -- I've opened a support ticket with Travis to see if this is a known issue or some recent change. I'll give them another day, if it's no resolved on their end I'll test this change myself. Sorry for the delay.

$ go test -cover=1 .
ok  	github.com/m-lab/go/cloudtest/bqfake	0.135s	coverage: 100.0% of statements


about pretrained wavenet_vocoder?

I downloaded the latest code and trained 118 epochs,  and then downloaded the pre-trained wavnet vocoder(https://github.com/r9y9/wavenet_vocoder/) which trained with LJSpeech, but i could not synthesize audio similar to human voice.  Can you share which pre-trained wavnet vocoder  you used to synthesize the "demo.wav"? Thank you very much!

Hi @cuicp, by any chance could I ask you what is your loss at epoch 118 ?

We used the WaveNet available at https://r9y9.github.io/wavenet_vocoder/
Note that you must adapt the mel output of Tacotron 2 to Ryuchi's mel representation.
Here are some basic guidelines:
# methods from from NVIDIAs repo
mel = torch.load(conditional_path)
mel = dynamic_range_decompression(mel)
mel = mel.cpu().numpy()
mel = mel.transpose()

# methods from from Ryuchi's repo
mel = audio._amp_to_db(mel) - hparams.ref_level_db
if not hparams.allow_clipping_in_normalization:
    assert mel.max() <= 0 and mel.min() - hparams.min_level_db >= 0
mel = audio._normalize(mel)

For generating audio sample with pre-trained wavenet_vocoder, do I need to apply the methods in both repos? or just apply in one of them?

Can you show more details about how to generate mel-spectrograms that can be synthesized by pre-trained wavenet_vocoder? I tried some methods but get only noises. The audio generated by Griffin-Lim sounds good.

@deli666 What exactly do you need?

@cuicp closing. please re-open if needed.


Add Flow app timer extension

Description

A way to control Flow app pomodoro timer in Raycast.
Type of change

New extension

Screencast

https://user-images.githubusercontent.com/36263538/144328280-199b1668-bfae-46c5-98d8-4450f2be741f.mp4
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing

@pernielsentikaer I added some failure toasts for when Flow is not installed

Feel free to publish the extension :)


Fixed error for installation event

fixes #506 . Throws error for events which are not in context.repo()

how about context.repo() is not supported for this event.


Encounters

Closes #69.

Tests are ok. Reduction in coverage is not strictly due to implementations herein; will be addressed by another pr


sassc 2.4.0 will not install in Ubuntu 20.04 LTS

Hello everyone. I am installing my railsapp with twitter-bootstrap-rails as a gem in my Gemfile:
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.7.1'

gem 'puma', '~> 4.1'
gem "twitter-bootstrap-rails"
gem "omniauth-google-oauth2"

# AWS Ruby SDK
gem 'aws-sdk-ec2'

#capybara
gem 'capybara'

#rspec
gem 'rspec'

#rpsec-rails
gem 'rspec-rails'

# devise
gem 'devise'

# whenever
gem 'whenever'

# devise imapable
#gem 'devise_imapable'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '>= <IP_ADDRESS>'

# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'

# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '>= 5'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks', '~> 5'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.7'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

Every time I install using bundle install, my install hangs at Installing sassc 2.4.0 with native extensions. I have removed the Gemfile.lock and tried to install with the Gemfile.lock in place as well. I have received this error:

./scripts/setup-cssp.sh: line 3:    13 Killed                  bundle install
Could not find gem 'sass-rails (>= 5)' in any of the gem sources listed in your Gemfile.
Run bundle install to install missing gems

After receiving this error was where I removed the Gemfile.lock and then produced:

./scripts/setup-cssp.sh: line 3:    13 Killed                  bundle install
Could not find gem 'twitter-bootstrap-rails' in any of the gem sources listed in your Gemfile.
Run bundle install to install missing gems

I understand that the sassc install typically takes a good chunk of time since it can't have libraries linked to it due to the nature of Ruby Gems, but why does the install hang and not proceed? Any help on this would be greatly appreciated. Thanks!
Edit
I forgot to mention my system. I am running on Ubuntu 20.04 LTS within an Ubuntu 20.04 Docker Container.

I have the same issue. Ubuntu 20.04 LTS, new rails project from template. It got stuck on bundle install while compiling native extension for sassc 2.4.0. I changed Gemfile to use gem 'sass-rails', '>= 5.1.0' and it works.

I was able to work around this by using an older version of rails.
Here's the code using rbenv:
gem install rails -v <IP_ADDRESS>
rbenv rehash
rbenv exec rails _<IP_ADDRESS>_ new demoapp
Source: https://gorails.com/setup/ubuntu/20.04#rails

Interesting that those worked for the both of you. I found that this was a memory dump error, where sassc needs at least 1G of ram to install. Since the instance I was installing on had 1G, but was also running a container, I ran out of memory during install, hence the inconsistent results. Finally allowing 2G ram for my machine allowed me to run bundle install with no issues.

Interesting that those worked for the both of you. I found that this was a memory dump error, where sassc needs at least 1G of ram to install.

That's amazing, glad to hear you solved it!
Out of curiosity, which command did you use to return the memory dump error?
On my machine the terminal would just hang 😅

I had kdump configured and it was recovering the system whenever I ran my Bundler.


Add Starter Kit Data Connect

Adding overview, configuration and test dataset pages for Starter Kit Data Connect

deployed to prod


Question: Which client project link is the official one?

The wiki (under Client Configuration) and README.md both point to a gitlab-hosted client project. I'm not sure if those links are outdated, or preferred over the github-hosted one.

This

The Gitlab project is the Client that currently functions properly with Luna (on Windows at least). The GitHub client has not yet been configured for Luna, but I'd like to move to it in the future because its refactored.


fix: updated balance statement url in go example

Context
Hi,
Was running through the get statements go example here when I noticed it wasn't working.
According to the docs the pattern in the example here is deprecated in favor of https://api-docs.wise.com/partners#multi-currency-account-get-statement
Was able to run the example again by making the change to the new URL.

Checklist

[ ] Change meets or does not compromise the Baseline Security Requirements

ok i m rady

@jdgc  I don't know if you can help me

@jdgc Can I send when I get the balance

@jdgc Can I send when I get the balance

@jdgc ok now wahts need too start


feat(automate-release): via PAT

Fixes https://github.com/prisma/vscode/issues/48

Nice scripting! Were you able to test this in some way?

Nice scripting! Were you able to test this in some way?

I tested it all on the older extension via https://github.com/prisma-labs/vscode-graphql/pull/150 :D

Very nice job @divyenduz. This would have taken me way longer to throw together. Thanks for taking this one!

@matthewmueller Thanks for the feedback, super actionable, and acted on already ;)

@matthewmueller Update, went with /bin/sh as GH actions only support POSIX sh.

LGTM 👍


please add a config which can set maximum file size

could you please add a config which can set maximum file size.

could you please add a config which can set maximum file size.

Excuse me，did you find a solution?
Thank you

would be grate to have this option

would be grate to have this option

hi try it：
https://github.com/mzky/utils

WithRotationSize has been there since the beginning, no?
Anyway, this is old, closing for now


Cursor is not set properly so lots of spaces are left out there after showing progress bar

Unlike the filesystem which all the files and directories already exist in our system, SHiPS Azure provider initially does not have any data in the local system to search for . When a user is navigating around, it reaches out to Azure for fetching data and builds up the navigation tree.  In the SHiPS case, when a user cd and then tab, or get-azurerm tab, the progress bar shows up while fetching data. After write-progress completes,  it lefts a large spaces.

Initial Analysis
Both the PowerShell and PSReadline are contributing to this issue.  PowerShell does not set the cursor to the place where it starts while  the PSReadline does not update the cursor position in case the screen has been scrolled up for displaying progress messages.
Steps to reproduce
portal.azure.com
select bash
type pwsh
cd tab
Expected behavior
After write-progress completes the cursor should be the initial command line place, in this case "cd".
Actual behavior
Left lots of spaces used for showing progress bar.
Environment data

6.1.0-preview.2
and
PSReadLine 2.0.0-Beta.1 or PSReadLine 2.0.0-Beta.2

This issue is fixed in 6.1 GA.


Defer python discovery until presubmit task

Our presubmit requires a version of python that is more recent than what
lgtm.com's build environments have installed. LGTM shouldn't be
running the presubmit, but the check will happen regardless of whether
the presubmit is run or not, since the check is in the task closure instead
of in a task action.
Attempt to fix this by moving the check to a "doFirst" (a task action).
This solves the problem when building locally, unfortunately there's no
easy way to test it on lgtm.com, since lgtm.com appears to fail on a
"./gradlew clean" build of the baseline commit before even getting to
the PR and a) we don't seem to retain logs from a successful run and b)
I can't find any documentation of what lgtm.com's autobuild does by
default.
In short, this PR fixes a problem (the build won't run at all on systems
that don't have a recent enough version of python) but there may still
be issues on lgtm.com that will require us to customize the
build_command used.

This change is

If I had to guess LGTM.com is probably calling "gradle build".


v1.0.9 unknown timezone error

@IngmarStein hoping you might have some insight on this issue. Might be something as simple as a missing library. There are apps I use such as the Halloween countdown app that uses time zones. When trying to render, it seems it cannot find the time zones used (ie “America/New_York”). I tried to add tzdata to the dependencies in the Dockerfile but that didn’t seem to fix the issue.

Looks like I figured it out, I added _ “time/tzdata” to the main.go imports and now it seems to work.

Ha, you found it before I even saw the notification :)
The import is the right solution. An alternative would have been building with -tags timetzdata (https://pkg.go.dev/time/tzdata).
Adding tzdata to the Dockerfile didn't work because the final image is built FROM scratch, so it would have been necessary to copy that data from the build to the final image (see https://medium.com/@mhcbinder/using-local-time-in-a-golang-docker-container-built-from-scratch-2900af02fbaf).


Add any algorithm

Create a new file in the format algoName_Language  like merge_sort_in_python.py
Add in the working logic in your fav. programming language

It would be my pleasure if I got assigned to this task .

Thank you. Also adding you as collaborator for the day of.