Error while parsing event data [2019 UDP format]

Hello. I was testing my application, and driving around a circuit (it was Albert Park, Australia). When I entered new lap, telemetry client crashed. I don't think it's a bug in my application, the error output only points at parser itself. I use the latest UDP format, which is sent with 10 Hz frequency. Also, here's the error report I got:
PATH_TO_MY_APP\node_modules\f1-telemetry-client\build\src\parsers\packets\PacketEventDataParser.js:13
                this.uint8('vehicleIdx').float('lapTime');
                                         ^

TypeError: this.uint8(...).float is not a function
    at PacketEventDataParser.unpack2019Format (PATH_TO_MY_APP\node_modules\f1-telemetry-client\build\src\parsers\packets\PacketEventDataParser.js:13:42)
    at new PacketEventDataParser (PATH_TO_MY_APP\node_modules\f1-telemetry-client\build\src\parsers\packets\PacketEventDataParser.js:34:18)
    at F1TelemetryClient.parseMessage (PATH_TO_MY_APP\node_modules\f1-telemetry-client\build\src\index.js:74:28)
    at Socket.<anonymous> (PATH_TO_MY_APP\node_modules\f1-telemetry-client\build\src\index.js:93:45)
    at Socket.emit (events.js:196:13)
    at UDP.onMessage [as onmessage] (dgram.js:849:8)

Feel free to ask about more details, if you need.
Cheers.
Edit 1:
@jonybur, I've noticed, that this error occurrs after finishing 1st lap of the session (time trial, to be precise).
Edit 2:
The error actually occurrs every time you finish a lap.

Thank you for the heads up. I will try to reproduce ASAP to come up with a fix for this.

Thank you for the heads up. I will try to reproduce ASAP to come up with a fix for this.

No problem. Glad that I can help

Hi @Dnalop,
I've been testing the client with the following game settings:

UDP Broadcast Mode: On
UDP Port: 20777
UDP Send Rate: 10Hz
UDP Format: 2019

From what Im seeing, you're getting a crash when the game sends a FastestLap event code, since that's the only time the parser has to unpack the buffer using this.uint8('vehicleIdx').float('lapTime')
I have tried getting FastestLaps events (event code FTLP), and I still could not get the crash that you're getting.
It would be very valuable if you could please try to reproduce the bug once more but running the telemetry client in the branch "bug/ftlp-crash" that I just created.
Running on this branch, every time the FastestLap event triggers you will get a console log that reads something like Buffer:  {"type":"Buffer","data":[227,7,1,4,1,3,8,34,107,18,10,175,41,8,226,189,114,67,219,10,0,0,0,70,84,76,80,0,40,177,109,66]}
With that buffer dump I will be able to deduce why the parser is failing.
Thank you

Hi @Dnalop,
I've been testing the client with the following game settings:

UDP Broadcast Mode: On
UDP Port: 20777
UDP Send Rate: 10Hz
UDP Format: 2019

From what Im seeing, you're getting a crash when the game sends a FastestLap event code, since that's the only time the parser has to unpack the buffer using this.uint8('vehicleIdx').float('lapTime')
I have tried getting FastestLaps events (event code FTLP), and I still could not get the crash that you're getting.
It would be very valuable if you could please try to reproduce the bug once more but running the telemetry client in the branch "bug/ftlp-crash" that I just created.
Running on this branch, every time the FastestLap event triggers you will get a console log that reads something like Buffer: {"type":"Buffer","data":[227,7,1,4,1,3,8,34,107,18,10,175,41,8,226,189,114,67,219,10,0,0,0,70,84,76,80,0,40,177,109,66]}
With that buffer dump I will be able to deduce why the parser is failing.
Thank you

Alright, I'll try to reproduce the bug, and see what happens. And btw. when the lap wasn't fastest, the error never occurred.

Hi @Dnalop ,
I've been working on this issue and I was (finally) able to reproduce it. Apparently the transpiled version of the cleint throws this error when trying to unpack float('lapTime') from the FTLP package. In other words, the only way to reproduce this error is when using this library in another application. For now, in order to avoid getting the crash, you can just take out the .float('lapTime') from the unpack2019Format method. I will keep trying to fix this and I will update the library ASAP when I am able to find a solution to this problem.
Thank you

@Dnalop,
I was finally able to fix this pesky bug, and it is no longer present in v0.1.11, which is being merged right now.
Thank you!

Hi @Dnalop ,
I've been working on this issue and I was (finally) able to reproduce it. Apparently the transpiled version of the cleint throws this error when trying to unpack float('lapTime') from the FTLP package. In other words, the only way to reproduce this error is when using this library in another application. For now, in order to avoid getting the crash, you can just take out the .float('lapTime') from the unpack2019Format method. I will keep trying to fix this and I will update the library ASAP when I am able to find a solution to this problem.
Thank you

