Improve formatting and clarity in "Subset"

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Thanks for the check on this. I like the change.
On reading it more, would it make sense to change the method name .subset() to .is_subset_of()/.isSubsetOf()?
It you read setA.subset(setB), it looks like it wants to take setA and subset it from setB, or something similar. Changing it to setA.isSubsetOf(setB) make it more clear that the result should be a boolean.
This may be bikeshedding but if we're trying to improve this, why not? 😄  @freeCodeCamp/moderators

Agree about isSubsetOf, +1 from to go for it.

@lynxlynxlynx thanks for your input! 👍 I think it makes sense and shouldn't be too hard of a sell for others. I think we'll be good to go.
@tywmick I can't make suggestions on non-changed code, but I'd also change the tests to reflect the new method name. Thanks!

@erictleung Totally agree, isSubsetOf sounds great! I'll get on those tests...

There, tests updated with new method name. 👍🏼 Also changed the name of a variable in the tests being assigned the value of setA.isSubsetOf(setB) from subsetSetAB to ASubsetOfB. Wait that starts the variable name with a capital letter. Lemme change it to aIsSubsetOfB...

Don't forget to update the solution code as well.

There we go!

Codewise no more comments from me, so that leaves runtime verification.


Exit code 0xe000020b at WSL2 distro startup

Environment
Windows build number: 10.0.19041.572
Your Distribution version: Ubuntu 20.04
Whether the issue is on WSL 2 and/or WSL 1: WSL2

Steps to reproduce
click the "Ubuntu 20.04 LTS" icon in the start menus.

WSL logs:
https://aka.ms/AA9z38n
Expected behavior
bootup Ubuntu 20.04 LTS successfully.
Actual behavior
unable to start up Ubuntu 20.04 LTS.

Error is coming from Hyper-V, and it has problem to create network.

@licanhua
I'm using WSL2, without Hyper-V enabled.

I have incorrect description. I thought HNS(networking) is part of Hyper-V but actually it's not.

@licanhua
The cause of the problem is that my network adapter list is empty. I fixed the problem by executing the following command：
netsh winsock reset
netcfg -d
Then restart the computer and the problem is solved.

Thanks to share this.

@aioloswong may I ask: how did you determine your network adapter list was empty?

@licanhua I opened my computer's "Control Panel \Network and Internet\Network Connections" and found that there was no network connection(it was empty). Nevertheless, I could access the Internet.


Enh/iss101

We corrected the annotation in the Synchrotool to re-shift the right edges of the times of the epochs.

Thank you for your pull request.
We kindly suggest that you please open this pull request on the original Elephant repository at https://github.com/NeuralEnsemble/elephant since 'INM-6' is essentially a fork of Elephant.
This will ensure that your contribution is integrated into the main project.


[AutoPR batch/resource-manager] [Batch] Update documentation around app packages

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/7177

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/7190


update(Link): Link just with www, will work as text and not as link

What this PR does 📖
1. let "link" just with www work as text, and not as link

Which issue(s) this PR fixes 🔨

Resolve #979

Special notes for reviewers 🗒
Additional comments 🎤

closing due to https://github.com/Satellite-im/Uplink/pull/991 let me know your thoughts

yes but when luis added the ticket he meant like it should be clickable 🔨
also other apps do that
example github website
www.google.pt
discord doesn't but its easier when sending url's to someone if we allow the www to be clickable


Add a generic SelectList

I think it'd be a good idea to have a SelectList<T> class which SelectList inherits from (so it'd be SelectList : SelectList<string>, although maybe the naming could be a bit different so there's no confusion).
The SelectList<T> constructor would take two extra parameters:

itemEntitySize (Vector2): the size of the entities the select list will contain
itemEntityConstructor (Func<T, Entity>): a delegate which takes an item and creates an entity to represent that item.

Instead of creating Paragraph objects, itemEntityConstructor is called for each item in the list.
The existing SelectList would pass a delegate through of type Func<string, Paragraph> which would build paragraphs in the same way as they're done now.
I'll put a working proof-of-concept in a comment after this, but I'll give a usage example here.
Example class to be shown in the list:
public class MyClass {
    public string Name;
    public IconType Icon;

    public static Entity EntityConstructor(MyClass instance) {
        Panel panel = new Panel(Vector2.Zero);
        panel.AddChild(new Icon(instance.Icon, Anchor.AutoInline));
        panel.AddChild(new Paragraph(instance.Name, Anchor.AutoInline, new Vector2(0.5f, 0)));
        return panel;
    }
}

And setting up the list:
SelectList<MyClass> selectList = new SelectList<MyClass>(new Vector2(400, 400),
    new Vector2(0, 100), MyClass.EntityConstructor);
MyClass[] items = new [] {
    new MyClass { Name = "Myclass1", Icon = IconType.Apple },
    new MyClass { Name = "Myclass2", Icon = IconType.Sword },
    new MyClass { Name = "Myclass3", Icon = IconType.Feather },
    new MyClass { Name = "Myclass4", Icon = IconType.MagicBook },
    new MyClass { Name = "Myclass5", Icon = IconType.Map },
    new MyClass { Name = "Myclass6", Icon = IconType.OrbBlue },
    new MyClass { Name = "Myclass7", Icon = IconType.OrbGreen },
    new MyClass { Name = "Myclass8", Icon = IconType.Pistol }
};
selectList.AddRange(items);
UserInterface.AddEntity(selectList);

I'm thinking this could be useful for creating lists with more information in them. If LockSelection (not implemented in the following mockup) is set, it could be used for a list of items that are interactable themselves (so with buttons, etc.) and could potentially be extended to allow for drag and drop reordering, etc.

Here's the working mockup version of SelectList<T>:
public class SelectList<T> : Panel {
    private int _index = -1;
    private List<T> _list = new List<T>(); // list of values
    private Vector2 _prevSize = Vector2.Zero; // store previous size so we'll know if size changed
    private VerticalScrollbar _scrollbar; // scrollbar to scroll through the list
    private List<Entity> _entities = new List<Entity>();
    private Vector2 _itemEntitySize;
    private Func<T, Entity> _itemEntityConstructor;
    private int _visibleEntityCount = -1; // the number of entities that can be shown at once

    public SelectList(Vector2 size, Vector2 itemEntitySize, Func<T, Entity> itemEntityConstructor, Anchor anchor = Anchor.Auto, Vector2? offset = null, PanelSkin skin = PanelSkin.ListBackground)
        : base(size, skin, anchor, offset) {
        _itemEntitySize = itemEntitySize;
        _itemEntityConstructor = itemEntityConstructor;

        // update style and set default padding
        UpdateStyle(DefaultStyle);

        // create the scrollbar
        _scrollbar = new VerticalScrollbar(0, 10, Anchor.CenterRight, offset: new Vector2(-8, 0));
        _scrollbar.Value = 0;
        _scrollbar.Visible = false;
        AddChild(_scrollbar, false);
    }

    public SelectList(Vector2 itemSize, Func<T, Entity> itemEntityConstructor, Anchor anchor = Anchor.Auto, Vector2? offset = null)
        : this(USE_DEFAULT_SIZE, itemSize, itemEntityConstructor, anchor, offset) { }

    /// <summary>Special callback to execute when list size changes.</summary>
    public EventCallback OnListChange = null;

    override public Vector2 DefaultSize { get { return new Vector2(0f, 220f); } }

    protected void OnListChanged() {
        // if already placed in a parent, call the resize event to recalculate scollbar and labels
        if (_parent != null) {
            OnResize();
        }

        // make sure selected index is valid
        if (SelectedIndex >= _list.Count) {
            Unselect();
        }

        // invoke list change callback
        OnListChange?.Invoke(this);
    }

    public void AddItem(T value) {
        _list.Add(value);
        OnListChanged();
    }

    public void AddItem(T value, int index) {
        _list.Insert(index, value);
        OnListChanged();
    }

    public void AddRange(IEnumerable<T> items) {
        _list.AddRange(items);
        OnListChanged();
    }

    public void RemoveItem(T value) {
        _list.Remove(value);
        OnListChanged();
    }

    public void RemoveItem(int index) {
        _list.RemoveAt(index);
        OnListChanged();
    }

    public void ClearItems() {
        _list.Clear();
        OnListChanged();
    }

    public int Count => _list.Count;
    public bool Empty => _list.Count == 0;

    override public bool IsNaturallyInteractable() {
        return true;
    }

    public void ScrollToSelected() {
        if (_scrollbar != null && _scrollbar.Visible) {
            _scrollbar.Value = SelectedIndex;
        }
    }

    protected virtual void OnResize(bool recalcDestRect = true) {
        // store current size
        _prevSize = _size;

        // remove all children before re-creating them
        ClearChildren();

        // remove previous entities
        _entities.Clear();

        // calculate self destination rect
        if (recalcDestRect) {
            _destRect = CalcDestRect();
        }

        _visibleEntityCount = 0;
        foreach (T item in _list) {
            Entity entity = _itemEntityConstructor(item);
            entity.Size = _itemEntitySize; // force all entities to be one size
            entity.AttachedData = item;
            entity.SetAnchor(Anchor.Auto);
            entity.Draggable = false;

            AddChild(entity);
            _entities.Add(entity);
            // add callback to selection
            entity.OnClick = (e) => {
                Select((T)e.AttachedData);
            };
            entity.CalcDestRect();
            if (!(entity.GetActualDestRect().Bottom > _destRect.Bottom - _scaledPadding.Y)) {
                _visibleEntityCount++;
            }
        }
        // add scrollbar last, but only if needed
        if (_visibleEntityCount < _list.Count) {
            // add scrollbar to list
            AddChild(_scrollbar, false);

            // calc max scroll value
            _scrollbar.Max = (uint)(_list.Count - _visibleEntityCount);
            if (_scrollbar.Max < 2) { _scrollbar.Max = 2; }
            _scrollbar.StepsCount = _scrollbar.Max;
            _scrollbar.Visible = true;
        }
        // if no scrollbar is needed, hide it
        else {
            _scrollbar.Visible = false;
            if (_scrollbar.Value > 0) { _scrollbar.Value = 0; }
        }
    }

    /// <summary>
    /// Currently selected item value (or null if none is selected).
    /// </summary>
    public T SelectedValue {
        get { return _list[_index]; }
        set { Select(value); }
    }

    /// <summary>
    /// Currently selected item index (or -1 if none is selected).
    /// </summary>
    public int SelectedIndex {
        get { return _index; }
        set { Select(value); }
    }

    /// <summary>
    /// Current scrollbar position.
    /// </summary>
    public int ScrollPosition {
        get { return _scrollbar.Value; }
        set { _scrollbar.Value = value; }
    }

    /// <summary>
    /// Clear current selection.
    /// </summary>
    public void Unselect() {
        Select(-1, false);
    }

    /// <summary>
    /// Select list item by value.
    /// </summary>
    /// <param name="value">Item value to select.</param>
    protected void Select(T value) {
        int index = _list.IndexOf(value);
        if (index == -1) {
            throw new System.Exception("Value to set not found in list!");
        }

        // value not changed? skip
        if (index == _index) { return; }

        // special case - value is null
        if (value == null) {
            _index = -1;
            DoOnValueChange();
            return;
        }

        // find index in list
        _index = index;

        // call on-value-change event
        DoOnValueChange();
        OnResize();
    }

    /// <summary>
    /// Select list item by index.
    /// </summary>
    /// <param name="index">Item index to select.</param>
    /// <param name="relativeToScrollbar">If true, index will be relative to scrollbar current position.</param>
    protected void Select(int index, bool relativeToScrollbar = false) {
        // if relative to current scrollbar update index
        if (relativeToScrollbar) {
            index += _scrollbar.Value;
        }

        // index not changed? skip
        if (index == _index) { return; }

        // make sure legal index
        if (index >= -1 && index >= _list.Count) {
            throw new System.Exception("Invalid list index to select!");
        }

        // pick based on index
        _index = index;

        // call on-value-change event
        DoOnValueChange();
        OnResize();
    }

    /// <summary>
    /// Draw the entity.
    /// </summary>
    /// <param name="spriteBatch">Sprite batch to draw on.</param>
    override protected void DrawEntity(SpriteBatch spriteBatch) {
        // if size changed, update paragraphs list
        if (_prevSize.Y != _size.Y) {
            OnResize();
        }

        // call base draw function to draw the panel part
        base.DrawEntity(spriteBatch);

        // update entities' list values
        int visibleEntityLimit = _scrollbar.Value + _visibleEntityCount;
        for (int i = 0; i < _entities.Count; i++) {
            // if entity is within items range:
            bool isSelected = _index == i;
            _entities[i].Visible = i >= _scrollbar.Value && i < visibleEntityLimit;
            // currently selected entity
            _entities[i].State = isSelected ? EntityState.MouseDown : _entities[i].State;
            if (_entities[i].Visible) {
                _entities[i].OutlineWidth = isSelected ? 3 : 0;
                _entities[i].OutlineColor = Color.Black;
            }
        }
    }
}

Very nice work! I like the idea and see you put effort into it. Same with the pull request, I'll only have time to check it out this weekend (or before if I'm lucky).
So I'll keep you updated after I take a closer look.
Thanks :)

Ah, that's good to hear!

This is just for when you get a chance to look into this.
It might make sense to abstract it even further, like this:

EntityList<T> - a list of entities with an auto-scrollbar

SelectList<T>  - extends EntityList<T> and adds selection logic like above

SelectList - the current SelectList but extending SelectList<string>

That way you could have an entity list without the selection logic; there's also the existing SelectList to not break the API and because it's probably something that'll get used quite a lot.

mm this require more work than I originally though.. I think I'll hold it off for now until I have more time to work on it and decide to do a big update.
Thanks again for this proposal, I'll keep this ticket opened for the next big update, not sure when it will happen.
Btw is this blocking you in any way, or just an improvement idea?

Ah okay, makes sense. It's not blocking me, I'm just using the mockup version of SelectList right now and it works fine in most cases so I'll be alright to continue with that until there's an official implementation of it.
If I can I might try and fork and work on this and then do a pull-request? It might be a little while from now since it's not vital. Were there any specific issues you ran into when you were thinking about implementing this or was it just generally a big project?

Sorry for the late response, you know my usual excuse (only got time on weekends etc etc..  )

Were there any specific issues you ran into when you were thinking about implementing this or was it just generally a big project?

Sort of, its related to how I implemented the scrollbar in list. the scrollbar determines the indices of the items to show, eg if in a given list there is room for 10 paragraphs, and scrollbar value is 5, it will show items 5 to 15. With "flat" entities (paragraph, labels, checkbox..) it works pretty well, but for other stuff (buttons, other lists, etc..) it will look pretty ugly because unless the height of the list fit perfectly multiplication of the items height, there gonna be a lot of empty space.
Because it doesn't work properly for many of the entities, I don't want to put a public template class out there that tell the users "sure, you can use whatever you like with this list" while in reality it won't be a good experience in most cases and will open a world of "buggy" behavior.
Now for the good news: I've been wanting to make a generic scrollbar anyway that will use render target and will works for pretty much any panel. This will be quite useful for lots of use cases. With the new scrollbar I have in mind, it will be super easy to implement the generic list and heights won't matter a thing. So yeah, on my next big change I will add the scrollbar and than it will be a good time to add the generic list as well.
Make sense? :)

Ah yep. That sounds good.
Something like a RenderTarget or a mask of some sort was something I was going to suggest! I definitely get what you mean about it being awkward in the current implementation when you don't know the sizing/etc. of the elements that are coming in.

An update: I'm working on a version with RenderTargets in the dev branch.
However, apparently using RenderTargets is costly  on some devices (partly because how I render the entities in a tree, which makes it difficult to render the render targets first).
Anyway long story short - RenderTargets and clipping / scrollable panels will be supported, but turned off by default and needs to enable a flag to use them.
Because of that I'm reconsidering the generic list thing. It could be a nice-to-have new entity, but less suitable for the base class of the list.
I'll keep you updated on this.
Thanks!


Page hangs sometimes when an element has an invalid colour

Instead, maybe it should just give a warning and carry on.
Or maybe, it should show an error at load-time.
I'm thinking a warning is fine.

yeah a warning would work

I realised this is actually an issue in SpaceTode code.
Moved to: https://github.com/l2wilson94/SpaceTode/issues/4


Update issue templates

Fixes: #73

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mkumatag
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [mkumatag]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/cc @bpradipt @arcprabh @sudeeshjohn @bkhadars

/hold to get multiple reviews, team please review and lemme know if anything needs to be added.

Initially, I used the GH template from the settings for creating it, but I don't want to force commit into this repo, hence opened a PR from the fork, @bpradipt can you ptal - https://github.com/ppc64le-cloud/pvsadm/pull/102


I HAVE A PROBLEM WITH THE LOGGING FILES OF THE EXAMPLE MOD CLASS

So I have a problem that says error: package com.mojang.logging does not exist
import com.mojang.logging.LogUtils;
I also apparently have a importing class that does not exist
what do I do?

This is not related to Librarian at all. Please use a relevant Discord for your query. You may find Modded MC's Discord helpful.


Question: support for fallback in routes with collisions?

I came here from cloudflare/workers-rs and had a question about possible support for the following scenario:
Let's say I want to configure explicit routes, while also having a fallback handler, e.g.:

/home
/foo
/:fallback

Today, this doesn't seem possible because /:fallback collides with other routes at the same hierarchy. A workaround is to introduce a short prefix like /f/:fallback, but it's a little clunky compared to the desired behavior of "match explicit routes when present, and fallback to others otherwise".
Interested in thoughts on the above scenario - would you classify it as outside the bounds of what this routing library is intending to support, or something that may make sense in a future release? Or perhaps I'm missing a clever workaround with wildcards that would help?

Hi, exciting to see matchit being used in cloudflare/workers-rs! This is something I plan on supporting, the current behavior is too strict. Routes are prioritized already, so it's definitely in scope. I'll try to get a release out soon.

Cool, thanks for weighing in, and glad to hear it's in scope! Happy to engage on any follow-up / review / testing as needed.

This works as of 0.4.4 :tada:


[FEAT]: change customizedrerank model

What would you like to see?
Add an option to replace the custom rerank model

Moved to https://github.com/Mintplex-Labs/anything-llm/issues/1124


add REST API for encrypting data

Thank you for making this, this is definitely needed  in secure environments.    This means that encrypting data will be difficult in my environment.
Because you created a puppet face to encrypt that data I was hoping it would be possible to make that face available over the puppet REST API so that we can remotely encrypt data without having to log into the puppet CA as root.   I think this would be a killer feature because of the following:

you still need a signed cert to make the request
the end user can script or build a web ui around encrypting this data.

Example REST Endpoints:
curl -X PUT -d data:supersecret123'  --sslcert=mypuppet_signed_cert https://puppetca:8140/api/v3/node_encrypt

returns: encrypted data

The REST API endpoint should also be protected by auth.conf if possible in order to control access.

@binford2k This doesn't really accomplish the goal but I do like the fact that encrypting data can at least by "load balanced" across masters in the future.  I would still need an API as I am encrypting this data from a javascript engine on the fly and inserting directly to hiera via gitlab API.  Because its javascript we try to only use REST API commands.

I'm not convinced that a REST API fits the goals of this project--to be stupid-simple to configure and nearly transparent to use with few opportunities for things to break. Nevertheless, it would be fairly easy to build a new terminus exposing a REST API on top of this module and just use the library functions I'm exposing.
See https://github.com/richardc/puppet-datacat/pull/17/files for an example of how easy it would be to call the encryption routines.
I'm not going to close this. I might implement it at some point, if you don't get around to it. But it would probably be a separate module.


Fullscreen width Angular 8

Hi guys,
Since Angular 8, I saw that /deep/ is deprecated and we can use ::ng-deep instead. But I don't understand how it works. Can somebody help me please ?
I'm using sass, I don't know if it's important
.ngx-gallery ::ng-deep .ngx-gallery-thumbnail.ngx-gallery-active[_nghost-cnc-c8] {   top: 56px; }

me too I have problem like this #290
I think I have the duplicate lol.


morning session code review 19-7-2022

good job so far 💯
there are some things that can be improved please read the following examples.
I saw in your code that you have a dispatch event for the click event. this can be easily done by just doing click()

You very nice code for testing

Mockinization was used in smart way 👍
You covered all required tests 💯

**I have the below recommendation for you in the future **

The idea behind testing is to test your original functions that do the required functionality, hence you need to immolate some actions to call these functions, so no need to create new functionality in your tests. 🍒


GitHub: don't fail if a user has no SSH keys.

I think this still doesn't work, I get the same error when trying the action from this branch.
Don't merge yet.

OK it is working now. The issue was that strings.Split("", "\n") returns []string{""}, but we want an empty slice. strings.FieldsFunc can do that better.


[6.0] Resolved an arithmetic overflow error in Decimal division caused by improper upcasting (#850)

Explanation: resolves an arithmetic overflow error in Decimal division that can lead to crash with specific inputs.
Scope: Only impact Decimal division
Original PR: https://github.com/apple/swift-foundation/pull/850
Risk: Minimal - scope is very small (one line)
Testing: Testing done via swift-ci testing and local testing
Reviewer: @jmschonfeld

@swift-ci please test


Usage with next.js

Hello, apologies if this is the wrong place to post this.
We're in the process of integrating unleash with our next.js applications. We've set up proxies externally and gotten up and running. We've solved some issues with specifically fetch and localStorage not being available during SSR by extending the unleash provider with our own, like this:
// Provider.tsx

const UnleashProvider: typeof FlagProvider = ({ config = {}, children }) => {
  // To prevent from throwing during SSR, pass a dummy storage provider
  const storageProvider = isNode
    ? new DummyStorageProvider()
    : window.localStorage;

  // Similarly, pass a dummy fetch provider
  const fetchProvider = isNode ? fetch : undefined;

  return (
    <FlagProvider
      config={{
        storageProvider,
        fetch: fetchProvider,
        url: process.env["UNLEASH_URL"],
        clientKey: process.env["UNLEASH_CLIENT_KEY"],
        refreshInterval: 15,
        appName: process.env["APP_NAME"],
        environment: process.env["APP_ENV"],
        ...config,
      }}
    >
      {children}
    </FlagProvider>
  );
};

// DummyProvider.ts

export class DummyStorageProvider {
  async save() {
    return;
  }

  async get() {
    return "";
  }
}

However, this feels very hacky and I'm wondering if the unleash team has any advice to give for integrating with next.js?

Hello, apologies if this is the wrong place to post this.
We're in the process of integrating unleash with our next.js applications. We've set up proxies externally and gotten up and running. We've solved some issues with specifically fetch and localStorage not being available during SSR by extending the unleash provider with our own, like this:
// Provider.tsx

const UnleashProvider: typeof FlagProvider = ({ config = {}, children }) => {
  // To prevent from throwing during SSR, pass a dummy storage provider
  const storageProvider = isNode
    ? new DummyStorageProvider()
    : window.localStorage;

  // Similarly, pass a dummy fetch provider
  const fetchProvider = isNode ? fetch : undefined;

  return (
    <FlagProvider
      config={{
        storageProvider,
        fetch: fetchProvider,
        url: process.env["UNLEASH_URL"],
        clientKey: process.env["UNLEASH_CLIENT_KEY"],
        refreshInterval: 15,
        appName: process.env["APP_NAME"],
        environment: process.env["APP_ENV"],
        ...config,
      }}
    >
      {children}
    </FlagProvider>
  );
};

// DummyProvider.ts

export class DummyStorageProvider {
  async save() {
    return;
  }

  async get() {
    return "";
  }
}

However, this feels very hacky and I'm wondering if the unleash team has any advice to give for integrating with next.js?

@marjak93 We do have some recommendations. Are you looking to prefetch the feature toggles on the server side? Example getServerSideProps function (downside being that you have to wait for the API call):
export async function getServerSideProps() {
  // Set up unleash to fetch only once in order to not create
  // bindings for every request which will cause a memory leak
  const unleash = new UnleashClient({
    ...config,
    fetch,
    storageProvider: new InMemoryStorageProvider(),
    disableMetrics: true,
    disableRefresh: true
  });

  // optinally update context
  unleash.updateContext({ userId: '123' });

  // await start to make sure the toggles have been fetched
  await unleash.start();

  // get all toggles
  const toggles = unleash.getAllToggles();

  return {
    props: {
      toggles,
    },
  };
}

For the FlagProvider you can follow the same suit and use the exported InMemoryStorageProvider and provide an alternative fetch implementation based on the environment. Here's an example passing in an initialised client with prefetched toggles:
const config = {
  url: 'https://app.unleash-hosted.com/demo/proxy',
  clientKey: 'proxy-123',
  appName: 'ssr',
  projectName: 'default',
  refreshInterval: 1000,
  environment: 'dev',
};

function MyApp({ Component, pageProps }) {
  const ssrOption = typeof window !== "undefined"
    ? {}
    : { fetch: fetch, storageProvider: new InMemoryStorageProvider() };

  const client = new UnleashClient({
    ...config,
    ...ssrOption,
    bootstrap: pageProps.toggles,
  });
//

  return (
    <FlagProvider unleashClient={client}>
      <Component {...pageProps} />
    </FlagProvider>
  );
}

Hope that helps

Thank you! We don't plan to prefetch toggles server-side yet. But maybe in the future?
Your suggestion for passing InMemoryStorage to the FlagProvider worked wonders!
Thank you for your help 👍


Cannot use url.format with url.parse

Using flow 0.16
I have no idea why this doesn't check (and why the error is so big); a parsed URL should be a valid parameter to url.format
Sample program:
/* @flow */

import url from "url";

export function roundTripUrl(urlStr: string): string {
    return url.format(url.parse(urlStr));
}

Output:
/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:837:16,21: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:852:16,21: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:838:15,21: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:853:15,21: boolean

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:839:12,17: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:854:12,17: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:840:12,17: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:857:12,17: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:841:12,17: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:856:12,26: union type

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:842:16,21: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:855:16,21: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:843:12,17: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:861:12,17: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:844:14,19: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:859:14,19: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:845:13,15: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:860:13,18: object type

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:846:16,21: null
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:858:16,21: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:851:12,17: undefined
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:848:11,16: string

/Users/daniel.heath/Projects/ask-izzy/flowtest/foo.js:6:18,32: call of method parse
Error:
/private/tmp/flow/flowlib_1030271d/node.js:856:21,26: number
This type is incompatible with
/private/tmp/flow/flowlib_1030271d/node.js:841:12,17: string

Found 12 errors

So, this one is a bit tricky, unfortunately. There are two separate issues here: one that we can fix, and one that requires a bit more work.
The issue that we can fix: the declared types of parse and format are a bit incompatible. For reference:
declare module "url" {
  declare function parse(
    urlStr: string,
    parseQueryString?: boolean,
    slashesDenoteHost?: boolean
  ): {
    protocol: ?string;
    slashes: ?boolean;
    auth: ?string;
    host: ?string;
    port: ?string;
    hostname: ?string;
    hash: ?string;
    search: ?string;
    query: ?any; // null | string | Object
    pathname: ?string;
    path: ?string;
    href: string;
  };
  declare function format(urlObj: {
    href?: string;
    protocol?: string;
    slashes?: boolean;
    auth?: string;
    hostname?: string;
    port?: string | number;
    host?: string;
    pathname?: string;
    search?: string;
    query?: Object;
    hash?: string;
  }): string;
  declare function resolve(from: string, to: string): string;
}

While parse returns an object with maybe values (null, undefined, or the value), format accepts an object with optional values (undefined or the value—no null). This is wrong. We want format to accept optional maybe values, e.g., { foo?: ?bar }. An updated lib def might look like this:
declare module "url" {
  declare function parse(
    urlStr: string,
    parseQueryString?: boolean,
    slashesDenoteHost?: boolean
  ): {
    auth: ?string;
    hash: ?string;
    host: ?string;
    hostname: ?string;
    href: string;
    path: ?string;
    pathname: ?string;
    port: ?string;
    protocol: ?string;
    query: ?(string | Object);
    search: ?string;
    slashes: ?boolean;
  };
  declare function format(urlObj: {
    auth?: ?string;
    hash?: ?string;
    host?: ?string;
    hostname?: ?string;
    href?: string;
    pathname?: ?string;
    port?: ?(string | number);
    protocol?: ?string;
    query?: ?(string | Object);
    search?: ?string;
    slashes?: ?boolean;
  }): string;
  declare function resolve(from: string, to: string): string;
}

However, we still get errors using this, although they are fewer:
url/url.js:4:12,32: call of method `parse`
Error:
[LIB] node.js:893:12,17: undefined
This type is incompatible with
[LIB] node.js:879:11,16: string

url/url.js:4:12,32: call of method `parse`
Error:
[LIB] node.js:895:23,28: number
This type is incompatible with
[LIB] node.js:882:12,17: string

These errors are more specific, and we can trace them down to the props which are different between parse's return type and format's param type: href and port.
parse returns href as string and format accepts href as void | string. This is valid by subtyping, but Flow is actually unifying these types, so we see an incompatibility error between void and string, above. Something similar is going on with port.
So this unification is tricky, because Flow is doing it for a good reason, which doesn't happen to apply in this case. Objects in JavaScript are mutable, so we can imagine many examples where this unification is necessary.
/* @flow */

function foo(): { foo: string } {
  return { foo: "foo" };
}

function bar(o: { foo?: string }): void {
  delete o.foo;
}

var o: { foo: string } = foo();
bar(o);
o.foo.length; // BOOM

What we need here is some way to declare that format does not mutate it's parameter, which would allow Flow to safely use subtyping instead of unification here. Ideally, this kind of annotation would also allow us to annotate the above function bar, such that the delete o.foo statement would error, because a modification to the "const" object type is disallowed.
I hope this explanation was clear. Flow really, really needs const values for this kind of thing. I'm not sure anyone is working on it at the moment, but it's a well known issue to the team.
Thanks for submitting this interesting issue!

I am having a similar issue while trying to do the opposite: parse(format(aParsedUrlObjectThatHaveBeenMutated)).
It's not clear for my why the opposite cannot work since result of a parsed url seems stricter than what format accepts.

Workaround (kind of weird to accept this)
parse(format({
    href: baseUrl.href,
    protocol: baseUrl.protocol,
    slashes: baseUrl.slashes,
    auth: baseUrl.auth,
    hostname: baseUrl.hostname,
    port: baseUrl.port,
    host: baseUrl.host,
    pathname: baseUrl.pathname,
    search: baseUrl.search,
    query: baseUrl.query,
    hash: baseUrl.hash,
  }))


Crash in LinkTransformationMethod.onFocusChanged

Library Version:
3.1.1 (not on 3.3.0 because of #2946)
Affected Device(s):
ALCATEL ONETOUCH IDOL 3 (5.5) with Android 6.0.1
Describe the Bug:
Got crash report(s) (same user, apparently) in production:
Fatal Exception: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter previouslyFocusedRect
       at com.afollestad.materialdialogs.internal.message.LinkTransformationMethod.onFocusChanged(LinkTransformationMethod.java)
       at android.widget.TextView.onFocusChanged(TextView.java:8226)
       at android.view.View.handleFocusGainInternal(View.java:5483)
  ...

Makes sense - android.text.method.TransformationMethod claims nothing about the nullability of the parameters of onFocusChanged - should just be nullable here, doesn't care about it anyway.

@strooooke I'm trying to work on this, can you tell me how to replicate the crash?

Nope, sorry - just something I saw from crash reporting of the production version of our app. I don't have such a device, and judging from the fact that the app uses material-dialogs since forever and I've never seen this before, it might be a very, very specific constellation where previouslyFocusedRect takes in fact value null. But it is allowed to, and the crash message is quite clear about what the problem is.

Aww, that's sad! I use it on one of my apps in production too haven't come across such an issue.

As I said - first time I've seen it. But the fix is trivial; I'd do it myself if I had the time.


Add mutex to limit the number of goroutine to lookup meta table

In our production environment, when a table contains a large quantity of regions (more than 1000 regions), the client will send too many scan requests to meta regionserver when the local cache is invalid. This results in a rapid heavy pressure to the meta regionserver and the meta regionserver may be dead. To protected the meta regionserver, add a mutex to limit the lookup of meta table will improve the stability of the whole cluster.

Codecov Report

Merging #164 (d154d71) into master (f1ffe9f) will decrease coverage by 1.62%.
The diff coverage is 12.69%.

@@            Coverage Diff             @@
##           master     #164      +/-   ##
==========================================
- Coverage   70.68%   69.05%   -1.63%
==========================================
  Files          25       27       +2
  Lines        2180     2243      +63
==========================================
+ Hits         1541     1549       +8
- Misses        537      588      +51
- Partials      102      106       +4

Impacted Files
Coverage Δ

client.go
64.77% <ø> (ø)

hrpc/balancer.go
0.00% <0.00%> (ø)

hrpc/move.go
0.00% <0.00%> (ø)

admin_client.go
54.74% <42.85%> (-1.36%)
:arrow_down:

rpc.go
81.25% <100.00%> (+0.12%)
:arrow_up:

Continue to review full report at Codecov.

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

This limits the concurrency to 1 though, maybe we should use a semaphore to allow multiple concurrent lookups to proceed? Do you have any metrics to share in terms of the performance impact this change has?

I checked the HBase community Java Client implementation. It just use a lock to ensure only one thread check meta info at one time and in our usage, only one goroutine to check meta info is not noticeable by the users. Btw, meta lookup is a very fast process, use mutex can protect the regionserver where the meta region located.


WebApp.py not current

UMGC is still using this workshop. As a student, when in section 3 trying to initiate the WebApp.py to start the webserver, the Amazon Linux AMI doesn't like the script due to python versions.
Is it possible to update this script

?

Hey @Ski86 guess we're in the same class lol. Based on how stale the PRs are on this project I think its safe to say its not being actively maintained. That said, these commands should get you through the step you're stuck on:
sudo python2.7 -m ensurepip --upgrade
sudo python2.7 -m pip install boto3
sudo python2.7 WebApp.py 80


Animation only on page reload

Hi,
I can see the text animations only when I reload the page. What am I missing?

You are not giving any information for me to help.
Please provide a reproducible example.
To note, the animation in the example provided within this extension works properly on Safari and Brave (chromium).

Here the bit of quarto code
---
title: "Introduzione all' RNASeq"
author: "Marco Chiapello, PhD"
date: "01/04/2023"
institute: "Tor Vergata"
format:
  revealjs:
    #incremental: true
    logo: images/cropped-cropped-logo-1-10.png
    #footer: "`emitanaka.org/slides/toronto2022`"
    slide-number: true
    multiplex: true
    theme: [simple, assets/monash.scss]
    show-slide-number: all
    controls: true
    width: 1280
    height: 720
    css: [assets/syntax-highlight.css, assets/custom.css, assets/pacman.css]
    header-includes: |
      <link rel="stylesheet" href="/assets/fontawesome-free-6.1.1-web/css/font-awesome.min.css">
      <script defer src="/assets/fontawesome-free-6.1.1-web/js/all.min.js"></script>
execute:
  echo: false
---

# {{< animate tada "Scopi del corso" >}}
::: {.fragment .fade-in}
:::: info-box-blue

{{< bi 1-circle >}} Acquisire un vocabolario</li>

{{< bi 2-circle >}}Interagire proficuamente con i bioinformatici

::::
:::

Here sessionInfo

R version 4.2.1 (2022-06-23)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Ventura 13.1

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.2.1  tools_4.2.1     glue_1.6.2      rstudioapi_0.14

I run the presentation on Safari 16.2. I can see the animation only on page reload.

Ok, it does work, but the "issue" comes from the fact that the animation does not start with the slide but when the HTML is open.
Test the following Quarto document and go straight to the second slide, you'll see the animation.
---
title: "Test"
format: revealjs
---

# {{< animate tada "Scopi del corso" >}}

text

This being said, since it's pur CSS, there is no way to add a trigger for revealjs without having to use JavaScript and add the trigger which I don't know what it should be: keystroke, mouse click, something else.
You could try to play with the delay option or the repeat option to make a loop.

I'll just keep this open, if at some point I want to use some of my spare time to learn more about JavaScript and doing this.


Don't assume that the dialer side is going to write first

The listener was waiting for multistream multicodec in order to send it back. go-ipfs expects it to be sent right away (or go-ipfs doesn't really send it until it has more to write)

Found that the dialer is not being able to do multiple selects, on it :)


Infinite load while processing svg image

I tried to nest attached image which causes infinite loading in SVGNest

https://gist.githubusercontent.com/Kreyren/b53ded5320332c1af8dd002b4f8f6f86/raw/a175075c7d30f4d9c7dfa2c2c486268f8d26007c/gistfile1.txt

CC @bmtm @Jack000


DIY guide code incorrect.

Describe the bug
Example code in adding deep links section.
To Reproduce
Steps to reproduce the behavior:

Go to docs
Copy example to your file
Compile error

Codesandbox
n/a
Expected behavior
Example code runs.
Screenshots
N/a
Additional context
Have submitted a PR #228

Thank you for your contribution.
I'm currently refactoring the repo so looking into this PR will take a while. So far everything looks good. It's just blocked by my local refactoring.


Create a User section where user can see his all posts

assign me this issue so that i can work on it

Already assigned issue, please check all the issues before creating any new issue.


Digital Marketing Programs - Links

This is #2920, just on a non-fork branch so the CI will let us merge it.

Closing, as #2920 became mergeable once I'd created this. sigh

Closing, as #2920 became mergeable once I'd created this. sigh

Because of course it did. 🙄😆


Casting object under test and returning new assertion on some operations

I find myself doing something similar to the following quite frequently:
assertThat(object).isInstanceOf(String.class);
assertThat((String) object).matches(pattern);

Would it make sense to cast the object under test and return the corresponding assertion? For example:
assertThat(object).isInstanceOf(String.class).matches(pattern);

first() (for lists) and extracting() (for maps) already do something like this.

asInstanceOf was added in 3.13. Wwe're using 3.12 that's why we didn't noticed it.

asInstanceOf is probably what you are looking for.
Also, since 3.14 first(), extracting() and other methods have the overloaded variant to support an InstanceOfAssertFactory. You can see the full list in the @see section of Assertions.as() javadoc.

@joca-bt I close this issue. In case you need more info, please let us know.


[BUG] CF Bypass Failed

Hello, new versions of the cloudflare does not handle. At the same time, old versions cloudflare work normally through this CF block. The need either fix or new solution, Thanks

ERROR: CF Bypass Failed: Cloudflare [JavaScript]: invalid submit response
Version

Version [e.g. 1.1.3]

Change the user agent.

same for me, you use an VPS/RDP ?

Thank you guys, the error was in the network settings, there was some kind of failure, I reinstall windows and everything began to work fine


Full disk access given but mist asks again for full disk access

I gave Mist full disk access but it asks me again if i click on an installer
It's Mist Version 0.10

Same thing for me.

opposite happens here. never asks for disk permission. using opencore monterey.

Same 14.4.1

Likewise: full disk access granted but Mist doesn't see it.
OCLP 1.4.3, macOS 12.7.4

I am trying to give Full Disk Access to Mist 0.20 but it doesn't appear on the list of apps

Hard same!

This seems to be bound to OCLP. To go around this bug, you can launch Mist with the following script (if Mist is in Applications folder, otherwise give the correct path):
do shell script "/Applications/Mist.app/Contents/MacOS/Mist" with administrator privileges

Hi, this is still a bug with no workaround from what I can tell.
I've tried @hostrogo's solution, however, I still get prompted by Mist when trying to actually do anything. I also had to manually add Mist as a program in Full Disk Access, however, this seems to make no difference.
MacOS 12.7.5.

Warp works fine on a non-OCLP mac.

As @David72645 mentioned, this seems to be an issue with devices using OpenCore Legacy Patcher. I was able to make @hostrogo 's suggestion work by running sudo /Applications/Mist.app/Contents/MacOS/Mist on a mid-2011 Mac Mini (Macmini5,1) running macOS Monterey 12.7.5 (21H1222), Mist version 0.20.1, and OpenCore Legacy Patcher version 2.0.2.

I had the same issue. Manually adding Mist to Full Disk Access did not work, likely due to the use of OCLP.
Starting Mist with sudo as suggested above works fine.
sudo /Applications/Mist.app/Contents/MacOS/Mist
Running macOS Sequoia (15.1) on an Intel Coffee Lake Hackintosh with OCLP 2.1.2., GCN and Broadcom patches as well as AMFI.kext.


update sarama version

Fixes #

Proposed Changes

Release Note

Docs

/hold

you need to run hack/update-deps.sh

I saw a PR for upgrading sarama already existed.


Cannot modify header information - headers already sent

Hello,
I am facing a rather peculiar problem when generating PDFs.
Cannot modify header information - headers already sent by (output started at /home/kyocerashop/live/releases/20220408104827/vendor/mikehaertl/php-tmpfile/src/File.php:129)
It seems like something is going wrong as soon as the PDF is being sent but I can't track down the problem. Do you have any idea what is causing this issue?
Thanks.

Sorry, this has nothing to do with our library. You probably have already sent some output somewhere in your app before you send the PDF. Could also be a trailing empty line or space after a ?> somewhere in your project files.
If you still think it's a problem with our lib, please provide a small example script to help reproduce the problem.

Thank you for your reply.
The issue is completely random which means that it will work flawlessly most of the time but sometimes I get this error message. I have tried to track down this issue for a while now but since it's completely random it's kinda tough.
Also the error states that the output started from within your library and not some place else as mentioned in this issue #135
`public function generateWebsitePdf($id)
{
$group = $this->groups->loadMaterials($id);
    $this->pdf->setOptions($this->options);

    $this->pdf->addPage(view('export.website')->with([
        'is_group' => true,
        'group' => $group,
    ])->render());

    $filename = strtoupper(preg_replace('/[^a-zA-Z0-9-+]/i', '', $group->name)) . '.pdf';

    if (!$this->pdf->send()) {
        throw new Exception('Could not create PDF: ' . $this->pdf->getError());
    }

    $content = $this->pdf->toString();
    if ($content === false) {
        throw new Exception('Could not create PDF: ' . $this->pdf->getError());
    }

    return $this->pdf->send();
}`

None of the exceptions above the actual send() are being triggered here, otherwise I wouldn't even get to the point where the PDF is being sent.

It's probably because your framework tries to send a header after generateWebsite() is called. You probably have to prevent this somehow.
But again: Nothing that requires a fix here.

I also see that you call send() two times in your code. That's not how this library is meant to be used. Please refer to the README for valid examples.


Root motion is not kept

In games, we use motion on the root and call it root motion.
If only meshes are selected, we aren't able to keep the root motion and animations are lost.
Being able to export the whole scene with the root controller node should fix this.
Thanks

Does it work when you also select the root controller and then export and/or disable the selected objects only option?
Full scene export is certainly possible, but the exporter was designed as a mesh exporter, so will require a bit of refactoring.

Used the workaround of "Select all geometry by type".


Change line separator to lf instead of crlf

Description:
Change the line separator from CRLF to LF.
Related issue (if applicable): fixes :point_up: September 26, 2016 6:34 PM
Checklist:
If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

There's more, while you're at it:
% find homeassistant -name "*.py" -exec file {} \; | grep BOM
homeassistant/components/notify/kodi.py: Python script, UTF-8 Unicode (with BOM) text executable, with CRLF line terminators

% find homeassistant -name "*.py" -exec file {} \; | grep CRLF
homeassistant/components/emulated_hue.py: Python script, ASCII text executable, with CRLF line terminators
homeassistant/components/notify/kodi.py: Python script, UTF-8 Unicode (with BOM) text executable, with CRLF line terminators
homeassistant/components/notify/ecobee.py: Python script, ASCII text executable, with CRLF line terminators

Thanks, I will integrate those files as well.


Could not save config for device in HOOBS

Hi, I only need to switch on/off the TV using Apple Home.
I installed the plugin but couldn't add the device correctly.
Tried to edit the whole lot into config.  (by the way, im using HOOBS.)
Device:
[
{
"name": "MY TV",
"ip": "(SECRET)",
"mac": "(SECRET)",
"pollingInterval": 10,
"volumeControl": "buttons",
"channelControl": false,
"mediaControl": false,
"appButtons": “”,
"channelButtons": “”,
"notificationButtons": “”,
"soundOutputButtons": “”,
"remoteSequenceButtons": ””
}
]

Your config does not look correct (at leas that what you posted here). Please check the README for an example.

got it, thanks.

Does it work now?

yes, however, all buttons (play, fast-forward etc.) are shown in sliders. I couldn't find to change these to buttons.

They show as sliders (actually big buttons) because per default they are grouped. you need to ungroup them and then they should appear as single tiles.

i see, im not very used to this at the moment, is it easily described? Otherwise I will teach me.

awesome help, thanks! Everything works smoothly

Good to hear 😄


Persistent Volumes left in Released state after failed atomic rollback

We are deploying our charts with helm update --install --atomic.  We have existing persistent volumes in the kubernetes cluster we are deploying too and the helm chart defines persistent volume claims on them.  When we are deploying for the first time (ie there have been no prior successful deployments) and the deployment fails and so rolls back, the persistent volumes are left in a Released state and subsequent attempts then fail due to the PVCs not being able to bind any more.  The only solution I've found to this is to delete the persistent volumes and recreate them.  If at least 1 successful deployment has been made, then failed deployments roll back fine and the PVs and PVCs are left in a valid state.  Is this a bug or am I doing something wrong?
Output of helm version: 3.0.0 (but we've encountered this with several 3.0.x releases)
Output of kubectl version: 1.15.7
Cloud Provider/Platform (AKS, GKE, Minikube etc.): AKS

Yes, this is intended behaviour.
Closing as a duplicate of https://github.com/helm/helm/issues/5156

It's not clear that this is a duplicate of #5156.  At least the problem being described here is not explicitly described in that issue.  The point of the atomic flag should be that you return to the previous state on failure but this is failing to do that.  I can't see how or why this could be intended behaviour?

Persistent volumes are ignored during any delete operation, including --atomic. #5156 aims to address that by removing PVCs during a delete operation, like a helm rollback (which is how the --atomic flag works in principle).


Improvements on apt-get

dist-upgrade would break the system potentially. making the apt-get non-interactive makes the installation true automated, and you shouldn't hide the logs at all! :)

The sudo export commands throw me an error:  "sudo export command not found".
However, changing it by this way=> export "DEBIAN_FRONTEND=noninteractive apt-get -y upgrade", it goes correctly.

Only one thing, sudo export XXXX throws an error. Export XXXX must be done without sudo, and after that, you could do sudo apt update YYYY.
I'll give you an example:
echo "Installing new packages..."
export DEBIAN_FRONTEND=noninteractive
sudo  apt-get install -y git chromium-browser nautilus openssh-server sshpass squid3 squid-cgi apache2 xdotool unclutter
By the way, thanks for your improvements. If you can change this, this pull request can be merged after according it with other org members.
Kind regards

@navijo There you go!

Thank you @BirkhoffLee!


MINOR: Refactor StreamsProducer usage

Related to KIP-447 (extracted from #8218 to keep the other PR smaller):
We want to use StreamsProducer instead of KafkaProducer within ActiveTaskCreator. Furthermore, StreamsProducer should expose metrics and close the internal KafkaProducer.
The lion's share of the PR is additional code cleanup, mostly related to generics.
Call for review @guozhangwang @abbccdda @vvcephei

After taking to @guozhangwang offline, I realize that this PR does actually not make sense. The idea of KIP-447 is to have a StreamProducer per task that all share the same KafkaProducer. Hence, the TaskCreator must stay in charge to create the producer as the StreamsProducer cannot guarantee the correct setup.


chore(master): release 1.0.0

:robot: I have created a release beep boop
1.0.0 (2023-03-28)
Features

add slack icon (2ac06e9)
improving developer experience (#1) (2c411c7)
slack icon (3750aeb)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/keywind/releases/tag/v1.0.0 :sunflower:


add a blank line to follow the rule of golangci-lint

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

/lgtm


Windows OnSave

When saving a inkscape file on Windows 11, the generated command to export the file doesn't work. with the file test.svg in the folder img it generates a command like:
""c:...\inkscape.exe"" "c:...\img\test.svg" --export-area-page ... --export-filename "c:...\img"/"test".pdf
while it should generate:
"c:...\inkscape.exe" "c:...\img\test.svg" --export-area-page ... --export-filename "c:...\img/test.pdf"
so the Variable from the executable has to many quotation marks and when the variables for the Directory and Filename get's joined there is also an error with the quotation marks, because they should only be at the beginning at very end.

I think i also found a solution, inside the vars.ts file remove the 'wrapQuotes' function, so you can manually add them in the extension settings, i wanted to change this myself, but sadly i didn't managed to pack the source to a vsix file...

nice catch! right know i occupied with other stuff, but soon i will change this and other issues. Thanks for the issue!

Removed the quotes, tested and working on linux and windows! Thanks again and sorry for the wait


Latest is-explicit fails

I'm seeing TypeError: is is not a function errors on a simple test scene:
var ae = require('after-effects');
ae(() => alert("Hello!\nFrom node.js"));
The solution is to downgrade is-explicit. I dropped from 1.0.6 to 1.0.1 and the test above works without error.
Flagging for @mikkoh and @mattdesl, as it I originally encountered this  #while trying to use ae-to-json.

Thanks for pointing this out.
I updated is-explicit to be an es6 package, and didn't increment the version correctly.
Fixed in after-effects 0.4.10

@BenGaumond great to see this module in a repo ;) I've since left Jam3 so I haven't been as active working with After Effects.


Request to include my Flutter plugin to communicate with feathers js server in the awesome list

🐦  Ping feathers js api server from flutter app 🐦
Communicate with your feathers js server from flutter
This is not really an issue but a request to add a flutter plugin which i'm developping and maintained.
Feature supported now by the plugin

Authentication et reAuthentication trougth rest and socketio
File upload is supported on rest client
All rest methods are implemented
All socketio methods are implemented
Socketio event listen method are implemented but not fully tested at this moment

For more infos:
See it on github: https://github.com/Dahkenangnon/flutter_feathersjs.dart
See it on Pub.dev:  https://pub.dev/packages/flutter_feathersjs/

If this is not where to make a such request, please let me know it.
Thank

It is but you can also add it yourself by clicking the Edit button in https://github.com/feathersjs/awesome-feathersjs/blob/master/README.md. This will automatically create a pull request with the changes you are suggesting.

Ok, done.

Waiting for review and merge
Have good day


[BD-46] fix: default color for not valid value

Description
Add default value for invalid color proposed in PR comments
Issue
Deploy Preview
Include a direct link to your changes in this PR's deploy preview here (e.g., a specific component page).
Merge Checklist

[ ] If your update includes visual changes, have they been reviewed by a designer? Send them a link to the Netlify deploy preview, if applicable.
[ ] Does your change adhere to the documented style conventions?
[ ] Do any prop types have missing descriptions in the Props API tables in the documentation site (check deploy preview)?
[ ] Were your changes tested using all available themes (see theme switcher in the header of the deploy preview, under the "Settings" icon)?
[ ] Were your changes tested in the example app?
[ ] Is there adequate test coverage for your changes?
[ ] Consider whether this change needs to reviewed/QA'ed for accessibility (a11y). If so, please add wittjeff and adamstankiewicz as reviewers on this PR.

Post-merge Checklist

[ ] Verify your changes were released to NPM at the expected version.
[ ] If you'd like, share your contribution in #show-and-tell.
[ ] 🎉 🙌 Celebrate! Thanks for your contribution.

Thanks for the pull request, @khudym!
When this pull request is ready, tag your edX technical lead.

@khudym can we also update initial state variables on the docs site? Replace empty strings with valid colors, otherwise we get a brief NaNNaNNaNNaN error
https://github.com/openedx/paragon/assets/52399399/1f2142fa-f10c-4c8e-a516-5545383b8099

We discussed this in the working group meeting and the conversation there led to a "we shouldn't allow invalid hex" decision.
After looking into that a bit more, I don't think "we shouldn't allow invalid hex" is a complete solution to our problem. react-colorful avoids some parts of this issue by not supporting a state where a color has not been picked.
We need to support at least entering valid hex or an empty string (to allow clearing out the pick), but it gets even more complex than that.
The react-colorful examples also allow backspacing, allowing users to have the entered text not match the value in the picker, only updating once the value is valid again.
I made a draft PR where I tried to put together what feels to me like desired behavior for this component https://github.com/openedx/paragon/pull/2734

@brian-smith-tcril Thanks for the context! I really wasn't sure what's going on with this component... I'll take a look at you PR as well.

Colsing this as the issue was fixed in #2734


Create a Request object and an interpretRequest path

There is a mostly-standard JSON request format that's pretty widely support across GraphQL implementations, even if not part of the spec per se.  This PR adds a Request type that mirrors that format, and a top-level interpretRequest entry point to run it.
The real goal of this is to allow a Servant path like
type GraphQLAPI = "graphql"
                  :> ReqBody '[JSON] GraphQL.Request
                  :> Post '[JSON] GraphQL.Response

graphQLServer :: Server GraphQLAPI
graphQLServer = liftIO . runRequest

The one big caveat in this PR is that you can't 100% deserialize Value objects without knowing their type context.  This assumes that JSON strings are always GraphQL strings (they could also be enums or schema-specific scalar types) and that JSON numbers are always GraphQL floats (they could also be integers and that's probably the common case).

Hi @dmaze,
Thanks for this PR—it seems like a good idea. I'd like to have a look over it before merging to make sure I understand it.
Out of curiosity, can you share a little about what you're using graphql-api and servant for?
Thanks,
jml

My day job is using GraphQL pretty successfully, and in particular, the React+Relay+Flow JavaScript stack has been a pretty comfortable way to write front-end applications that don't need much state beyond what they can get from the server.  For my personal tasks I prefer to use languages where, say, it's possible for my editor to notice simple typos.
The specific thing I'm actually playing with is an application that reads the MBTA's (Boston public transit agency) real-time data feeds, caches them in a Persistent (SQLite) database, then re-serves the cached data to a front-end that can display the actual travel times between a pair of stops on a day-to-day basis (while the T claims the Red Line has a 92% on-time rate, it feels to my like at least 25% of my commute-time trips have significant delays).  If the back-end exposed a GraphQL interface, then the front-end would be very familiar space to me...which brought me here.


Fix bad experience if you collect Allocation Stacks and the circular buffer wraps

The scenario is that you have a large allocation trace and it wraps in the circular buffer.
Today you lose the type events so you get many  unknown types.
This happens both with the ClrProfiler collection as wellas the ETW based collection.
At least warn people about how to fix it.

We should look for a runtime startup event in the trace and if we don't find it for the process we should create a warning.


Motion detectors not reporting motion to the panel in Home Assistant

Virtual keypad functions set/unset working fine. Open/close sensors reporting to the panel and recorded in Home Assistant but the motion sensors not reporting any motion in Home Assistant. Is this the way you set up the concord232 server to interact with Home Assistant. The motion sensors are set up using the binary_sensor and were exposed to Home Assistant in that way. Is there anything I can change so Home Assistant can detect motion via the motion sensors.

Fwiw my motion sensors worked out of the box.

Ok thanks! Just seems like there was a lot of people with unsolved problems. Nice to hear it’s working for some. Guess I will give it a try.

Virtual keypad functions set/unset working fine. Open/close sensors reporting to the panel and recorded in Home Assistant but the motion sensors not reporting any motion in Home Assistant. Is this the way you set up the concord232 server to interact with Home Assistant. The motion sensors are set up using the binary_sensor and were exposed to Home Assistant in that way. Is there anything I can change so Home Assistant can detect motion via the motion sensors.

mralapete,
Have you tested if your motion sensors work when an alarm is triggered?
My motion sensors are also wireless and they just send one short open signal when activated and then they don’t register anything for 4 minutes. This is by design to save battery. So when the system is not armed, HA will not register this unless the sensor status is pulled exactly when the open signal is present.
When the system is armed and the motion sensor is triggered, the Alarm Panel will retain the open status of the motion sensor and it shows up as open i HA until the system is disarmed.

That's the problem. It is polling based and doesn't expose anywhere near all of the underlying capabilities of the system. I'm looking around at alternatives. Pity the author didn't reply to my original post. The motion sensors work but a polling system doesn't really suit my needs here.
Check this out. It's an impressive piece of work https://github.com/darconeous/concordd


feat(pipeline): add an ability to auto truncate

Closes #1104

@rudolfix since we have two different concepts of "staging", a staging destination as well as a staging dataset, maybe we should use those terms in config vars more clearly and not just "staging" which could mean both really

@IlyaFaer in the ticket it says we want to truncate the staging dataset, not the staging destination. I also think that the setting should probably be part of the LoaderConfiguration and not be passed down from the pipeline. @rudolfix should we always truncate or only if all loadjobs where successfull? If a mergejob fails because of a connection error or something like that I don't think we should truncate the staging tables, because you can retry the load.

@sh-rp we should truncate only when we complete the load id successfully. so after the complete method is executed.

One thing that I didn't manage to solve is how to patch the LoaderConfiguration, to run tests for both cases. I tried mocking, direct replacing the class in the module, but none worked 🤔

@rudolfix, okay, what do we do, if the client doesn't have should_load_data_to_staging_dataset()? Qdrant supports both merge and replace, but doesn't have the method.

@rudolfix, okay, what do we do, if the client doesn't have should_load_data_to_staging_dataset()? Qdrant supports both merge and replace, but doesn't have the method.

yeah because qdrand does not use staging dataset for merge!
look at my comments: client must implement WithStagingDataset trait which has should_load_data_to_staging_dataset so just move stuff below instance type check!

@rudolfix, hm, some tests fail for Dremio. It seems to me, there staging is always used. Does it mean that staging dataset is not used? I don't see credentials for Dremio in the Secret Manager, so I can't test it locally what's going on there.

@rudolfix, hm, some tests fail for Dremio. It seems to me, there staging is always used. Does it mean that staging dataset is not used? I don't see credentials for Dremio in the Secret Manager, so I can't test locally what's going on there.

we only have local container and there are instructions. take a look in dremio folder in destinations. but I think you won't need it if you fix the pr. see review


add user-agent to aws and gcp requests

Add user-agent to the requests made to AWS and GCP. The user-agent identifies Hive as the user making the requests.
https://jira.coreos.com/browse/CO-268

/lgtm


Error when run sh start_threatupload.sh

I get error when update new version 1.1, when i run sh i get this error
'start_threatupload.sh: line 45: syntax error near unexpected token `do
'start_threatupload.sh: line 45: `for i in ${feeds_list[@]}; do

Hello.
I tested .sh on CentOS 7.5 fnd Debian 8, it works greate.
Does it work, if  line 45 change to
for i in ${feeds_list[@]}  do
?

Hi nikolaiav
Thanks for you help, i tried your new start_threatupload.sh but i get new error
: command not foundsh: line 2:
start_threatupload.sh: line 48: syntax error near unexpected token `do
start_threatupload.sh: line 48: `do

What Linux distr do you use?
Maybe your shell not lokated in /bin. Check  it with env|grep SHELL

I'm using CentOS release 6.8 (Final)
#env|grep SHELL
SHELL=/bin/bash

Tested script on clean installation CentOS 6.8
All works greate Proof screen
Maybe you are in chroot mode, or haven't SH shell?
Try to change first line #!/bin/sh to#!/bin/bash

I found same problem on stackoverflow. Also try this solution

Sorry nikolaiav, i just finished a team building in 3 day. I'm using your new start_threatupload.sh and it work perfect.
Thank so much


Incorrect statement that all emojis from webfx.com are supported

Here are a few that don't work:
:check_mark:
:locked:
:right_arrow:
Whatever the supported set, an accurate reference will be useful.

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

ID: fa622358-f5bb-1f5c-177a-081a37b6acef
Version Independent ID: 72f7fd16-a822-66c8-3a34-8905645ce5f2
Content: Markdown syntax for files, widgets, wikis - Azure DevOps
Content Source: docs/project/wiki/markdown-guidance.md
Service: azure-devops
Sub-service: azure-devops-wiki
GitHub Login: @chcomley
Microsoft Alias: chcomley

@changov -- Chango, thank you for your feedback.  Please consider these resources:

Azure DevOps Services
Azure DevOps on Stack Overflow

@chcomley -- Chrystal, please look into this issue.

We've added updates internally and created a user story to ensure correctness for this article. Thank you!


Redesign schema with more than one table

Right now everything goes in one files table.

I think I need three tables:

drive_files - the current files table with a couple of things extracted
drive_users - needed for concepts like ownership
drive_folders for folders

The hardest data modeling challenge here is folders. How should hierarchy be represented? Also, can a file be in more than one folder at once? parents is an array which suggests that it can.

Looks like the multiple parents thing was removed in September 2020 https://cloud.google.com/blog/products/g-suite/simplifying-google-drives-folder-structure-and-sharing-models

Here's what a file looks like:
{
  "kind": "drive#file",
  "id": "1Xdqfeoi8B8YJJR0y-_oQlHYpjHHzD5a-",
  "name": "california_warn_raw.csv",
  "mimeType": "text/csv",
  "starred": false,
  "trashed": false,
  "explicitlyTrashed": false,
  "parents": [
    "113Wb_KLL1dtgx3vpeRfSTOYIUDf3QnnN"
  ],
  "spaces": [
    "drive"
  ],
  "version": "2",
  "webViewLink": "https://drive.google.com/file/d/1Xdqfeoi8B8YJJR0y-_oQlHYpjHHzD5a-/view?usp=drivesdk",
  "iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/text/csv",
  "hasThumbnail": false,
  "thumbnailVersion": "0",
  "viewedByMe": true,
  "createdTime": "2022-02-19T04:25:16.517Z",
  "modifiedTime": "2020-11-11T18:10:31.000Z",
  "modifiedByMe": true,
  "owners": [
    {
      "kind": "drive#user",
      "displayName": "Simon Willison",
      "photoLink": "https://lh3.googleusercontent.com/a-/AOh14Gg9Loyxove5ocfBp0mg0u2afcTpM1no8QJnwbWnxw=s64",
      "me": true,
      "permissionId": "16974643384157631322",
      "emailAddress"<EMAIL_ADDRESS>    }
  ],
  "lastModifyingUser": {
    "kind": "drive#user",
    "displayName": "Simon Willison",
    "photoLink": "https://lh3.googleusercontent.com/a-/AOh14Gg9Loyxove5ocfBp0mg0u2afcTpM1no8QJnwbWnxw=s64",
    "me": true,
    "permissionId": "16974643384157631322",
    "emailAddress"<EMAIL_ADDRESS>  },
  "shared": false,
  "ownedByMe": true,
  "viewersCanCopyContent": true,
  "copyRequiresWriterPermission": false,
  "writersCanShare": true,
  "quotaBytesUsed": "1070506",
  "isAppAuthorized": false,
  "linkShareMetadata": {
    "securityUpdateEligible": false,
    "securityUpdateEnabled": true
  }
}

Despite parents being a list we know that it should only ever contain a single parent - so we can treat that as a nullable single item.
owners is a list, so it should become a drive_owners many-to-many table against drive_users
lastModifyingUser should be a foreign key against drive_users.

I'm going to turn parents into a single parent that's a foreign key to drive_folders.
Should a folder be stored in both drive_files AND drive_folders? I think not - I think folders should live only in drive_folders.

Relevant challenge: if a user requests a specific folder and we don't have that folder's parents stored, what do we do about it with regards to foreign keys and the hierarchy?
A few options:

Store the parent ID as the parent but tolerate it referencing a record that doesn't exist
Fetch the parent if it's missing, and keep on going all the way up to the user's drive (which has no parents key)
Store a parent of null
Store a parent of null but store an additional column (maybe parent_id?) which isn't a foreign key but does have the missing reference in it
Store parents as a JSON array, but don't store parent

I'm leaning towards that last option - so every folder would have a parents JSON array which is what the API returned, and then most folders would have a parent foreign key which the tool adds.
Might be a bit confusing though?

Another thing worth considering: supporting efficient "all files and folders within folder X" SQL queries without the user having to run a recursive CTE (since those are hard).
I like the three tree mechanisms implemented in https://django-treebeard.readthedocs.io/ - for this tool I think a materialized path might be best, which could look like this:

_path: 0AK1CICIR8ECDUk9PVA/113Wb_KLL1dtgx3vpeRfSTOYIUDf3QnnN/1Xdqfeoi8B8YJJR0y-_oQlHYpjHHzD5a-

The _ prefix is to avoid it clashing with path should they add that to the Google Drive API in the future. I should go with _parent too if I invent that field.
One catch with this: if I don't recursively fetch the parents all the way up to the root I'll end up storing incomplete paths, which seems both unexpected and breaks the model where you can efficiently query every file in a folder using where _path like '0AK1CICIR8ECDUk9PVA/113Wb_KLL1dtgx3vpeRfSTOYIUDf3QnnN/%'
So maybe I should recursively fetch parents after all?

Also messy: what should I do if the user runs this:
google-drive-to-sqlite files files.db --full-text dogs

And the search returns hundreds of matches, each contained in a different part of the folder hierarchy?
Should the tool also fetch the full parent list for every single one of those matches, in order to populate the drive_folders table and correctly populate the full _path hierarchy for every file? That could add up to a LOT of extra queries - potentially 3 or 4 extras per file that came back in the search results, depending on how deep and differing the file hierarchies are.

Solution: only populate _path and _parent if it is efficient to do so.
This is true for the --folder case because it's already walking the hierarchy in a way that will cover every one of the options (bar a few additional queries to find the parents of the starting folder).
For other searches I can leave those fields as null - unless the user adds a --populate-folders option in which case we can do all of that extra work because they opted in to it.

Prototype worked pretty nicely:
diff --git a/google_drive_to_sqlite/cli.py b/google_drive_to_sqlite/cli.py
index da8fc21..cc91298 100644
--- a/google_drive_to_sqlite/cli.py
+++ b/google_drive_to_sqlite/cli.py
@@ -302,8 +302,32 @@ def files(database, auth, folder, q, full_text, json_, nl, stop_after):
     db = sqlite_utils.Database(database)
     # Commit every 100 records
     for chunk in chunks(all, 100):
+        # Add `_parent` columns
+        files = []
+        folders = []
+        for file in chunk:
+            file["_parent"] = file["parents"][0] if file.get("parents") else None
+            if file["mimeType"] == "application/vnd.google-apps.folder":
+                folders.append(file)
+            else:
+                files.append(file)
         with db.conn:
-            db["files"].insert_all(chunk, pk="id", replace=True)
+            if not db["drive_folders"].exists():
+                db["drive_folders"].create({"id": str}, pk="id")
+            db["drive_folders"].insert_all(
+                folders,
+                pk="id",
+                replace=True,
+                alter=True,
+                foreign_keys=(("_parent", "drive_folders", "id"),),
+            )
+            db["drive_files"].insert_all(
+                files,
+                pk="id",
+                replace=True,
+                alter=True,
+                foreign_keys=(("_parent", "drive_folders", "id"),),
+            )

 def load_tokens(auth):

Latest prototype - I think I'm ready to turn this into a tested, documented feature now:
diff --git a/google_drive_to_sqlite/cli.py b/google_drive_to_sqlite/cli.py
index da8fc21..99102af 100644
--- a/google_drive_to_sqlite/cli.py
+++ b/google_drive_to_sqlite/cli.py
@@ -8,7 +8,7 @@ import sqlite_utils
 import sys
 import textwrap
 import urllib.parse
-from .utils import APIClient, files_in_folder_recursive, paginate_files
+from .utils import APIClient, get_file, files_in_folder_recursive, paginate_files

 # https://github.com/simonw/google-drive-to-sqlite/issues/2
 GOOGLE_CLIENT_ID = (
@@ -299,11 +299,58 @@ def files(database, auth, folder, q, full_text, json_, nl, stop_after):
         for line in stream_indented_json(all):
             click.echo(line)
         return
+
+    if folder:
+        # Fetch details of that folder first
+        folder_details = get_file(client, folder, fields=DEFAULT_FIELDS)
+        old_all = all
+
+        def _all():
+            yield folder_details
+            yield from old_all
+
+        all = _all()
+
     db = sqlite_utils.Database(database)
+    save_files_and_folders(db, all)
+
+
+def save_files_and_folders(db, all):
     # Commit every 100 records
     for chunk in chunks(all, 100):
+        # Add `_parent` columns
+        files = []
+        folders = []
+        for file in chunk:
+            file["_parent"] = file["parents"][0] if file.get("parents") else None
+            if file["mimeType"] == "application/vnd.google-apps.folder":
+                folders.append(file)
+            else:
+                files.append(file)
         with db.conn:
-            db["files"].insert_all(chunk, pk="id", replace=True)
+            for table in ("drive_folders", "drive_files"):
+                if not db[table].exists():
+                    db[table].create(
+                        {"id": str, "_parent": str},
+                        pk="id",
+                    )
+                    # Gotta add foreign key after table is created, to avoid
+                    # AlterError: No such column: drive_folders.id
+                    db[table].add_foreign_key("_parent", "drive_folders", "id")
+            db["drive_folders"].insert_all(
+                folders,
+                pk="id",
+                replace=True,
+                alter=True,
+                foreign_keys=(("_parent", "drive_folders", "id"),),
+            )
+            db["drive_files"].insert_all(
+                files,
+                pk="id",
+                replace=True,
+                alter=True,
+                foreign_keys=(("_parent", "drive_folders", "id"),),
+            )

 def load_tokens(auth):
diff --git a/google_drive_to_sqlite/utils.py b/google_drive_to_sqlite/utils.py
index 2d7fbd0..ffbb997 100644
--- a/google_drive_to_sqlite/utils.py
+++ b/google_drive_to_sqlite/utils.py
@@ -7,6 +7,17 @@ class FilesError(Exception):
     pass

+def get_file(client, file_id, fields=None):
+    file_url = "https://www.googleapis.com/drive/v3/files/{}".format(file_id)
+    params = {}
+    if fields is not None:
+        params["fields"] = ",".join(fields)
+    return client.get(
+        file_url,
+        params=params,
+    ).json()
+
+
 def paginate_files(client, *, corpora=None, q=None, fields=None):
     pageToken = None
     files_url = "https://www.googleapis.com/drive/v3/files"

OK, I'm happy with how files and folders work now. Next step: extract users out into drive_users and set up the foreign key for lastModifyingUser and a many-to-many drive_owners table for owners.

Urgh, this is annoying. Consider this lastModifyingUser:
    "lastModifyingUser": {
      "kind": "drive#user",
      "displayName": "Simon Willison",
      "photoLink": "https://lh3.googleusercontent.com/a-/AOh14Gg9Loyxove5ocfBp0mg0u2afcTpM1no8QJnwbWnxw=s64",
      "me": true,
      "permissionId": "16974643384157631322",
      "emailAddress"<EMAIL_ADDRESS>    }

It doesn't have a user ID! Which is frustrating because I want to populate drive_users with uniquely identified records.
That permissionId does appear to be consistently the same ID for each user no matter how many times they appear though. I'm going to treat that as the user ID for the moment and see if it works.

Ended up adding these two tables:
CREATE TABLE [drive_folders_owners] (
   [item_id] TEXT REFERENCES [drive_folders]([id]),
   [user_id] TEXT REFERENCES [drive_users]([permissionId]),
   PRIMARY KEY ([item_id],
   [user_id])
);
CREATE TABLE [drive_files_owners] (
   [item_id] TEXT REFERENCES [drive_files]([id]),
   [user_id] TEXT REFERENCES [drive_users]([permissionId]),
   PRIMARY KEY ([item_id],
   [user_id])
);

Final schema is in the docs here: https://github.com/simonw/google-drive-to-sqlite/blob/319236562ec5c1564f507e65647a9863f20bc3a6/README.md#database-schema


Respawning = glitched chunk sometimes

What version of ViaVersion are you using? Type /ver viaversion
0.7.0
What version of Spigot are you using? Type /ver
CraftBukkit version git-Spigot-db6de12-18fbb24 (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT)
What plugins are you using? Type /plugins
HideStream, LilyPad-Connect, ViaVersion, QuickNoColon, CustomHelp, AutoLapis, WorldReset, Updater, ProtocolLib, HolographicDisplays, CaptureTheFlag, NoCheatPlus >
Are you using any additional software like BungeeCord? If so, what software and version? (Please list your plugins as well)
LilyPad
How does this error happen? login? Using an item?
Only noticed this start happening since 0.7.0, sometimes when you die and respawn the chunk you are in after respawning is completely glitched and invisible, reloading chunks by using F3+a does nothing.  You are unable to look around or move, the only way to fix is by relogging (Assuming the server doesnt kick you for flying).
Have noticed this happen 3 times so far since updating.

Only able to reproduce this using 1.9, 1.8 clients do not encounter this.
Reproduced using 1 plugin (ViaVersion)
Reproduced on regular spigot (Not paper)
Easiest way to reproduce is to simply start up a server and keep killing yourself in the console over and over, eventually will happen.

@alexmarkey thanks, let me try

Can confirm @alexmarkey

Wow this is strange

Doesn't happen for me when switching worlds -> nether -> overworld -> nether etc

unfortunately, this is not fixing the issue. Still experiencing the issue.

@themazim It's working for me, did you try it with the latest build from the build server? http://ci.xephi.fr/job/ViaVersion/39/artifact/target/ViaVersion-0.7.0.jar

I pulled and build. Just tried your build, same behaviour.

Same problem here!!!

@themazim Could you be clear, does this happen in relation to respawning or just TP'ing?

@MylesIsCool Happens when respawning as far as i know but i think it has to do with unloaded chunks

It happened for me as well when respawning in the chunk I died in. But the client probably unloads chunks on death/respawn.

setRespawnLocation in Player Respawn Event:
event.setRespawnLocation(loc);
The chunk is definitely loaded.

Chunks are loaded. tp into loaded chunks is working fine, which was fixed with commit https://github.com/MylesIsCool/ViaVersion/commit/1b99e2cf57f36996fe4723ddda5ba1d1350af00d
Respawning into loaded chunks is still buggy, most if the time it doesn't work.

@themazim Can you try the latest patch?

Just tried the latest patch - still not working. The chunk is not visible. No sure if this is related, but right after respawning the console prints:
[20:16:51 INFO]: [Debug] Respawn player1 -> Chunk loaded
[20:16:51 INFO]: Unable to find entity for metadata, entity ID: 144
[20:16:51 INFO]: Unable to find entity for metadata, entity ID: 151
[20:16:51 INFO]: Unable to find entity for metadata, entity ID: 156

Confirmed that it is still happening to me.

Also happening latest build

@MylesIsCool
This bug only appears when the player die's near his respawn location. But not every time.
This respawn goes wrong: http://haste.cloudwi.de/axefevoboy.css
This respawn works: http://haste.cloudwi.de/kuwiwotoco.css


feature request: ability to issue jobs to queue with included Time To Live duration

I was searching for a queue backed by sqlite that could offer this TTL/Deadline feature that is available in another Postgres-backed queue that I am also using (I'll include the project link below). I've copied the following issue request verbatim from that project to see if you could also consider it for this project because the feature is so very useful:
In some use cases it is very handy to be able to automatically remove a job from the queue if it has not been worked by a specified time duration.
This request is to implement an option/mechanism which allows the developer to specify a duration or Time To Live (TTL) for the job/s issued to the queue.
Personally, I'm not too precious about whether the developer is allowed to set the option at client creation or per request, but I understand that others may be more opinionated about it.

That's a good idea! I'll try and add it today.
(sorry for the late reply, I just saw the issue)

@risico did you manage to make any progress with this feature?

Sorry I just noticed the message, for some reason Github is not sending me the notifications. But yeah, I've just pushed the final code for this: https://github.com/risico/squeuelite/pull/3
Will merge to master in a bit.


Databricks - Seattle Safety Data tutorial

This code segment fails:
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')

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

ID: 355fba0e-958e-f572-18c2-892c91d20b13
Version Independent ID: 7fe76247-c969-2068-2c3c-bf327fbbe39e
Content: Quickstart - Run a Spark job on Azure Databricks Workspace using Azure portal
Content Source: databricks/scenarios/quickstart-create-databricks-workspace-portal.md
Service: azure-databricks
GitHub Login: @mamccrea
Microsoft Alias: mamccrea

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .

Any update on the fix for this?  I just ran into the same issue.

Thanks for providing feedback that helps improve our documentation. This issue has been resolved and the outdated content has been removed. We are closing the issue.
#please-close

#please-close


More than max bombs

when obtaining the 5 bombs before getting the bomb bag, the counter is increased to 15 until the count is modified, then it snaps back to 10

This was fixed in HDR: https://github.com/mint-choc-chip-skyblade/sshd-rando/pull/242


Concatenate paths to include the root folder opened in Atom.

Open-in-browsers generally works well if I have something like ...
LocalHost Url: http://localhost:8080/web

... and if, in Atom, the root folder (File > Open Folder ...) is web (in my local file system at C:\Users\John\Documents\Sda\Code\web\) and I'm loading a file
C:\Users\John\Documents\Sda\Code\web\Libraries\Html5Library\example.xhtml

... then the resulting path sent to browser works as desired:
http://localhost:8080/web/Libraries/Html5Library/example.xhtml

However, if I open a different root folder in Atom. E.g. C:\Users\John\Documents\Sda\Code\EcmaScript then I'm forced to edit LocalHost Url to ...
LocalHost Url: http://localhost:8080/EcmaScript

... in order to get
`C:\Users\John\Documents\Sda\Code\EcmaScript\Examples\dateTimeDemo.xhtml`

... to open as ...
http://localhost:8080/EcmaScript/Examples/dateTimeDemo.xhtml

My suggestion is for open-in-browsers to build the resulting path with the root folder included. That is, so that when I switch to a different folder in atom everything is handled without having to manually edit LocalHost Url.
That is, in my case I'd like everything to work with:
LocalHost Url: http://localhost:8080

I think I understand what you are sayng..I might need to have a project level setting so that when ever you open a different project the base url would be specific for that project...it has to be an enhancement..

What I'm suggesting in an enhancement, yes.
But the suggestion is to, by default, facilitate keeping the base url fixed, the value you enter in LocalHost Url, as you switch between projects.
I'll use some more generic paths, and order the example, which might make things a bit clearer.
Imagine your Windows login name is "John" and you have a local path:
C:\Users\John\Documents\MyWebServerDocumentRoot\

In your Apache  httpdf.conf (for example) you target this local path with
DocumentRoot "C:/Users/John/Documents/MyWebServerDocumentRoot"

And you have several different web projects stored underneath their own folder as follows
 C:\Users\John\Documents\MyWebServerDocumentRoot\WebProject01
 C:\Users\John\Documents\MyWebServerDocumentRoot\WebProject02

Assume those folders are also the folders you open in Atom with File > Open Folder ....
When serving these projects you'll want something like
 http://localhost:8080/WebProject01/
 http://localhost:8080/WebProject02/

And using open-in-browsers from Atom you want to build the path as (using WebProject01 as the example)
 LocalHost Url: http://localhost:8080
 plus
 Project specific path, e.g.: /WebProject01/...

In other words, what you are doing right now, expect including the root folder that you open in Atom as part of the project specific path.
Now a further idea is to allow different base URLs on a project dependent basis. That's not part of my suggestion but it sounds like that's what you mistook my suggestion for. There is sometimes a need for this.  E.g. Sometimes you might be using different local servers, different ports, http V https, etc; depending on the project...
 https://localhost:6230
 http://drupalcopy.localhost:8080

At the moment I have no need for this, so don't build it on my account. But it would round out your tool. At any rate, for me, the more important enhancement is making the baseURL project independent.
I happened to write some code for a different Atom plugin, to achieve what I am suggesting, at https://github.com/brycefranzen/local-server-web-view/issues/3 . With my modifications (not yet folded into the plugin but mentioned in the post) local-server-web-view affords both: project independent Base urls; and project dependent base urls. But the limitation with local-server-web-view is that it operates on only one browser.
It's probably be easier to modify your existing code (I haven't looked at it), but by all means take whatever code of mine if saves any time.

check the latest patch..with the ability to add localhost

Feel free to reopen if still problems exist


Reffy is exporting non-exported terms?

Using [=ascii case-insensitive=] should link over to Infra, but Bikeshed is reporting that it conflicts with WebCryptoAPI. However, I can't find any markup in the WebCryptoAPI spec that would indicate that their ascii case-insensitive DFN should be exported.
Can you fix Reffy so that only exported terms get exported, or explain why reffy thinks this DFN should be exported so that WebCryptoAPI can stop exporting it?
Thanks~

The WebCrypto API is old enough that it does not follow the usual dfn data model. Reffy considers that definitions in old specs are exported by default. That is useful in a number of other cases.
We are considering curating definitions (tracked in https://github.com/w3c/webref/issues/789) but curation involves manual intervention and, for definitions, we need to find a balance between being up-to-date and producing results without ambiguity, as we cannot commit to maintaining patches on a daily basis.
Different specs do export definitions that are already defined elsewhere in practice, see e.g. https://github.com/w3c/webref/issues/306#issuecomment-1354716857 (not sure why WebCrypto does not appear in that list though). In other words, we're not yet at a point where we have a clean global namespace for definitions. That isn't an issue with Respec specs because authors need to be explicit about the list of specs to use for xref purpose.
I'll look into patching Reffy to make an exception for WebCrypto. Looking at references across specs, there are a number of references to WebCrypto that indeed need fixing:

In Turtledove, ref to Throw
In IndexedDB 3.0, ref to Type
In Capability Detection, ref to DOMException
In WebDriver Bidi, ref to TypeError
In CSS Animations 1, ref to case-sensitive

There remain a few references to WebCrypto that seem correct:

WebRTC, refs to AlgorithmIdentifier
WebRTC Encoded Transforms, ref to CryptoKey
WebCrypto Secure Curves, refs in Conventions
HTML, ref to generate a random UUID
Prerendering revamped, ref to generate a random UUID

Going a bit deeper into details, the problem is really the /TR version of the spec. The nightly version of the spec follows the right dfn data model and only export definitions that need to be.
In practice, the references to WebCrypto either are to concepts only defined in the nightly version ("generate a random UUID") or are made through explicit links (through <a data-cite="...">) and thus do not rely on xref data. In other words, I think that we can safely force the definitions in the /TR version of WebCrypto to be "non-exported".

Crawler was patched not to export definitions from the release version of the WebCrypto API. Most of the specs mentioned above that incorrectly linked to WebCrypto have been re-generated since last week and no longer link to WebCrypto as a result. I created pull requests to fix remaining specs: https://github.com/w3c/IndexedDB/pull/401 and https://github.com/WICG/capability-delegation/pull/35


New user activity feature

We can add a feature to show the user's activity so far in KWoC. The PRs of the user opened/closed , issues opened/closed, no. of lines added/deleted, no. of commits displayed separately for each project, points(?) gained. All these information can be obtained from github's GraphQL api. For development, we can generate the activity of KOSS members.

@dibyadas I would like to work on this

Awesome @sipah00 !


WIP: contribute proven position controller improvements

This pr is to contribute useful improvements of the position controller mostly from @Stifael and me.
These improvements already went through several multicopter flight tests.

This is awesome! Thanks @MaEtUgR

The smooth takeoff feature should now be correctly rebased.

I think we can merge this without adding my stuff. otherwise this pr gets too large, and I need to rebase anyway...


Create upt.txt

Official website URL:
http://www.upt.edu.pe/upt/web/index.php
Official website IT-related URL:
http://www.upt.edu.pe/upt/web/facultad/contenido/188/22219543
or
http://epis.upt.edu.pe/acreditacion/
Domain<EMAIL_ADDRESS>proof for Universidad Privada De Tacna:
Screenshot: http://imgur.com/a/Ng3lg

@Finderfire Pull request merged. Thank you!