Alright. I actually stumbled across this error while using my own app, not the playground itself. I actually never use neither event data nor lap time. I'm also comfortable using last year's format (it should still work, shouldn't it). I'll see, if the same error occurrs while using it.

@Dnalop,
I was finally able to fix this pesky bug, and it is no longer present in v0.1.11, which is being merged right now.
Thank you!

No problem, glad that I could help 😄


Unable to change edited menu in Navigation

Yet a new french problem : there is a script error if leaveConfirmation message contains a single quote (which is the case with French translation).
Because of this error, auto post-back script don't work, and so, we can't select the menu to edit.

Fixed by #5282


Provide reference implementation

Comment on this as a todo list to track what is currently missing on the reference implementation:

[ ] HSM (Mocking)
[ ] Spiffe Setup
[ ] Sample SDK / Testing to the example server

@dingelish Feel free to let me know if I miss something here~ Thanks a lot

sample sdk: Rust, Golang and Java

change it according your

change it according your

^^^
hand shaking..


Making the pcb and case Alps friendly.

Hi there!
I'm trying to modify the case cuts to be an hybrid MX/Alps compliant and they only seem to need a little tweak: the upper right screw hole is too close to the right switch and i guess it will overlap with an Alps switch wing.
Yo can seem my edits there in the upper top piece.
I think the hole in the pcb hole is it wide enough and could work as is and maybe only moving the hole a milimeter to the left on the cases pieces will do.
Could you consider these kind of changes on a future release or variation of the pcb?

I Finally did and testet my own tweaks for this board and other splits, they are here: https://github.com/oprietop/Split-Keyboard-Cases
Here are some pics of the top and bottom clearance with alps switches.


Using LGB External Memory Version?

Using LGB External Memory Version?

Closing due to inactivity and lack of context information. Feel free to reopen with more details.


Missing dependency hyprlang when hyprlang is installed on Fedora 39

Compiling works normally until this:
-- Checking for modules 'wayland-client;wayland-protocols;cairo;pango;pangocairo;libjpeg;libwebp;hyprlang>=0.2.0'
--   Package 'hyprlang', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:607 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
  CMakeLists.txt:44 (pkg_check_modules)

-- Configuring incomplete, errors occurred!
make[1]: *** [Makefile:60: release] Error 1
make[1]: Leaving directory '~/.build/hyprpaper'
make: *** [Makefile:70: all] Error 2

despite hyprlang is installed with version 0.2.1^1.git25da080-1.fc39 from the ordinary fedora repos.
Is this an issue with hyprpaper or with fedora's packaging?

fedora's packaging. Means the .pc file is not installed in a directory pkg-config searches.

To work around this would I need to install hyprland manually?

you mean hyprlang? if the package is broken, yea

yeah, ok thanks


Use a refresh_token to gain a new access token

I am trying to understand how to get a new access token from a cached refresh_token for OneDrive for Business. The documentation does not describe what API calls need to made to accomplish this. The following instructions explain the process but not how to do this with the API.
I am having a problem mapping your 4 steps to APIcalls? It very confusing having an API but all the documentaion refers to URIs?
can you reword the following four steps to the specific API calls required?
1: Initial OAuth authorization through login.windows.net/oauth2/authorize?client_id={clientId}&scope=MyFiles.Write&response_type=code&redirect_uri={appUrl}
This returns back to you an authorization code.
2: Redeem the authorization code for an access_token and refresh_token for the Office Discovery Service
POST to login.windows.net/common/oauth2/token with the following form parameters:
client_id, client_secret, redirect_uri, code, grant_type, and resource=https://api.office.com/discovery/
Note: You need to have the value of resource be exactly “https://api.office.com/discovery/” with the trailing /, otherwise the access token you get back won’t be valid.
3: Store the refresh_token securely for later. Even though you specify the resource for the discovery service in the request, the refresh_token value you receive is good for any service you’ve been authorized to access by the user. That means this refresh_token will get you into the OneDrive for Business, you just need to redeem it with the proper resource value later.
4: Use the access_token from #2 to make a request to the discovery service to find the OneDrive for Business URL:
GET https://api.office.com/discovery/v1.0/me/services
Authorization: Bearer {access_token}

The API call is an HTTP request you need to make, which is described here: https://dev.onedrive.com/auth/aad_oauth.htm#step-4-redeem-refresh-token-for-an-access-token-to-call-onedrive-api
If you are using one of the OneDrive SDKs then this step should be taken care of for you. Are you using an SDK or using the REST API directly?

Yes, I am trying to use the OneDriveSdk.dll oneDrivesdk.windowsForms.dll
                this.oneDriveClient = BusinessClientExtensions.GetActiveDirectoryClient(FormBrowser.AadClientId, FormBrowser.AadReturnUrl);
            }
        }

        try
        {
            if (!this.oneDriveClient.IsAuthenticated)
            {
                await this.oneDriveClient.AuthenticateAsync();

This piece of code is doing the authentication when I select the “sign in to aad” option in the sample code and it works
But I cannot figure out how to save the refresh token and then use it to request a new  access token.
From: Ryan Gregg<EMAIL_ADDRESS>Sent: Wednesday, May 25, 2016 1:22 PM
To: OneDrive/onedrive-api-docs<EMAIL_ADDRESS>Cc: Bill Pickowicz<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [OneDrive/onedrive-api-docs] Use a refresh_token to gain a new access token (#372)
The API call is an HTTP request you need to make, which is described here: https://dev.onedrive.com/auth/aad_oauth.htm#step-4-redeem-refresh-token-for-an-access-token-to-call-onedrive-api
If you are using one of the OneDrive SDKs then this step should be taken care of for you. Are you using an SDK or using the REST API directly?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com/OneDrive/onedrive-api-docs/issues/372#issuecomment-221643590

I have been trying to follow the instructions in your link but this does not seem to be working for me
https://login.microsoftonline.com/common/oauth2/Token?client_id=e1801d98-8aef-4d5d-b4cc-0634c828d31a&redirect_uri=https://license.omtool.com/redirect/&grant_type=refresh_token&refresh_token=AAABAAAAiL9Kn2Z27UubvWFPbm0gLczBe6UACW7fX1WypUgtWRetX7XHp9JrAq5XUFHDICbqZ2FJhMznHaOwmcq-aU6w8kGGoGLg-wGa0b2e4n5wWR3JXAx6jV6gVeFhsc-KA6N2zwBzbLXR5oz3J-GpaVK1W8ruIxcCOx2OHqwMgmiQD853ilkOKQfKezPFm8_YQnja6XOykZDEm_PsWh5xvTEtfk-_ppl9aJSwdNrCHlsuhJNuyW1hqc_-mK1Lod8HgO_Jo9BDYk2Zv6256ONvIkHvhEtqcaZVWmIMmDKME0gkKdWHGgV8yA0qqB88LvgIxIUOywDzF-_kka38gTdUdwbZOAgWCn2euDEgOjPWlYIArnXsB3Kr19iYAoJCkazfaNzzjghRFkMY5PPPiUc0aD63jdy9cpPDYUVO57bOWFUQhQ9vBr43h0VaUpwA2cnYjRKni5_AFzhGYJnwxCSxp4pH_czLMqqnZG7qaYy0kzHlR-IVQW8b6GRu2D8PE66hcY-Sw2YQGGUdMPxym3BB_tFxqebiyqYI2ZWhf699BvhqVG3XUMFLz98Tkp0D1k02oRTnbSlEkA11CV2RQfXgkfNvOOR5DFSN4kImxs1kdzx3U9sQNfqC8XwWgNUQCgpAEJiBFtGDMItZttYk0LQGb9HlhNNMFZs8PE9u6bLWij4PoEsgAA&resource=https://omtool.sharepoint.com/
From: Ryan Gregg<EMAIL_ADDRESS>Sent: Wednesday, May 25, 2016 1:22 PM
To: OneDrive/onedrive-api-docs<EMAIL_ADDRESS>Cc: Bill Pickowicz<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [OneDrive/onedrive-api-docs] Use a refresh_token to gain a new access token (#372)
The API call is an HTTP request you need to make, which is described here: https://dev.onedrive.com/auth/aad_oauth.htm#step-4-redeem-refresh-token-for-an-access-token-to-call-onedrive-api
If you are using one of the OneDrive SDKs then this step should be taken care of for you. Are you using an SDK or using the REST API directly?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com/OneDrive/onedrive-api-docs/issues/372#issuecomment-221643590

@opicko, we've just pushed a new version of the OneDriveSDK package that supports initializing a OneDrive for Business client using a refresh token. You can do this using BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync().
As for retrieving refresh token from a previous authentication request, this should be set in client.AuthenticationProvider.CurrentAccountSession.RefreshToken, if it was returned by the first authenticate call.

Gina,
Can you provide a fragment of how this call is made? The following snippet
Complains “IOneDriveCLient” does not contain a definition for “GetAwaiter”
       await this.oneDriveClient = BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync(
                        new BusinessAppConfig
                        {
                            ActiveDirectoryAppId = AadClientId,
                            ActiveDirectoryReturnUrl = AadReturnUrl,
                        }, m_sRefreshToken);

Bill
From: Gina<EMAIL_ADDRESS>Sent: Wednesday, May 25, 2016 8:51 PM
To: OneDrive/onedrive-api-docs<EMAIL_ADDRESS>Cc: Bill Pickowicz<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [OneDrive/onedrive-api-docs] Use a refresh_token to gain a new access token (#372)
@opickohttps://github.com/opicko, we've just pushed a new version of the OneDriveSDK package that supports initializing a OneDrive for Business client using a refresh token. You can do this using BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync().
As for retrieving refresh token from a previous authentication request, this should be set in client.AuthenticationProvider.CurrentAccountSession.RefreshToken, if it was returned by the first authenticate call.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHubhttps://github.com/OneDrive/onedrive-api-docs/issues/372#issuecomment-221749461

@opicko, you'll want to await the async method and not the client:
this.oneDriveClient = await BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync(
new BusinessAppConfig
{
ActiveDirectoryAppId = AadClientId,
ActiveDirectoryReturnUrl = AadReturnUrl,
}, m_sRefreshToken);

Gina,
I have modified FormBrowser.cs and added a RefreshSignIn() method and added my hard coded values required to do a refresh from token signin. I still get an “authentication failure”.
How long does the refresh_token last?
Bill
From: Gina<EMAIL_ADDRESS>Sent: Wednesday, May 25, 2016 8:51 PM
To: OneDrive/onedrive-api-docs<EMAIL_ADDRESS>Cc: Bill Pickowicz<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [OneDrive/onedrive-api-docs] Use a refresh_token to gain a new access token (#372)
@opickohttps://github.com/opicko, we've just pushed a new version of the OneDriveSDK package that supports initializing a OneDrive for Business client using a refresh token. You can do this using BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync().
As for retrieving refresh token from a previous authentication request, this should be set in client.AuthenticationProvider.CurrentAccountSession.RefreshToken, if it was returned by the first authenticate call.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHubhttps://github.com/OneDrive/onedrive-api-docs/issues/372#issuecomment-221749461
// ------------------------------------------------------------------------------
//  Copyright (c) 2015 Microsoft Corporation
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.
// ------------------------------------------------------------------------------
namespace OneDriveApiBrowser
{
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.OneDrive.Sdk;
using Microsoft.OneDrive.Sdk.WindowsForms;
public partial class FormBrowser : Form
{
    private const string AadClientId = "e1801d98-8aef-4d5d-b4cc-0634c828d31a";
    private const string AadReturnUrl = "https://license.omtool.com/redirect";

    private const string MsaClientId = "000000004C10F00C";
    private const string MsaReturnUrl = "https://login.live.com/oauth20_desktop.srf";

    private static readonly string[] Scopes = { "onedrive.readwrite", "wl.signin" };

    private const int UploadChunkSize = 10 * 1024 * 1024;       // 10 MB
    private IOneDriveClient oneDriveClient { get; set; }
    private Item CurrentFolder { get; set; }
    private Item SelectedItem { get; set; }

    private OneDriveTile _selectedTile;

    public FormBrowser()
    {
        InitializeComponent();
    }

    private void ShowWork(bool working)
    {
        this.UseWaitCursor = working;
        this.progressBar1.Visible = working;

    }

    private async Task LoadFolderFromId(string id)
    {
        if (null == this.oneDriveClient) return;

        // Update the UI for loading something new
        ShowWork(true);
        LoadChildren(new Item[0]);

        try
        {
            var expandString = this.oneDriveClient.ClientType == ClientType.Consumer
                ? "thumbnails,children(expand=thumbnails)"
                : "thumbnails,children";

            var folder =
                await this.oneDriveClient.Drive.Items[id].Request().Expand(expandString).GetAsync();

            ProcessFolder(folder);
        }
        catch (Exception exception)
        {
            PresentOneDriveException(exception);
        }

        ShowWork(false);
    }

    private async Task LoadFolderFromPath(string path = null)
    {
        if (null == this.oneDriveClient) return;

        // Update the UI for loading something new
        ShowWork(true);
        LoadChildren(new Item[0]);

        try
        {
            Item folder;

            var expandValue = this.oneDriveClient.ClientType == ClientType.Consumer
                ? "thumbnails,children(expand=thumbnails)"
                : "thumbnails,children";

            if (path == null)
            {
                folder = await this.oneDriveClient.Drive.Root.Request().Expand(expandValue).GetAsync();
            }
            else
            {
                folder =
                    await
                        this.oneDriveClient.Drive.Root.ItemWithPath("/" + path)
                            .Request()
                            .Expand(expandValue)
                            .GetAsync();
            }

            ProcessFolder(folder);
        }
        catch (Exception exception)
        {
            PresentOneDriveException(exception);
        }

        ShowWork(false);
    }

    private void ProcessFolder(Item folder)
    {
        if (folder != null)
        {
            this.CurrentFolder = folder;

            LoadProperties(folder);

            if (folder.Folder != null && folder.Children != null && folder.Children.CurrentPage != null)
            {
                LoadChildren(folder.Children.CurrentPage);
            }
        }
    }

    private void LoadProperties(Item item)
    {
        this.SelectedItem = item;
        objectBrowser.SelectedItem = item;
    }

    private void LoadChildren(IList<Item> items)
    {
        flowLayoutContents.SuspendLayout();
        flowLayoutContents.Controls.Clear();

        // Load the children
        foreach (var obj in items)
        {
            AddItemToFolderContents(obj);
        }

        flowLayoutContents.ResumeLayout();
    }

    private void AddItemToFolderContents(Item obj)
    {
        flowLayoutContents.Controls.Add(CreateControlForChildObject(obj));
    }

    private void RemoveItemFromFolderContents(Item itemToDelete)
    {
        flowLayoutContents.Controls.RemoveByKey(itemToDelete.Id);
    }

    private Control CreateControlForChildObject(Item item)
    {
        OneDriveTile tile = new OneDriveTile(this.oneDriveClient);
        tile.SourceItem = item;
        tile.Click += ChildObject_Click;
        tile.DoubleClick += ChildObject_DoubleClick;
        tile.Name = item.Id;
        return tile;
    }

    void ChildObject_DoubleClick(object sender, EventArgs e)
    {
        var item = ((OneDriveTile)sender).SourceItem;

        // Look up the object by ID
        NavigateToFolder(item);
    }
    void ChildObject_Click(object sender, EventArgs e)
    {
        if (null != _selectedTile)
        {
            _selectedTile.Selected = false;
        }

        var item = ((OneDriveTile)sender).SourceItem;
        LoadProperties(item);
        _selectedTile = (OneDriveTile)sender;
        _selectedTile.Selected = true;
    }

    private void FormBrowser_Load(object sender, EventArgs e)
    {

    }

    private void NavigateToFolder(Item folder)
    {
        Task t = LoadFolderFromId(folder.Id);

        // Fix up the breadcrumbs
        var breadcrumbs = flowLayoutPanelBreadcrumb.Controls;
        bool existingCrumb = false;
        foreach (LinkLabel crumb in breadcrumbs)
        {
            if (crumb.Tag == folder)
            {
                RemoveDeeperBreadcrumbs(crumb);
                existingCrumb = true;
                break;
            }
        }

        if (!existingCrumb)
        {
            LinkLabel label = new LinkLabel();
            label.Text = "> " + folder.Name;
            label.LinkArea = new LinkArea(2, folder.Name.Length);
            label.LinkClicked += linkLabelBreadcrumb_LinkClicked;
            label.AutoSize = true;
            label.Tag = folder;
            flowLayoutPanelBreadcrumb.Controls.Add(label);
        }
    }

    private void linkLabelBreadcrumb_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        LinkLabel link = (LinkLabel)sender;

        RemoveDeeperBreadcrumbs(link);

        Item item = link.Tag as Item;
        if (null == item)
        {

            Task t = LoadFolderFromPath(null);
        }
        else
        {
            Task t = LoadFolderFromId(item.Id);
        }
    }

    private void RemoveDeeperBreadcrumbs(LinkLabel link)
    {
        // Remove the breadcrumbs deeper than this item
        var breadcrumbs = flowLayoutPanelBreadcrumb.Controls;
        int indexOfControl = breadcrumbs.IndexOf(link);
        for (int i = breadcrumbs.Count - 1; i > indexOfControl; i--)
        {
            breadcrumbs.RemoveAt(i);
        }
    }

    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void UpdateConnectedStateUx(bool connected)
    {
        signInAadToolStripMenuItem.Visible = !connected;
        signInMsaToolStripMenuItem.Visible = !connected;
        signOutToolStripMenuItem.Visible = connected;
        flowLayoutPanelBreadcrumb.Visible = connected;
        flowLayoutContents.Visible = connected;
    }

    private async void signInAadToolStripMenuItem_Click(object sender, EventArgs e)
    {
       //     await this.SignIn(ClientType.Business);
            await RefreshSignIn();
    }

    private async void signInMsaToolStripMenuItem_Click(object sender, EventArgs e)
    {
        await this.SignIn(ClientType.Consumer);
    }

    private const string myAadClientId = "e1801d98-8aef-4d5d-b4cc-0634c828d31a";
    private const string myAadReturnUrl = "https://license.omtool.com/redirect";

//        private const string sDefaultRefreshToken = "AAABAAAAiL9Kn2Z27UubvWFPbm0gLe6f8TGi5rambqBZiaitHK5zkwHVKDsN7ikbYHkIX6O5FJVqW_DSeYy4smLdvYb-dEam0hGBwtkuobdLM3nFc0XP0P1FtVhu2Vk5hGcXyoEKyPZx0cF0JmO3R0BT7W_tAVVeCCV68qZkyW83OuLrX6z6o1rhVoFZ-tUD03Go7-fu2zpXXvK7xfsAJF6I49a3kHmj-G_qWp_pwuGsRq_D0vfzZjVBTHzSGJ7CJHwz01WPgCe2j3jhR1N-RYrBL_0r9oi8pW-Ij_a1fAOaxtrutgo8cGCavqA2Td9GRyLQRpVN-6p3k6eS-Eo3kw1XKN83f_w2kFCLRLcxIdrgBiufDjtJiBsNii5O7Xmlpf2vUtqATOo3gME22CWlmmzvZLT51Ve0tPkcuntSYj5LrAr0szLLTdv6TbZ95P99JTgrmlTiGgzFGd9BOIzAyKl1axgLKRnyyMpSkIIqKlHOFgAou1j0exE-M1McOIMwbR93y1E6gE1KMLEA7pGC7urwVLGpKSjWCZKQF3fWRpnVn4q9Fil-3pKGQ328zqW1W0U5biLDFBAkjq9pXQsNMTkj2o3-6o1I4HG43lOPxX_GNYMWMzJacLSnhHdkd-r7QUyAxP_ubK2itj1xQlNf159yhnK0qfbl_MlTTDNruQwrhnoibZQNNX79PO7B7h-mtXxDCGhCe7v6weGfGN2sADUUGj60gyAA";
private const string sDefaultRefreshToken = "AAABAAAAiL9Kn2Z27UubvWFPbm0gLbUArNPlZW9UMYFDY36f79TphvVVTxtpHxdAR7Lbl9-Tp0FO5eQDnYUB3vG14M5w7xhEK4mBzJ2nM2sMJEv3Ixt6D9snkfB6pNKXJDVPvGJCDIAsWAXxI5Fk-4PqZaPyfubIbthzI_tbrmxeAcXXvNNHxAfWNBXPMpnFNCj3_Pi2HmouR-RRm1BFhdt8D2D_-ohtgoY1wNR3nkFaEWb02gTvYw3iUhrMIpv7nrNfXUPxlfLMi6Bp52jbONw8lQE0ngRhsHR3r9sW-oOX1NO0lCFvHo53zE_dvCAT5whVfadDDJyquGdEgJVdHmrDCyBcM4pNasjNtMG-46wVWsMLSzG6IIACFkbAN1CXoMx_ZokSn7JCH-MkOfI_ZWV3yC0g5Zspu_Kf9QFCj9FPAQo3Rf8Wary4Fk4Q5nsJOc_XzrslDogw2JyJGBt6QA8lp9BCcmbOiPyXLJzhxtqcfXzjJba1XzfeK8nXNSsZ1stZeJcDyOHdlqF1JXd4kPxDOg3XIYIDGj2yfPYBBS5c4vHkWup5fguwCv7xruHewgtNdlGTzUE33dW3eQq0RdUX-IVPPiaR6DqZdeLoSWel7bik9KbKZzYsqFOXI0r_6ErbXaRhI7PNVCkIlQsdLejupMZbnRiNqcfV52vhr5LzEBDXhg7ArAtI9qZgyieBhHuPO2_A0fKATXWBM3oUQuwFES3hkyAA";
    private async Task RefreshSignIn()
{

    try
    {
            if (this.oneDriveClient == null)
            {
                this.oneDriveClient = await BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync(
                     new BusinessAppConfig
                     {
                         ActiveDirectoryAppId = myAadClientId,
                         ActiveDirectoryReturnUrl = myAadReturnUrl,
                         ActiveDirectoryServiceResource = "https://omtool-my.sharepoint.com/_api/v2.0/me",
                     },
                     sDefaultRefreshToken);
            }

            await LoadFolderFromPath();

        UpdateConnectedStateUx(true);
    }
    catch (OneDriveException exception)
    {
        // Swallow authentication cancelled exceptions, but reset the client
        if (!exception.IsMatch(OneDriveErrorCode.AuthenticationCancelled.ToString()))
        {
            if (exception.IsMatch(OneDriveErrorCode.AuthenticationFailure.ToString()))
            {
                MessageBox.Show(
                    "Authentication failed",
                    "Authentication failed",
                    MessageBoxButtons.OK);

                ((OneDriveClient)this.oneDriveClient).Dispose();
                this.oneDriveClient = null;
            }
            else
            {
                PresentOneDriveException(exception);
            }
        }
        else
        {
            ((OneDriveClient)this.oneDriveClient).Dispose();
            this.oneDriveClient = null;
        }
    }
}
private async Task SignIn(ClientType clientType)
    {
        if (this.oneDriveClient == null)
        {
            this.oneDriveClient = clientType == ClientType.Consumer
                ? OneDriveClient.GetMicrosoftAccountClient(
                    FormBrowser.MsaClientId,
                    FormBrowser.MsaReturnUrl,
                    FormBrowser.Scopes,
                    webAuthenticationUi: new FormsWebAuthenticationUi())
                : BusinessClientExtensions.GetClient(
                    new BusinessAppConfig
                    {
                        ActiveDirectoryAppId = FormBrowser.AadClientId,
                        ActiveDirectoryReturnUrl = FormBrowser.AadReturnUrl,
                    });
        }

        try
        {
            if (!this.oneDriveClient.IsAuthenticated)
            {
                await this.oneDriveClient.AuthenticateAsync();
            }

            await LoadFolderFromPath();

            UpdateConnectedStateUx(true);
        }
        catch (OneDriveException exception)
        {
            // Swallow authentication cancelled exceptions, but reset the client
            if (!exception.IsMatch(OneDriveErrorCode.AuthenticationCancelled.ToString()))
            {
                if (exception.IsMatch(OneDriveErrorCode.AuthenticationFailure.ToString()))
                {
                    MessageBox.Show(
                        "Authentication failed",
                        "Authentication failed",
                        MessageBoxButtons.OK);

                    ((OneDriveClient)this.oneDriveClient).Dispose();
                    this.oneDriveClient = null;
                }
                else
                {
                    PresentOneDriveException(exception);
                }
            }
            else
            {
                ((OneDriveClient)this.oneDriveClient).Dispose();
                this.oneDriveClient = null;
            }
        }
    }

    private async void signOutToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (this.oneDriveClient != null)
        {
            await this.oneDriveClient.SignOutAsync();
            ((OneDriveClient)this.oneDriveClient).Dispose();
            this.oneDriveClient = null;
        }

        UpdateConnectedStateUx(false);
    }

    private System.IO.Stream GetFileStreamForUpload(string targetFolderName, out string originalFilename)
    {
        OpenFileDialog dialog = new OpenFileDialog();
        dialog.Title = "Upload to " + targetFolderName;
        dialog.Filter = "All Files (*.*)|*.*";
        dialog.CheckFileExists = true;
        var response = dialog.ShowDialog();
        if (response != DialogResult.OK)
        {
            originalFilename = null;
            return null;
        }

        try
        {
            originalFilename = System.IO.Path.GetFileName(dialog.FileName);
            return new System.IO.FileStream(dialog.FileName, System.IO.FileMode.Open);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error uploading file: " + ex.Message);
            originalFilename = null;
            return null;
        }
    }

    private async void simpleUploadToolStripMenuItem_Click(object sender, EventArgs e)
    {
        var targetFolder = this.CurrentFolder;

        string filename;
        using (var stream = GetFileStreamForUpload(targetFolder.Name, out filename))
        {
            if (stream != null)
            {
                string folderPath = targetFolder.ParentReference == null
                    ? "/drive/items/root:"
                    : targetFolder.ParentReference.Path + "/" + Uri.EscapeUriString(targetFolder.Name);
                var uploadPath = folderPath + "/" + Uri.EscapeUriString(System.IO.Path.GetFileName(filename));

                try
                {
                    var uploadedItem =
                        await
                            this.oneDriveClient.ItemWithPath(uploadPath).Content.Request().PutAsync<Item>(stream);

                    AddItemToFolderContents(uploadedItem);

                    MessageBox.Show("Uploaded with ID: " + uploadedItem.Id);
                }
                catch (Exception exception)
                {
                    PresentOneDriveException(exception);
                }
            }
        }
    }

    private async void simpleIDbasedToolStripMenuItem_Click(object sender, EventArgs e)
    {
        var targetFolder = this.CurrentFolder;

        string filename;
        using (var stream = GetFileStreamForUpload(targetFolder.Name, out filename))
        {
            if (stream != null)
            {
                try
                {
                    var uploadedItem =
                        await
                            this.oneDriveClient.Drive.Items[targetFolder.Id].ItemWithPath(filename).Content.Request()
                                .PutAsync<Item>(stream);

                    AddItemToFolderContents(uploadedItem);

                    MessageBox.Show("Uploaded with ID: " + uploadedItem.Id);
                }
                catch (Exception exception)
                {
                    PresentOneDriveException(exception);
                }
            }
        }
    }

    private async void createFolderToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FormInputDialog dialog = new FormInputDialog("Create Folder", "New folder name:");
        var result = dialog.ShowDialog();
        if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(dialog.InputText))
        {
            try
            {
                var folderToCreate = new Item { Name = dialog.InputText, Folder = new Folder() };
                var newFolder =
                    await this.oneDriveClient.Drive.Items[this.SelectedItem.Id].Children.Request()
                        .AddAsync(folderToCreate);

                if (newFolder != null)
                {
                    MessageBox.Show("Created new folder with ID " + newFolder.Id);
                    this.AddItemToFolderContents(newFolder);
                }
            }
            catch(OneDriveException oneDriveException)
            {
                if (oneDriveException.IsMatch(OneDriveErrorCode.InvalidRequest.ToString()))
                {
                    MessageBox.Show(
                        "Please enter a valid folder name.",
                        "Invalid folder name",
                        MessageBoxButtons.OK);

                    dialog.Dispose();
                    this.createFolderToolStripMenuItem_Click(sender, e);
                }
                else
                {
                    PresentOneDriveException(oneDriveException);
                }
            }
            catch (Exception exception)
            {
                PresentOneDriveException(exception);
            }
        }
    }

    private static void PresentOneDriveException(Exception exception)
    {
        string message = null;
        var oneDriveException = exception as OneDriveException;
        if (oneDriveException == null)
        {
            message = exception.Message;
        }
        else
        {
            message = string.Format("{0}{1}", Environment.NewLine, oneDriveException.ToString());
        }

        MessageBox.Show(string.Format("OneDrive reported the following error: {0}", message));
    }

    private async void deleteSelectedItemToolStripMenuItem_Click(object sender, EventArgs e)
    {
        var itemToDelete = this.SelectedItem;
        var result = MessageBox.Show("Are you sure you want to delete " + itemToDelete.Name + "?", "Confirm Delete", MessageBoxButtons.YesNo);
        if (result == System.Windows.Forms.DialogResult.Yes)
        {
            try
            {
                await this.oneDriveClient.Drive.Items[itemToDelete.Id].Request().DeleteAsync();

                RemoveItemFromFolderContents(itemToDelete);
                MessageBox.Show("Item was deleted successfully");
            }
            catch (Exception exception)
            {
                PresentOneDriveException(exception);
            }
        }
    }

    private async void getChangesHereToolStripMenuItem_Click(object sender, EventArgs e)
    {
        try
        {
            var result =
                await this.oneDriveClient.Drive.Items[this.CurrentFolder.Id].Delta(null).Request().GetAsync();

            Console.WriteLine(result);
        }
        catch (Exception ex)
        {
            PresentOneDriveException(ex);
        }
    }

    private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {

    }

    private async void openFromOneDriveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        var cleanAppId = "0000000040131ABA";
        var result = await OneDriveSamples.Picker.FormOneDrivePicker.OpenFileAsync(cleanAppId, true, this);

        try
        {
            var pickedFilesContainer = await result.GetItemsFromSelectionAsync(this.oneDriveClient);

            ProcessFolder(pickedFilesContainer);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

        //// Do something with the picker result we got
        //var pickedFiles = await result.GetSelectionResponseAsync();
        //if (pickedFiles == null)
        //{
        //    MessageBox.Show("Error picking files.");
        //    return;
        //}

        //StringBuilder builder = new StringBuilder();
        //builder.AppendFormat("You selected {0} files\n", pickedFiles.Length);
        //foreach (var file in pickedFiles)
        //{
        //    builder.AppendLine(file.name);
        //}

        //MessageBox.Show(builder.ToString());
    }

    private async void saveSelectedFileToolStripMenuItem_Click(object sender, EventArgs e)
    {
        var item = this.SelectedItem;
        if (null == item)
        {
            MessageBox.Show("Nothing selected.");
            return;
        }

        var dialog = new SaveFileDialog();
        dialog.FileName = item.Name;
        dialog.Filter = "All Files (*.*)|*.*";
        var result = dialog.ShowDialog();
        if (result != System.Windows.Forms.DialogResult.OK)
            return;

        using (var stream = await this.oneDriveClient.Drive.Items[item.Id].Content.Request().GetAsync())
        using (var outputStream = new System.IO.FileStream(dialog.FileName, System.IO.FileMode.Create))
        {
            await stream.CopyToAsync(outputStream);
        }
    }
}

}

this.oneDriveClient = await BusinessClientExtensions.GetSilentlyAuthenticatedClientAsync()
when I make the above call I get the following exception?
AADSTS50001: The application named https://omtool-my.sharepoint.com/_api/v2.0/me was not found in the tenant named 0fc1435a-1295-4804-882b-c99004d550b5.  This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant.  You might have sent your authentication request to the wrong tenant.
Trace ID: 28f04c41-b023-4ccb-896f-b9583caaac62
Correlation ID: 90c32405-8009-4462-b35f-5c0b0f1fbd02
Timestamp: 2016-06-01 17:51:43Z
Where does the tenant come from I don't provide it in the call?

After following up offline, this was due to using an incorrect service resource ID. Closing issue.

Hello Gina,
Is that possible to get OneDriveClient object with "refresh token"or "access token" instead of using the authentication process on Android device by java code?
Because user has already login my web server, so I can have these two tokens from backend server. And I would like to retrieve the user data from OneDrive.
I know it is not directly related to the topic here, just really want to know by the way.
Thank you a lot in advance.
Odee


Update Unity.gitignore

Added "vscode" folder for ide Visual Studio Code
Reasons for making this change:
Many people use Visual Studio Code to develop on Unity3D

@jvin042 thanks for the contribution!
I'm going to close out this PR as we have an existing Global/VisualStudioCode.gitignore for our VSCode template which shows what can be committed and shared.


Symbol to distinguish untracked local branch

Hi,
This might be not an issue, because I am not yet familiar with all the fine config of zsh-git-prompt. Is there a way to tell if a branch is not yet pushed to remote?
git ch -b MyNewBranch
echo "Hello" > hello.txt
git commit -am "add new file"

The prompt would look like (MyNewBranch|✔) which hints that the branch in sync with remote. In fact this branch is only local, untracked and not yet pushed to remote.
Would it be OK to make another symbol for untracked branch? Like a red checkmark?

The original repository is not maintained anymore.
Using the new fork (https://github.com/zsh-git-prompt/zsh-git-prompt) it should appear as [MyNewBranch L|…1]. Otherwise you can create an issue there.

Thanks very much @thomasrebele for directing me to the new fork. The issue is indeed fixed in the new fork.


[extractor/xvideos] Fixes 404 Issue Currently Present On XVIDEOS.COM (Issue #30271)

This simple addition of '0' fixes the 404 issues many are having with downloading videos from xvideos.com. Tested on linux, windows, and macOS.
Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
A small change in the way the web server is handling URLs caused the parser to interpret valid URLs as 404. Adding zero to the end of URL parser string to allow the porn to continue flowing freely! This enables the new format on xvideos.com website to work as intended with youtube-dl.
Tested with Linux, Windows, macOS.

Hi there,
I'm happy to withdraw my merge, but it just seemed like the previous fix had issues. I did indeed notice the other PR, but I made sure to test across win/*nix/macOS and verify no issues, while the other PR seemed to have some problems (at least when I took a quick glance at the thread originally)
That said, both fixes are indeed basically the same, it just seemed like submitting a more clean approach with multi-platform testing confirmed was possibly a cleaner approach.
Again, I can withdraw if you'd rather I do that, just trying to help!
Cheers

Duplicate of #30278.

thanks
works
cheers

It's just confusing to have the same fix.

[ ] Yah!

Ok

Thank you, it works. This should be merged.


Instances stuck in "stopping" state with exception - java.lang.IllegalStateException: Attempt to cancel when process is still transitioning

Build from master - Aug1
Instances are stuck in "stopping" state forever . "java.lang.IllegalStateException: Attempt to cancel when process is still transitioning" exception seen in logs:
The services that these instances belong to are in "Removed" state.
mysql> select id,state,name from instance where id = 2882;
+------+----------+------------------------------------+
| id   | state    | name                               |
+------+----------+------------------------------------+
| 2882 | stopping | test427569_test133814_test539859_1 |
+------+----------+---------------
mysql> select service_id, instance_id from service_expose_map where instance_id=2882;
+------------+-------------+
| service_id | instance_id |
+------------+-------------+
|        630 |        2882 |
+------------+-------------+
1 row in set (0.01 sec)
mysql> select name,id,state from service where id = 630;
+------------+-----+---------+
| name       | id  | state   |
+------------+-----+---------+
| test133814 | 630 | removed |
+------------+-----+---------+
1 row in set (0.00 sec)
mysql>
2015-07-31 16:00:12,251 ERROR [:] [] [] [] [utorService-193] [i.c.p.e.e.i.ProcessEventListenerImpl] Unknown exception running process [instance.stop:75510] on [2782] java.lang.IllegalStateExceptio
n: Attempt to cancel when process is still transitioning
        at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.runDelegateLoop(DefaultProcessInstanceImpl.java:194) ~[cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.executeWithProcessInstanceLock(DefaultProcessInstanceImpl.java:161) ~[cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$1.doWithLock(DefaultProcessInstanceImpl.java:110) ~[cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl$1.doWithLock(DefaultProcessInstanceImpl.java:107) ~[cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.engine.process.impl.DefaultProcessInstanceImpl.execute(DefaultProcessInstanceImpl.java:107) ~[cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.engine.eventing.impl.ProcessEventListenerImpl.processExecute(ProcessEventListenerImpl.java:66) ~[cattle-framework-engine-0.5.0-SNAPSHOT.jar:na]
        at sun.reflect.GeneratedMethodAccessor471.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_79]
        at io.cattle.platform.eventing.annotation.MethodInvokingListener$1.doWithLockNoResult(MethodInvokingListener.java:76) [cattle-framework-eventing-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:7) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.LockCallbackNoReturn.doWithLock(LockCallbackNoReturn.java:3) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.AbstractLockManagerImpl$3.doWithLock(AbstractLockManagerImpl.java:40) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.LockManagerImpl.doLock(LockManagerImpl.java:33) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:13) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.lock.impl.AbstractLockManagerImpl.lock(AbstractLockManagerImpl.java:37) [cattle-framework-lock-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.eventing.annotation.MethodInvokingListener.onEvent(MethodInvokingListener.java:72) [cattle-framework-eventing-0.5.0-SNAPSHOT.jar:na]
        at io.cattle.platform.eventing.impl.AbstractThreadPoolingEventService$2.doRun(AbstractThreadPoolingEventService.java:135) [cattle-framework-eventing-0.5.0-SNAPSHOT.jar:na]
        at org.apache.cloudstack.managed.context.NoExceptionRunnable.runInContext(NoExceptionRunnable.java:13) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
        at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
        at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
        at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:108) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
        at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
        at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) [cattle-framework-managed-context-0.5.0-SNAPSHOT.jar:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_79]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_79]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]

@sangeethah is setup still around? This error msg just indicates that the instance is stuck in stopping state, but doesn't tell the reason. I need to look at the logs to find out more.

Logs are not available from the setup anymore.
I will attach the logs when I see this issue again.

@sangeethah sure, please reassign it back to me once more logs are available.

https://www.dropbox.com/s/echoy2uygy99a9z/setup.log?dl=0
I believe this may be the same error. I'm not sure if the out of memory exception at the end is related...

After increasing the RAM on the server, it looks like the last exception was not the root cause of the error. However, it may have cause the server to crash in an irrecoverable state.

@sangeetha I believe this issue is fixed on master and will be in v0.36.  We need to open a separate issue that long running failing task consume too much memory.

@ibuildthecloud  @willseward #1954 is logged to track the issue with rancher server running out of memory because of long running failing tasks.

Should be fixed in v0.36 as per @ibuildthecloud comment; @sangeethah could you please retest?

This issue is not seen when running automation runs where environment deletion gets done on every successful test execution.


input data

Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.

Thank you.
I fixed that, and added a test for it in the json_schemas.ipynb.
From: chongshuang2021 @.>
Sent: Monday, September 16, 2024 8:39 PM
To: MarcMeketonVillanova/2024_RAS_PSC @.>
Cc: Subscribed @.***>
Subject: [EXTERNAL] [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.
mistake.png (view on web)https://github.com/user-attachments/assets/413852be-90f6-4be7-87f5-a1d2bb1ae816
—
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYJJYX6GMTRZUIWSFTZW5225AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUZDSNZSG44DOOA.
You are receiving this because you are subscribed to this thread.Message ID<EMAIL_ADDRESS>

Dear Sir,
We also discovered a minor issue with a parameter in our algorithm. Initially, we did not consider that the number of tracks might exceed 10. In the new version, we have adjusted its value to accommodate wide datasets. Please see the attachment.
Before running our code, please rename the input file using the format as, example_xx_inputs, where xx represents the name of the dataset.
I'm sorry to trouble you.
-----原始邮件-----
发件人: "Marc Meketon" @.>
发送时间: 2024-09-17 11:53:03 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC @.>
抄送: chongshuang2021 @.>, Author @.>
主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
Thank you.
I fixed that, and added a test for it in the json_schemas.ipynb.
From: chongshuang2021 @.>
Sent: Monday, September 16, 2024 8:39 PM
To: MarcMeketonVillanova/2024_RAS_PSC @.>
Cc: Subscribed @.***>
Subject: [EXTERNAL] [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.
mistake.png (view on web)https://github.com/user-attachments/assets/413852be-90f6-4be7-87f5-a1d2bb1ae816
—
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYJJYX6GMTRZUIWSFTZW5225AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUZDSNZSG44DOOA.
You are receiving this because you are subscribed to this thread.Message ID<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC

OK.  Will pass that along to the competition chairs.
From: chongshuang2021 @.>
Sent: Tuesday, September 17, 2024 12:02 AM
To: MarcMeketonVillanova/2024_RAS_PSC @.>
Cc: Marc Meketon @.>; Comment @.>
Subject: [EXTERNAL] Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Dear Sir,
We also discovered a minor issue with a parameter in our algorithm. Initially, we did not consider that the number of tracks might exceed 10. In the new version, we have adjusted its value to accommodate wide datasets. Please see the attachment.
Before running our code, please rename the input file using the format as, example_xx_inputs, where xx represents the name of the dataset.
I'm sorry to trouble you.
-----原始邮件-----
发件人: "Marc Meketon"<EMAIL_ADDRESS>发送时间: 2024-09-17 11:53:03 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>抄送: chongshuang2021<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
Thank you.
I fixed that, and added a test for it in the json_schemas.ipynb.
From: chongshuang2021<EMAIL_ADDRESS>Sent: Monday, September 16, 2024 8:39 PM
To: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [EXTERNAL] [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from @.@.mailto:***<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.
mistake.png (view on web)https://github.com/user-attachments/assets/413852be-90f6-4be7-87f5-a1d2bb1ae816
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYJJYX6GMTRZUIWSFTZW5225AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUZDSNZSG44DOOA.
You are receiving this because you are subscribed to this thread.Message ID: @.@.mailto:***<EMAIL_ADDRESS>―
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1#issuecomment-2354457944, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZ7W3BFLNMID7DCNHWDZW6STLAVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJUGQ2TOOJUGQ.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

I do not have access to MATLAB (unlike Python, Java, C#, etc., you need a license for MATLAB).
Can you run these two examples for us and report the CPU time?
From: chongshuang2021 @.>
Sent: Tuesday, September 17, 2024 12:02 AM
To: MarcMeketonVillanova/2024_RAS_PSC @.>
Cc: Marc Meketon @.>; Comment @.>
Subject: [EXTERNAL] Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Dear Sir,
We also discovered a minor issue with a parameter in our algorithm. Initially, we did not consider that the number of tracks might exceed 10. In the new version, we have adjusted its value to accommodate wide datasets. Please see the attachment.
Before running our code, please rename the input file using the format as, example_xx_inputs, where xx represents the name of the dataset.
I'm sorry to trouble you.
-----原始邮件-----
发件人: "Marc Meketon"<EMAIL_ADDRESS>发送时间: 2024-09-17 11:53:03 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>抄送: chongshuang2021<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
Thank you.
I fixed that, and added a test for it in the json_schemas.ipynb.
From: chongshuang2021<EMAIL_ADDRESS>Sent: Monday, September 16, 2024 8:39 PM
To: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [EXTERNAL] [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from @.@.mailto:***<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.
mistake.png (view on web)https://github.com/user-attachments/assets/413852be-90f6-4be7-87f5-a1d2bb1ae816
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYJJYX6GMTRZUIWSFTZW5225AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUZDSNZSG44DOOA.
You are receiving this because you are subscribed to this thread.Message ID: @.@.mailto:***<EMAIL_ADDRESS>―
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1#issuecomment-2354457944, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZ7W3BFLNMID7DCNHWDZW6STLAVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJUGQ2TOOJUGQ.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

Dear Meketon,
We have processed three datasets, and the output results in the required format are included in the attachment. We set a runtime of 3 minutes and obtained feasible, high-quality solutions. Below is a summary of the results:

For Dataset 1, which contains 11 wagons and 5 tracks, our solution requires 14 movements, with a total time cost of 7,926 seconds.
For Dataset 2, which contains 100 wagons and 12 tracks, our solution requires 134 movements, with a total time cost of 65,287 seconds.
For Dataset 3, which contains 108 wagons and 5 tracks, our solution requires 78 movements, with a total time cost of 57,296 seconds.

Please let us know if you need any further details.
-----原始邮件-----
发件人: "Marc Meketon" @.>
发送时间: 2024-09-17 18:11:04 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC @.>
抄送: chongshuang2021 @.>, Author @.>
主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
I do not have access to MATLAB (unlike Python, Java, C#, etc., you need a license for MATLAB).
Can you run these two examples for us and report the CPU time?
From: chongshuang2021 @.>
Sent: Tuesday, September 17, 2024 12:02 AM
To: MarcMeketonVillanova/2024_RAS_PSC @.>
Cc: Marc Meketon @.>; Comment @.>
Subject: [EXTERNAL] Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Dear Sir,
We also discovered a minor issue with a parameter in our algorithm. Initially, we did not consider that the number of tracks might exceed 10. In the new version, we have adjusted its value to accommodate wide datasets. Please see the attachment.
Before running our code, please rename the input file using the format as, example_xx_inputs, where xx represents the name of the dataset.
I'm sorry to trouble you.
-----原始邮件-----
发件人: "Marc Meketon"<EMAIL_ADDRESS>发送时间: 2024-09-17 11:53:03 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>抄送: chongshuang2021<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
Thank you.
I fixed that, and added a test for it in the json_schemas.ipynb.
From: chongshuang2021<EMAIL_ADDRESS>Sent: Monday, September 16, 2024 8:39 PM
To: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [EXTERNAL] [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from @.@.mailto:***<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.
mistake.png (view on web)https://github.com/user-attachments/assets/413852be-90f6-4be7-87f5-a1d2bb1ae816
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYJJYX6GMTRZUIWSFTZW5225AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUZDSNZSG44DOOA.
You are receiving this because you are subscribed to this thread.Message ID: @.@.mailto:***<EMAIL_ADDRESS>―
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1#issuecomment-2354457944, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZ7W3BFLNMID7DCNHWDZW6STLAVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJUGQ2TOOJUGQ.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC

Two items:
(1):  There was no attachment of the solution.  When you send out the solutions, please also send it to my official “Villanova” email<EMAIL_ADDRESS>?
(2):  While I never used matlab, I believe you had the same costing error as I discovered this morning in my Example_1.xlsx code.  In the official writeup, Section 5, had the first term as D/2/sm where D is the track length (in kilometers).  I believe in your code below, you used D/sm because that was used in the Excel Example 1 file.  However, the D/2/sm is correct.  (the 1000, 3600 terms in your writeup are correct:  track length was in meters, so track length / 1000 is in kilometers, and the 3600 translates KPH to KPS (kilometers per second).

I updated the GitHub site with the correct Excel formula

Please change those two lines and re-run, and please send the solutions.
function move_cost=Move_cost(data,ladder_distance,move_info)
% INPUT is move_info, stands for one move step, origin, destination, and number of wagons
% OUTPUT is time cost
move_num=size(move_info,1);
move_step_cost=zeros(move_num,1);
for i=1:move_num
if move_info(i,1)==0
track_time1=data.track_lengths_m(move_info(i,2)) /data.parameters.track_speed_kph/10003600;
ad_const_time1=data.parameters.track_speed_kphdata.parameters.alpha_a/3600;
track_time2=0;
ad_const_time2=0;
elseif move_info(i,2)==0
track_time1=0;
ad_const_time1=0;
track_time2=data.track_lengths_m(move_info(i,1))/data.parameters.track_speed_kph/10003600;
ad_const_time2=data.parameters.track_speed_kphdata.parameters.alpha_d/3600;
else
track_time1=data.track_lengths_m(move_info(i,1))/data.parameters.track_speed_kph/10003600;
ad_const_time1=data.parameters.track_speed_kphdata.parameters.alpha_a/3600;
track_time2=data.track_lengths_m(move_info(i,2))/data.parameters.track_speed_kph/10003600;
ad_const_time2=data.parameters.track_speed_kphdata.parameters.alpha_d/3600;
end
ad_var_time1=move_info(i,3)data.parameters.track_speed_kphdata.parameters.beta_a/3600;
ad_var_time2=move_info(i,3)data.parameters.track_speed_kphdata.parameters.beta_d/3600;
ladder_time=abs(move_info(i,1)-move_info(i,2))ladder_distance/data.parameters.ladder_speed_kph/10003600;
move_step_cost(i)=ladder_time+(track_time1+ad_const_time1+ad_var_time1)+(track_time2+ad_const_time2+ad_var_time2);
end
move_cost=sum(move_step_cost);
From: chongshuang2021 @.>
Sent: Tuesday, September 17, 2024 12:27 PM
To: MarcMeketonVillanova/2024_RAS_PSC @.>
Cc: Marc Meketon @.>; Comment @.>
Subject: [EXTERNAL] Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Dear Meketon,
We have processed three datasets, and the output results in the required format are included in the attachment. We set a runtime of 3 minutes and obtained feasible, high-quality solutions. Below is a summary of the results:

For Dataset 1, which contains 11 wagons and 5 tracks, our solution requires 14 movements, with a total time cost of 7,926 seconds.
For Dataset 2, which contains 100 wagons and 12 tracks, our solution requires 134 movements, with a total time cost of 65,287 seconds.
For Dataset 3, which contains 108 wagons and 5 tracks, our solution requires 78 movements, with a total time cost of 57,296 seconds.

Please let us know if you need any further details.
-----原始邮件-----
发件人: "Marc Meketon"<EMAIL_ADDRESS>发送时间: 2024-09-17 18:11:04 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>抄送: chongshuang2021<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
I do not have access to MATLAB (unlike Python, Java, C#, etc., you need a license for MATLAB).
Can you run these two examples for us and report the CPU time?
From: chongshuang2021<EMAIL_ADDRESS>Sent: Tuesday, September 17, 2024 12:02 AM
To: MarcMeketonVillanova/2024_RAS_PSC<EMAIL_ADDRESS>Cc: Marc Meketon<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from @.@.mailto:***<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Dear Sir,
We also discovered a minor issue with a parameter in our algorithm. Initially, we did not consider that the number of tracks might exceed 10. In the new version, we have adjusted its value to accommodate wide datasets. Please see the attachment.
Before running our code, please rename the input file using the format as, example_xx_inputs, where xx represents the name of the dataset.
I'm sorry to trouble you.
-----原始邮件-----
发件人: "Marc Meketon" @.<mailto:@.mailto:***<EMAIL_ADDRESS>发送时间: 2024-09-17 11:53:03 (星期二)
收件人: MarcMeketonVillanova/2024_RAS_PSC @.<mailto:@.mailto:***<EMAIL_ADDRESS>抄送: chongshuang2021 @.<mailto:@.mailto:***<EMAIL_ADDRESS>Author @.<mailto:@.mailto:***<EMAIL_ADDRESS>主题: Re: [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
Thank you.
I fixed that, and added a test for it in the json_schemas.ipynb.
From: chongshuang2021 @.<mailto:@.mailto:***<EMAIL_ADDRESS>Sent: Monday, September 16, 2024 8:39 PM
To: MarcMeketonVillanova/2024_RAS_PSC @.<mailto:@.mailto:***<EMAIL_ADDRESS>Cc: Subscribed @.<mailto:@.mailto:***<EMAIL_ADDRESS>Subject: [EXTERNAL] [MarcMeketonVillanova/2024_RAS_PSC] input data (Issue #1)
You don't often get email from @.@.<mailto:@.@.mailto:***@***.******@***.***<mailto:***<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Please check the input file, example_108_wagons_5_tracks.json. According to JSON syntax, there is a small mistake on line 19. At the end of the wagon occupancies on track 3, there should not be a comma, as the other tracks have no wagons.
mistake.png (view on web)https://github.com/user-attachments/assets/413852be-90f6-4be7-87f5-a1d2bb1ae816
D
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYJJYX6GMTRZUIWSFTZW5225AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUZDSNZSG44DOOA.
You are receiving this because you are subscribed to this thread.Message ID: @.@.<mailto:@.@.mailto:***@***.******@***.***<mailto:***<EMAIL_ADDRESS>D
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.<mailto:@.mailto:***<EMAIL_ADDRESS>
Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC
D
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1#issuecomment-2354457944, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZ7W3BFLNMID7DCNHWDZW6STLAVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJUGQ2TOOJUGQ.
You are receiving this because you commented.Message ID: @.@.mailto:***<EMAIL_ADDRESS>―
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
Bestregards,
Yours CHEN.
School of Mathematics,
Southwest Jiaotong University,
Chengdu, Sichuan, PRC
―
Reply to this email directly, view it on GitHubhttps://github.com/MarcMeketonVillanova/2024_RAS_PSC/issues/1#issuecomment-2356392005, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJT7JZYFQT3WSJTN2DW62PTZXBJ45AVCNFSM6AAAAABOKLWRDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJWGM4TEMBQGU.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>


Stop removing child elements from graph container.

Orb seems to remove all content from the provided graph container. It would make more sense to have it append the canvas to the container instead of replacing its content.

Fixed in release v0.1.2.


removeAt(index)

Great package, but if there's an elementAt method, why isn't there a removeAt method? Currently to imitate that I do mySet.remove(mySet.elementAt(index)).
Is it possible to add a removeAt() method that accepts an index and removes the item at that index?

The elementAt comes from Dart's IterableMixin, hence why we haven't added any removeAt method.
https://api.dart.dev/stable/2.7.2/dart-collection/IterableMixin-class.html
It wouldn't hurt to have that method though, so if you want to add it, feel free to put up a PR. :)

Got it, thanks. I have only about 10 days experience in Flutter & Dart, so I'll leave it to someone else 😄
For now I'll be using mySet.remove(mySet.elementAt(index))


VPC lattice do not support no-default namespace

While using Api controller , when we create a gateway to create Service network under VPC Lattice , its working if we create under default namespace but in real world scenarios, no one use default namespace ,
While creating gateway to create Service network in another namespace throwing below error
 2023-04-10T06:27:38Z	INFO	GatewayReconciler	{"controller": "gateway", "controllerGroup": "gateway.networking.k8s.io", "controllerKind": "Gateway", "Gateway": {"name":"vpc-lattice-eks","namespace":"vpc-lattice-ns"}, "namespace": "vpc-lattice-ns", "name": "vpc-lattice-eks", "reconcileID": "996dc103-6bb7-4979-ac72-71ac9d05df71"}

Right now, the gateway of  amazon-vpc-lattice gatewayclass is a cluster-scoped object.   Gateway is mapped to AWS VPC Lattice ServiceNetwork.  A VPC can associate to a single Lattice ServiceNetwork.   And  A single Lattice ServiceNetwork can span multiple Kubernetes Cluster(s) and other non-EKS VPC(s).  In addition,  a single Lattice ServiceNetwork can includes Lattice Service(s) provided through EC2, ECS and lambda function(s) and Kubernetes HTTPRoute(s) together.


Add missing class to checkout rebate

This commit adds the missing panel--td class to the rebate checkout-item.

@screeny05 Good catch, thanks for the contribution.
@bcremer Can you create a ticket for this?

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/#/issues/SW-14393.
Please use this issue to track the state of your pull request.

Merged your PR with commit https://github.com/shopware/shopware/commit/12948068e1480571124f5a43160cb61e1eb19e2a.
Thanks for your contribution @screeny05  :+1:


Is TL_YEAR really needed?

First, thanks for making this repo, it helped me a lot today.
I would like to ask one question about the TL_YEAR=2023 constant in the Dockerfile.
In the Readme, you say the correct year is necessary for tlmgr to work. However, I tried to remove the constant completely and the tlmgr still works. To explain why I am asking - I have to adjust your Dockerfile to fit my needs and my project will be deployed with CD. So I am trying to prevent any issues that could arise when the year changes.
Could you please explain why do you think the tlmgr won't work or have I misunderstood something?
ARG TL_SCHEME_BASIC="y"
RUN if [ "$TL_SCHEME_BASIC" = "y" ]; then tlmgr install scheme-basic; fi

ARG TL_SCHEME_SMALL=""
RUN if [ "$TL_SCHEME_SMALL" = "y" ]; then tlmgr install scheme-small; fi

ARG TL_SCHEME_MEDIUM=""
RUN if [ "$TL_SCHEME_MEDIUM" = "y" ]; then tlmgr install scheme-medium; fi

ARG TL_SCHEME_FULL=""
RUN if [ "$TL_SCHEME_FULL" = "y" ]; then tlmgr install scheme-full; fi

RUN tlmgr install ragged2e

Thank you in advance for your answer.

I'm really glad you are using my work and it's helped you!
Regarding your question, I think you have misunderstood the statement. The statement "In order for tlmgr to work, the year must be current." talks about the year in the image version (i.e. kjarosh/latex:2021.2), not TL_YEAR. It is not a problem of building the image, but rather of using images built in the past. tlmgr connects to CTAN, but CTAN hosts only the current version of TeX Live. If the tlmgr used comes from an older version of TeX Live, it will not work with the current CTAN repository, because the repository does not host older versions of packages.
In order to illustrate this issue, try running the following commands. First, start a container using an older version of my image, e.g.
docker run -it --rm kjarosh/latex:2021.2-minimal sh

Within the container, try installing a package using tlmgr:
tlmgr install latexmk

You should get an error:
tlmgr: Local TeX Live (2021) is older than remote repository (2023).
Cross release updates are only supported with
  update-tlmgr-latest(.sh/.exe) --update
See https://tug.org/texlive/upgrade.html for details.

This is why when using older releases of TeX Live, it is advised to use the full version, so that all packages are available and no packages need to be installed. It probably would be possible to make tlmgr work for older releases, but you would need to specify a repository containing an archive of the given version (for each version separately).
Regarding your modification of removing TL_YEAR, you are right—it may easily be removed, however it does not solve the issue. Images built for version 2023 will not work when version 2024 is released, and versions built for 2022 would not have worked now. The only difference is that you do not need to parameterize the image with the version.
Actually, one may argue whether TL_YEAR should be kept or not. There are pros and cons of both approaches. When TL_YEAR is not present, the build works all the time, but it is not reproducible. It means that the same Dockerfile will produce different images when built at different times. TL_YEAR does not guarantee full reproducibility of builds (the distribution may change within a single major release), but at least the same Dockerfile will not produce distributions for different years. In order to guarantee full reproducibility, probably a hash of the whole package should be added and verified when building the image. Reproducibility of builds is important in Docker images, because it is an expected behavior—e.g. consider image caching in Docker. Unfortunately, TeX Live provides only the newest distribution, so reproducibility relies on failing the build when a different version is available, which is not ideal. I should probably rethink this issue a bit and decide on either full reproducibility, no reproducibility at all, or maybe using some archives for older releases.
Nonetheless, I should probably reword the statement of tlmgr not working in the README (or even elaborate), so that it would be easier to understand.

@kjarosh thanks for your comprehensive answer. All is clear now. The fact that TeX Live provides only the newest distribution does indeed make the decisions regarding reproducibility more difficult. As you said, maybe the sentence in the README that comments on tlmgr could be a bit more verbose and clear. However, as I said earlier, I had to adjust your container anyways. Therefore, in my own builds I will take your answer into consideration and deal with this issue on my own. Thank you.

@kjarosh thanks for your comprehensive answer. All is clear now. The fact that TeX Live provides only the newest distribution does indeed make the decisions regarding reproducibility more difficult. As you said, maybe the sentence in the README that comments on tlmgr could be a bit more verbose and clear. However, as I said earlier, I had to adjust your container anyways. Therefore, in my own builds I will take your answer into consideration and deal with this issue on my own. Thank you.


Filter items

Hey, i have select filter.
const bananas = [banana, banana, x1000 items]
const apple = [apple, apple, x 500 items]
at the start i have all record loaded. But when i select only bananas, to height of scroll container not update...  . Where is the point?

@speige how to do that pls advice.


ref #396: Handle null value to avoid warnings

Q
A

Branch
6.2.x

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Fixed issues
chameleon-system/chameleon-system#396

License
MIT

Ticket mentions 6.3 + but the fix goes to 6.2?

Ah yes, I then saw that the problem depends on the PHP version and occurs on all Chameleon versions - I'll adjust the ticket.


Semver tool listener declaration unit test

List down the possible positive + negative unit test cases to validate semantic CLI tool listener declaration .
Need to implement those unit test cases for patch version verification.
split test data sets of Listener declaration and keep separate test sets in a separate json file for sub levels like annotation, documentation, qualifier, type descriptor, variable name, listtener expression and advance listener declaration test cases (This is for capturing more than one changes in source code).
For an example, Remove public qualifier from a listener declaration
Old code - public listener http:Listener hello = new (8080);
New code - listener http:Listener hello = new (8080);
Here the tool should identify the change in listener declaration qualifier removal and need to suggest a appropriate version change.
Other than that tool should identify more than one change in the code.
For an example, Add public qualifiier and change the port number
Old code - listener http:Listener hello = new (8080);
New code - public listener http:Listener hello = new (8000);
Here tool should identify two changes and need to suggest correct version change according to that changes in the source code.

We are closing this issue due to inactivity. If you need further assistance or have additional input, feel free to reopen it. Thank you for helping us maintain a relevant and focused issue list!


Affinity in the Camunda Deployement?

I have successfully deployed Camunda and the pods are running. By default optimize, tasklist and operate will have only 1 replica per each. I have now modified it to 3 replicas. These 3 replicas should be deployed in 3 nodes as 1 replica per each node. I have tried the Pod Affinity and tolerations. In both case I cannot able to deploy according to the requirement.
How to deploy 1 replica per each worker node when deploying camunda?
When making the changes related to the Pod Affinity and Tolerations, I have made the changes in the values.yaml and corresponding deployment.yamls also for operate, optimize and tasklist.  Is there any changes needs to be done other than this?

Hi @RViththakan, please share the values that you have tried to find out what the issue is.

Closing this issue due to inactivity.
Feel free to open it with more details.


⚠ Processors has degraded performance

In 3b1b071, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 83 ms

Resolved: Processors performance has improved in 99e6073.


More details for strongly gendered languages

Languages like Italian have a strong dependency on the gender of words (even referred to objects) to define the writing of many words, even verbs and adjectives many times.
It would be nice to have more references for where the text keys are used.

hey Daniele, did you see our annotated screenshots for help with context?
https://github.com/usetrmnl/localizations/blob/master/GUIDE.md
i can also get you access to a beta account to click around the UI yourself. feel free to email<EMAIL_ADDRESS>in any case, thanks for the PR! we're wrapping up a plugins marketplace feature first, then adding the last submissions into master all together.

I've started from there, but some labels seem not present in the screenshots.
For example "view" to me can have many different meanings from a tech perspective and so many different translations in Italian.
I'll try to get in touch for a beta account, thank you for the offer.


Fruit Slicer

PR Description 📜
Fruit Slider is a fun and engaging puzzle game where players slide fruit pieces on a grid to align them in a specific order or pattern. The objective is to complete the puzzle in the fewest moves possible.
Fixes # 4405

Mark the task you have completed ✅

[X] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[X] I have performed a self-review of my own code or work.
[X] I have commented my code, particularly in hard-to-understand areas.
[X] My changes generates no new warnings.
[X] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[X] I have added screenshot for website preview in assets/images
[X] I have added entries for my game in main README.md
[X] I have added README.md in my folder
[ ] I have added working video of the game in README.md (optional)
[X] I have specified the respective issue number for which I have requested the new game.

Thank you soo much for contributing to our repository 💗

Thank you @narayani9120 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

I have modified the changes, Can you check and merge my PR @kunjgit

Thank you  @narayani9120 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


⚠ Bofrost.fr has degraded performance

In c3cc6f1, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 977 ms

Resolved: Bofrost.fr performance has improved in fda8ab9 after 9 minutes.


case insensitive path matching doesn't work for unicode paths

To demonstrate, add a 	"/Π" entry to routes in TestTreeFind and
		{"/π", "/Π", true, false},

to the tests table.
The reason is because we findCaseInsensitivePath is assuming that it can use
strings.ToLower on a single byte to determine which node to descend into,
but this is not valid on unicode characters. The correct solution is probably
to add a lower-cased node for all entries - then the usual lookup logic
could be used with the lower-cased lookup path.

Unicode stuff can be really complicated sometimes, but I think I still found a more or less nice solution. Please test if it works properly now.
It still doesn't do normalization, but unless someone shows me a good reason to do that, I don't plan to implement it.


MSO_LINE.ROUND_DOT not correct in xml

Hi ,
When create charts in slides, MSO_LINE.ROUND_DOT does not proper display dot in slides.
in dml.py  the ROUND_DOT val is dot, but following link below,
https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/82325e66-8510-43a9-af4f-6c8970502474
Should  use "sysDot" replace "dot"

Ah, yes, so it is. I've fixed that and it will show up in the next release. Thanks for letting us know :)


[Performance turning] SubtractSlice

subtractSliceWithSet (New implementation) is 286 times faster than subtractSliceWithContains (Old implementation)
<EMAIL_ADDRESS>✓ ~/workspace/github.com/sue445/primap/function/util (feature/benchmark_SubtractSlice)
<EMAIL_ADDRESS>[10-24 19:25:13] $ go test -bench .
goos: darwin
goarch: amd64
pkg: github.com/sue445/primap/util
Benchmark_subtractSliceWithContains-4   	       6	 187650226 ns/op
Benchmark_subtractSliceWithSet-4        	    1800	    655369 ns/op
PASS
ok  	github.com/sue445/primap/util	2.639s

Before
deleteRemovedShops (9.298222944s)


Use fs.realpath to get actual project directory

Repeat of #3020, which was having CI issues.
In server/build/webpack.js: pass the cwd through fs.realpathSync in order that babel-loader can find the "pages" components when the user is in a directory junction. Without this I would receive the "you may need an appropriate loader" error on compilation (Windows 10).

To maintainers: I don't know what's the problem with this change that is causing issues in the pipeline. Appveyor seems to think that fs.realPathSync is not a function. Any ideas?

@sdgluck glad you figured it out 👍 the build went fine. But there was a timeout so I restarted it to be sure 👍

Thanks!


Create STIX Example: Indicator for Malicious URL

Initial version located here.

Now up on the website here. Implementation (code) to follow.

Producer and consumer python code have now been added to this example.


Shell completions zsh not completing

Describe the bug
I followed the instructions in jira completion --help for zsh, but on <tab> I get the default directory completion
Please provide following details

JiraCLI Version:(Version="v1.4.0", GitCommit="", CommitDate="", GoVersion="go1.21.4", Compiler="gc", Platform="linux/amd64")

Are you using Jira cloud or on-premise jira server? Not yet set up (N/A)
What operating system are you using? Also mention version.Arch Linux x86_64,  Kernel: 6.6.1-arch1-1

What terminal are you using? Also mention version. git@github.com:siduck/st.git commit: 5c4df963070573db7cee2eafb320d84e477c3507

To Reproduce
Steps to reproduce the behavior:

add autoload -U compinit; compinit to ~/.zshrc

jira completion zsh > _jira
mv ./_jira $fpath[1]

Start a new shell
run

jira <tab>

Expected behavior

I would expect to see the array of top level commands from jira cli
for example from my dex cli

> dex <tab>
completion  -- Generate the autocompletion script for the specified shell
help        -- Help about any command
serve       -- Launch Dex
version     -- Print the version and exit

Actual behavior

activating the completion on the newly installed jira cli defaults to file completion.

> jira <tab>
Android/       Images/        bin/           gin_logs/      projects/      run_llama.sh*
Documents/     Sync/          clauseout/     go/            public/        test.md
Downloads/     Videos/        devsquadron/   notes.md       readme.md

Additional context

When I look at the contents of:

nvim $fpath[1]/_jira

it seems good.

I have completion files in $fpath[1] for other binaries that are working
I have also tried source <(jira completion zsh) which doesn't change anything.

Once I authenticated and ran jira init now the completions work.

Once I authenticated and ran jira init now the completions work.

Hi @nanvenomous, since the completion config is auto generated via spf13/cobra lib, let's keep the behavior as is for now. Completions seem to work fine after configuring the tool.


Callback for change weights after iteration (in R)

Is there a way to change safely weights after each iteration based in some user custom logic?

I don't think so at the moment, you will have to write the iteration yourself (which is implemented in R anyway).

Do you refer to add at the end of this loop
https://github.com/dmlc/xgboost/blob/411c8466bd383662a448a6a6be585c1b12b8c2e2/R-package/R/xgb.train.R#L431-L469
something like: setinfo(dtrain, 'weight', new_weights)?

but how can I get predictions inside xgb.train.R without calling predict

Not sure what you mean by that, or why this is necessary. Please elaborate on it. Assuming by weights, you are talking about the sample weights, which doesn't affect prediction. It changes the training algorithm and the evaluation metric (weighted average), but has no impact on prediction itself.

This would be my use case:
A problem where the data is grouped by geographic area and the gradient boosting model consistently predicts some areas worse than others.
One approach is to fit a model and, based on the results, over-weight the 'difficult' regions, and do this several times.
What I want to do is introduce the process into the model fitting by doing upweighting after each iteration, evaluating all predictions by geographic area (the area is passed to dtrain with attr() and the performance of each area is assessed with a groupby on the absolute value of the prediction errors of the samples they include) and increasing the weight of the samples from the worst predicted areas.
It's the original idea of adaboost introduced into gradient boosting.

Thank you for the explanation, that would be interesting since the Hessian by itself is a form of weight. For additional weighting, you can do what you have described in https://github.com/dmlc/xgboost/issues/10631#issuecomment-2247737464 :
for (iteration in begin_iteration:end_iteration) {
    update.iter(bst, dtrain)
    predt <- predict(bst, ...)
    weight <- calc_weight(predt, y)
    setinfo(dtrain, "weight", weight) # This will be used by the next iteration.
}

Thanks,
so something like:
predt <- predict(bst, dtrain, outputmargin = TRUE, iterationrange = c(1, 1))
should work fast as predict has the prediction in cache?
I think is the same logic used in xgb.iter.eval() using custom feval.

It should be, as long as it's still the same dtrain object.

Feel free to reopen if there are further questions.


Rename storage Search service to SearchService [phab:D111]

Created by schroederc at 2015-03-02 22:16:48:
This prevents a C++ compilation error for the generated service code when a member has the
same name as its class.

zarko accepted this revision at 2015-03-02 22:25:52

schroederc closed via commit fe4ede6032b01f4887c0d50a706c787dcbf73ec3 at 2015-03-02 22:26:58

schroederc closed via commit 0843a9f5e4cd84f9e325c3bc0ed4a7b85d063e24 at 2015-03-02 22:26:58


Add validation for model_name parameter

This PR introduces a validation check for the model_name parameter within the openai method of the outlines.models module. The aim is to ensure that only valid model names are used when calling this function. As per the current implementation, any string passed as the model_name would be accepted.
The change enforces the function to only accept gpt-4 or gpt-3.5-turbo as valid model names. If any other model name is passed, a ValueError is raised, informing the user about the invalid input and suggesting the correct model names.
This change also adds tests to tests/models/test_openai.py. To ensure an invalid model raises a value error.
Note: I added gpt-4-1106-preview in the tests, so when or if it's added to the suite of models supported by outlines, that will need to be updated, along with the mode in openai.py

Thank you for the contribution! Could you run pre-commit and then squash your commits? Looks good to me otherwise!

I fixed the code formatting and squashed the commit. Thank you for contirbuting!


Why i can't terminate job with API ?

I tried terminate workflow job with API like this:
// JobInfo.JobId is job name
func TerminateWorkflow(wfClient argoprojv1alpha1.WorkflowInterface, job *api.JobInfo) error {
	patchObj := map[string]interface{}{
		"spec": map[string]interface{}{
			"shutdown": ShutdownStrategyTerminate,
		},
	}

	patchJSON, err := json.Marshal(patchObj)
	if err != nil {
		return err
	}

	_ = wait.ExponentialBackoff(retry.DefaultRetry, func() (done bool, err error) {
		_, err = wfClient.Patch(job.JobId, types.MergePatchType, patchJSON)
		if err != nil {
			if !k8serrors.IsConflict(err) {
				return false, err
			}
			return false, nil
		}
		return true, nil
	})

	return err
}

The Argo version information is:
argo: v2.4.0-rc1
  BuildDate: 2019-08-08T22:59:15Z
  GitCommit: 6131721f43545196399d7ffe3a72c1b9dc04df87
  GitTreeState: clean
  GitTag: v2.4.0-rc1
  GoVersion: go1.11.5
  Compiler: gc
  Platform: linux/amd64

The API has no error respond, i tried query jobs with argo -n <namespace> list, the job terminated with API is still running, why?

argo: v2.4.0-rc1

This method of stopping workflows (using spec.Shutdown) was introduced after v2.7.
For v2.4 you can set activeDeadlineSeconds to 0 to terminate a job.

argo: v2.4.0-rc1

This method of stopping workflows (using spec.Shutdown) was introduced after v2.7.
For v2.4 you can set activeDeadlineSeconds to 0 to terminate a job.

Thanks for your help!!!


Property Cleaning Fees

@juliejonak can you please review the checkout file on this one? anywhere you were using props.reservation.cleaningfee, I changed it to props.property.cleaningfee and I want to be sure I didn't miss anything for the stripe portion.


[ᚬmaster] Rc/v0.23.0

0.23.0 (2019-10-19)
Features

address: add support to addresses in full version format (a385821)
core: add transaction builder for signing transactions with multiple private keys (d5d69c0)
core: remove address module (#369) (e467427)

BREAKING CHANGES

core: remove address module and add key pair module

ci: add codecov config for a tolerant threshold

feat(utils): add some util methods for getting public keys and addresses from private keys

add a method of core.utils.privateKeytoPublicKey
add a method of core.utils.privateKeyToAddress

core: KeyPair from the core module

fix(core): fix the lock script in the sending transactions example

address: rename an parameter in bech32Address method from codeHash to codeHashOrCodeHashIndex

Codecov Report

Merging #370 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #370      +/-   ##
==========================================
- Coverage   99.62%   99.62%   -0.01%
==========================================
  Files          16       15       -1
  Lines         530      527       -3
  Branches      149      142       -7
==========================================
- Hits          528      525       -3
  Misses          1        1
  Partials        1        1

Impacted Files
Coverage Δ

packages/ckb-sdk-utils/src/crypto/bech32.ts
98.76% <100%> (-0.05%)
:arrow_down:

packages/ckb-sdk-utils/src/index.ts
100% <100%> (ø)
:arrow_up:

packages/ckb-sdk-utils/src/address/index.ts
100% <100%> (ø)
:arrow_up: