x/tools/gopls: track saved go.{mod,sum} files in the workspace

gopls currently invalidates package metadata on any change to a go.mod file. This can lead to a poor experience editing go.mod files by hand, as described in #42529.  Fixing #42815 could make this the case for go.sum files as well (though editing go.sum files by hand is not advisable).
We're going to mitigate some of the pain by only invalidating metadata when a go.mod or go.sum is saved. However, this can lead to some confusing edge cases, such as the go mod why hover text referencing a module layout that is inconsistent with the loaded metadata.
On balance these confusing edge cases are likely to be rare and less severe than the current problems editing go.mod files, so we'll proceed with this fix. Longer term, we should change the logic of the workspace to only track saved files, so that features can cleanly operate on just the saved mod/sum files by using the workspace, and can access overlaid content by using the snapshot.
CC @stamblerre @heschik

Another complication here is correctly handling didChangeWatchedFIles notifications when the file change is on disk and the buffer is open and modified. Currently when the event gets to snapshot.clone, we only have the overlay. We need to pass the on-disk file handle as well.

Circling back, I don't think this is necessary given native overlay support.


DSA: Arrays: Plus One #4373

Description 📜
Implemented the DSA plus one problem of Arrays in C plus plus.  Fixes #4373

Type of change 📝

[x] Doc#umentation (Content Creation in the form of codes or tutorials)

Domain of Contribution 📊

[x] DS#A

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

Please review @harshsri28 @sneha-nitdgp

discuss about space complexity

Done @harshsri28

The algorithm and explanation part has been deleted. Add them.

@sneha-nitdgp ya ma'am done, actually It was from another issue. I deleted it. Please review this PR


Update config.toml

Config must contain both short and long letter language codes.

Hey, thanks for the suggestion.
Unfortunately, this isn't really helpful, as there doesn't seem to be a convention for language codes on iTunes.
Just stating that users should use multiple language codes without further explanation of which ones and how to find them (writing "short and long" doesn't help in any way) just raises more questions than it answers.
If someone is having issues downloading a specific language, he can always just remove the language filter and download all subtitles. Then just add the relevant language code from the log to the previous filter.

I don't get it. I gave examples on what language codes iTunes use. It's either "en" or "en-US". Not some iTunes only language codes that they've made up. Not 10 different language codes. They use 2 different language codes. I don't see what harm it would be to add a comment, instead of forcing users to eventually figure it out or worse thinking "0/0 matching subtitles" means there are no subs.
If my comment isn't clear enough then do a better one.
Your example/comment isn't clear at all about this issue of iTunes using 2 different language codes.

It's either "en" or "en-US". Not some iTunes only language codes that they've made up.

There are other cases besides this one.
For example, he can sometimes be replaced with he-il, and I'm sure there are others.
As long as I can't provide a convention to use (like ISO-639-1 for example) or a list of all possible language codes, I see no benefit in adding a comment for a specific language. For all I know, there could be other additional language used for English.

How's your better? You just give 3 examples without any comment, "en-US", "fr-FR", "he", which will lead to either only en/fr or he being downloaded.

I think you don't understand the purpose of this file.
It's not a basic config that users should use. In fact, if people are unsure what to use or are having trouble, they should NOT use a config file with custom settings. That's why there are default settings.
This is file is just an example of how to create a config in a correct format. The languages setting is actually an empty list (which is the default value) in the example config. The example with the language codes you are talking about is in a comment for people to understand how to properly use a list (to avoid people it like [en-US | fr-FR | he] for example).
I just picked 3 random language codes, it's not a specific setting people should use.

Since I myself don't know for sure all the language codes iTunes use for their subtitles, it's up to the users to figure that out. Like I mentioned before, they can (and should, if they're having trouble) just use the default settings, which will download all available subtitles.
I will however try to look into this again once I have some free time and see if I can find a way to solve this issue.


How to add Cognito postConfirmation Trigger to an existing Auth

Which Category is your question related to?
amplify update auth
Amplify CLI Version
4.27.3
What AWS Services are you utilizing?
Auth
Provide additional details e.g. code snippets
Is it possible to add a Cognito postConfirmation trigger to an existing auth resource? If so, which steps should I follow?

Allow unauthenticated logins? (Provides scoped down permissions that you can control via AWS IAM) (Use arrow keys)
❯ Yes
  No

I'm not sure what I originally chose on this, how would I be able to see and would it break anything if I chose a different option than before?

@christodupreez Are you still stuck on this? We automatically point to the default option which you'd originally selected in the update auth flow.


Card events are not updated properly

Thanks for the great control.
I tested this code on Android and it seems like the card events are not updated properly for some reason. It might take them more than few seconds to be updated and even then the percentage value is totally incorrect:
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(
              AppLocalizations.of(context).translate("scratch_card_title")),
        ),
        body: Container(
            child: Column(children: <Widget>[
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Text(
              AppLocalizations.of(context).translate("scratch_card_sub_title"),
              style: TextStyle(fontSize: 30),
            ),
          ),
          Padding(
            padding: const EdgeInsets.all(10.0),
            child: Card(
                elevation: 10,
                child: Container(
                  child: Padding(
                    padding: const EdgeInsets.all(10.0),
                    child: Scratcher(
                      brushSize: 30,
                      threshold: 85,
                      color: Color.fromRGBO(192, 192, 192, 1),
                      onChange: (value) {
                        print("value: " + value.toString());
                      },
                      onThreshold: () {
                        print("DONE!!!");
                        //BlocProvider.of<ScratchCardBloc>(context).dispatch(ScratchCardFinalize());
                      },
                      child: Column(children: <Widget>[
                        Padding(
                          padding: const EdgeInsets.all(12.0),
                          child: Opacity(
                            opacity: 1,
                            child: Text(
                              AppLocalizations.of(context)
                                  .translate("reward_trip"),
                              style: TextStyle(fontSize: 30),
                            ),
                          ),
                        ),
                        Padding(
                          padding: const EdgeInsets.all(20.0),
                          child: Image(
                              image: AssetImage("assets/img/rewards/trip.png")),
                        )
                      ]),
                    ),
                  ),
                )),
          )
        ])));
  }

When I remove the widgets before the Scratcher widgets it all behaves properly.

It seems to be working fine when I remove the out most column widget..

I am quite sure it is related to the outer Column widget. Just changed it to Stack and it seems to be working fine (of course, without the layout I want..)

Hey @guybashan
Thanks for detailed report! I've quickly tested it locally and indeed there is some weird problem with the layout based on columns. Let me get back to you later this day with more details.

@guybashan
Good news - I've managed to fix it in my local setup. Could you please install scratcher directly from the Github to check if the problem has been solved in latest master? If so - I would publish new version of library later this week (worst case - next week).
Just in case - https://flutter.dev/docs/development/packages-and-plugins/using-packages#dependencies-on-unpublished-packages

New version of library has been released to pub.dev 🎉 Closing the issue, feel free to re-open it if the problem still occurs.


Factor vacuum and implement a builder

Description
Factor out vacuum errors and operation into it's own file and use a builder with reasonable defaults. No changes in functionality except the user can provide a Duration when specifying the retention period. This brings us in line with the reference implementation which allows for time periods less than a hour.
This is a breakdown of  #669 to only include the builder functionality.

When proposing #661 I was hoping that we can move away from passing the entire table around to operations, but rather a snapshot of the table (DeltaTableState) and the object store, which may eventually be encapsulated in the mentioned dedicated DeltaLog

Yes I fully agree with this. For this operation only the delta log at a particular version is required and since it's a snapshot isolate we don't have to worry about conflicts.
When it comes to avoiding clones, I don't think just having the state in Arc would solve it since you would need to clone the state to put it into an Arc which then prevent writes. Naively you could use a linked list where each node points to the previous version and then pass around the 'head' of the list. Then operations can write to the log without impacting the view of others and reconcile/fail when they read the ground truth. The primary challenge here would be with Rust's ownership model but I feel like there's a functional data struct that would solve and it would definitely require some reference counting. I might be completely off here >.<

Hi @wjones127 and @roeap
Appreciate your comments and insights that you shared in this PR. I have updated the module description with a bit on time travel, added an example, and resolved the merge conflict.


Prevent infinite recursion in number operation

Fix #113
So after looking more closely, the only way to be in this state (l70, l77 and l84) is if a is not a number,  b is and a does not have an __add method. Since the original number addition can only work with numbers, we should always raise an error when getting to this state.
For clarity I changed the position in the stack of the error (as is done in the original number operation). The new error message is:
local function add(a,b)
    return a + b
end

local ok, res = pcall(add, nil, 2)
print(res)
-- foo.lua:2: attempt to perform arithmetic on local 'a' (a nil value)

require 'autograd'

local ok, res = pcall(add, nil, 2)
print(res)
-- foo.lua:2: attempt to perform an addition between a number and a nil.

Thanks for the fix. Could you make the messages match lua's errors for this? e.g. "attempt to perform arithmetic on a nil value"?

@luketwitter fixed. The only difference is that it won't recover the variable name from the context above.
Let me know if you want me to rebase/squash the commits.

Thanks!


⚠ Bofrost.be has degraded performance

In 7ee068d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1979 ms

Resolved: Bofrost.be performance has improved in 7d42405.


Shader Error /needs reimport after playmode everytime D:<

as title says shader imports fine but hit playmode and boom after exiting playmode its pink XD and needs reimport again everytime

I've been having this same issue when I use Flat Lit Toon in a scene with Unity terrain.


Bump aiohttp

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 98.85%. Comparing base (c6b9c57) to head (459ed99).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   98.85%   98.85%
=======================================
  Files           3        3
  Lines          87       87
=======================================
  Hits           86       86
  Misses          1        1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Restrict ExistClient to low-level operations, move the rest to Resource

as @funkyfuture said:

i think it may be clearer if the specific logics (like assembling the queries) for each resource type are moved to the Resource subclasses and leave only the lower level operations to communicate to the database. if that makes sense and implemented, it might also be clearer to have a staticmethod Resource.from_query_result that yields either a Node… or DocumentResource.

since you pointed out that different server versions (might) require different queries, i'm not so sure that this approach is preferable.


Client constructor is package level protected

Description
org.typesense.api.Client has a package protected constructor.
     Client(Configuration configuration){         this.configuration = configuration;         this.apiCall = new ApiCall(configuration);         collections = new Collections(apiCall);         this.individualCollections = new HashMap<>();         this.aliases = new Aliases(this.apiCall);         this.individualAliases = new HashMap<>();         this.keys = new Keys(this.apiCall);         this.individualKeys = new HashMap<Long, Key>();         this.health = new Health(this.apiCall);         this.operations = new Operations(this.apiCall);         this.metrics = new Metrics(this.apiCall);         this.debug = new Debug(this.apiCall);         this.multiSearch = new MultiSearch(this.apiCall);     }
so when we try to run:  new Client(configuration); from outside the package the error:
error: Client(Configuration) is not public in Client; cannot be accessed from outside package
is displayed.
Steps to reproduce

create a new java project
add typesense-java as dependency
create a method that initiate a TypeSense Client

Expected Behavior
Error: error: Client(Configuration) is not public in Client; cannot be accessed from outside package
Actual Behavior
the constructor should be public or a factor pattern should be used.
Metadata
Typsense Version:
OS:

Fixed in v0.0.2.


Broken tests after upgrading to v7.27.0 (from v7.26.1)

After Upgrading from v7.26.1 to v7.27.0 all my tests are broken with the following error:
/srv/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:84
/srv/tests/TestCase.php:28

Caused by
PDOException: SQLSTATE[HY000]: General error: 1 no such index: IDX_1483A5E9AB677BE6

/srv/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:67
/srv/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458
/srv/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
/srv/vendor/laravel/framework/src/Illuminate/Database/Connection.php:631

Possibly the error might be with the package that has also been upgraded:
doctrine/dbal (2.10.2 => 2.10.3)

Please resubmit this with a filled out issue template.

Sorry I missed the notification.... looks like someone else already opened a new issue for this


Store and retrive a  List in settings

In my project I would like to show the List<string> even after killing(close) the App. I am using the below code for persistent list values.
private const string EmailKey = "emails_key";
        private static readonly List<string> EmailListDefault = new List<string>();

        	public static List<string> EmailList
		{
			get
			{
				return AppSettings.GetValueOrDefault<List<string>>(EmailKey, EmailListDefault);
			}
			set
			{
				AppSettings.AddOrUpdateValue<List<string>>(EmailKey, value);
			}

		}

This list values are getting reset once we kill the app and open it again. however I can get the values for string and bool even after killing the app.
plugin version - 2.5.4
Platform - iOS
Tested on both Simulator and Device.
I would like to get the List values even after killing the App. is there any possibility to retrieve the already saved List.

This is not supported and will not be. I only support what I have listed for specific types. You could always serialize the string out.


Event user joins Channel

Hi,
I want the bot to do something when a user joins a channel, but I couldn't find a fitting event. Is there an event implemented and if not how can I solve it myself?
Thx for your help!

You cannot join a text channel, and for voice channels there's .VoiceStateUpdate.

Thank you very much!


Branch 178260923

Can one of the admins verify this patch?

@tensorflow-jenkins test this please

@tensorflow-jenkins test this please

Can you change no_mac to nomac, @ankurtaly ? Yes, it is a little inconsistent with other tags.

Actually, I'll merge this now since it's just a single test failing. I'll send a PR to fix the tag.


Attempt to extend cookie expiration

This appears working for me. It removed the login prompts every few minutes when using extenral authentication.

@toiyabe Can you review? No rush as I have this deployed with local nuget package.

Hi Eric, sure can this evening. I’m on the road in Chicago but will be back online tonight
Thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe @.>
Sent: Monday, September 2, 2024 2:26:13 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb] Attempt to extend cookie expiration (PR #34)
@toiyabehttps://github.com/toiyabe Can you review? No rush as I have this deployed with local nuget package.
—
Reply to this email directly, view it on GitHubhttps://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325229001, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMRFM3LG3ZXTOK2R5RU25YDZUS3VLAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGIZDSMBQGE.
You are receiving this because you were mentioned.Message ID: @.***>

Eric,
Would you mind if I make you an admin on this repo so you can approve things?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Dean Kauffman @.>
Sent: Monday, September 2, 2024 2:31:16 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>; MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb] Attempt to extend cookie expiration (PR #34)
Hi Eric, sure can this evening. I’m on the road in Chicago but will be back online tonight
Thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe @.>
Sent: Monday, September 2, 2024 2:26:13 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb] Attempt to extend cookie expiration (PR #34)
@toiyabehttps://github.com/toiyabe Can you review? No rush as I have this deployed with local nuget package.
—
Reply to this email directly, view it on GitHubhttps://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325229001, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMRFM3LG3ZXTOK2R5RU25YDZUS3VLAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGIZDSMBQGE.
You are receiving this because you were mentioned.Message ID: @.***>

Totally fine with me! Just let me know what sorts of things you'd want me
to do and I'll just stick to that (e.g. just approve but not release a new
version of the nuget package).
On Mon, Sep 2, 2024 at 1:13 PM Eric Dean Kauffman @.***>
wrote:

Eric,
Would you mind if I make you an admin on this repo so you can approve
things?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Dean Kauffman @.>
Sent: Monday, September 2, 2024 2:31:16 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>;
MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
Hi Eric, sure can this evening. I’m on the road in Chicago but will be
back online tonight
Thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe @.>
Sent: Monday, September 2, 2024 2:26:13 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
@toiyabehttps://github.com/toiyabe Can you review? No rush as I have
this deployed with local nuget package.
—
Reply to this email directly, view it on GitHub<
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325229001>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AMRFM3LG3ZXTOK2R5RU25YDZUS3VLAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGIZDSMBQGE>.
You are receiving this because you were mentioned.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325264876,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZH2OHUMH5JZXVNSG7FA7DZUTBH5AVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI3DIOBXGY
.
You are receiving this because you authored the thread.Message ID:
<MoonriseSoftwareCalifornia/AspNetCore.Identity.
@.***>

Thanks Eric! I can really use the help. I have multiple projects going on. This evening I’ll see you up.
Thanks!!!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe @.>
Sent: Monday, September 2, 2024 4:00:58 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb] Attempt to extend cookie expiration (PR #34)
Totally fine with me! Just let me know what sorts of things you'd want me
to do and I'll just stick to that (e.g. just approve but not release a new
version of the nuget package).
On Mon, Sep 2, 2024 at 1:13 PM Eric Dean Kauffman @.***>
wrote:

Eric,
Would you mind if I make you an admin on this repo so you can approve
things?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Dean Kauffman @.>
Sent: Monday, September 2, 2024 2:31:16 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>;
MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
Hi Eric, sure can this evening. I’m on the road in Chicago but will be
back online tonight
Thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe @.>
Sent: Monday, September 2, 2024 2:26:13 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
@toiyabehttps://github.com/toiyabe Can you review? No rush as I have
this deployed with local nuget package.
—
Reply to this email directly, view it on GitHub<
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325229001>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AMRFM3LG3ZXTOK2R5RU25YDZUS3VLAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGIZDSMBQGE>.
You are receiving this because you were mentioned.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325264876,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZH2OHUMH5JZXVNSG7FA7DZUTBH5AVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI3DIOBXGY
.
You are receiving this because you authored the thread.Message ID:
<MoonriseSoftwareCalifornia/AspNetCore.Identity.
@.***>

—
Reply to this email directly, view it on GitHubhttps://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325297251, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMRFM3JXW4URDFVDCMG42N3ZUTGYVAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI4TOMRVGE.
You are receiving this because you were mentioned.Message ID: @.***>

Hello Eric,
Check your email for an invite to the project.
Also, all unit tests passing (cool!) and the nuget package is pushed.
Next week would you like to connect via Teams or Zoom?
Thanks for everything!!!!!!
-Eric
From: Eric Triebe @.>
Sent: Monday, September 2, 2024 4:01 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb] Attempt to extend cookie expiration (PR #34)
Totally fine with me! Just let me know what sorts of things you'd want me
to do and I'll just stick to that (e.g. just approve but not release a new
version of the nuget package).
On Mon, Sep 2, 2024 at 1:13 PM Eric Dean Kauffman<EMAIL_ADDRESS>wrote:

Eric,
Would you mind if I make you an admin on this repo so you can approve
things?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Dean Kauffman<EMAIL_ADDRESS>Sent: Monday, September 2, 2024 2:31:16 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb<EMAIL_ADDRESS>MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb<EMAIL_ADDRESS>Cc: Mention<EMAIL_ADDRESS>Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
Hi Eric, sure can this evening. I’m on the road in Chicago but will be
back online tonight
Thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe<EMAIL_ADDRESS>Sent: Monday, September 2, 2024 2:26:13 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb<EMAIL_ADDRESS>Cc: Eric Dean Kauffman<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
@toiyabehttps://github.com/toiyabe Can you review? No rush as I have
this deployed with local nuget package.
—
Reply to this email directly, view it on GitHub<
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325229001>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AMRFM3LG3ZXTOK2R5RU25YDZUS3VLAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGIZDSMBQGE>.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325264876,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZH2OHUMH5JZXVNSG7FA7DZUTBH5AVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI3DIOBXGY
.
You are receiving this because you authored the thread.Message ID:
<MoonriseSoftwareCalifornia/AspNetCore.Identity.
<EMAIL_ADDRESS>
—
Reply to this email directly, view it on GitHubhttps://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325297251, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMRFM3JXW4URDFVDCMG42N3ZUTGYVAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI4TOMRVGE.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Yeah, happy to chat! Send me an email.
On Mon, Sep 2, 2024 at 8:36 PM Eric Dean Kauffman @.***>
wrote:

Hello Eric,
Check your email for an invite to the project.
Also, all unit tests passing (cool!) and the nuget package is pushed.
Next week would you like to connect via Teams or Zoom?
Thanks for everything!!!!!!
-Eric
From: Eric Triebe @.>
Sent: Monday, September 2, 2024 4:01 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb @.>
Cc: Eric Dean Kauffman @.>; Mention @.>
Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
Totally fine with me! Just let me know what sorts of things you'd want me
to do and I'll just stick to that (e.g. just approve but not release a new
version of the nuget package).
On Mon, Sep 2, 2024 at 1:13 PM Eric Dean Kauffman<EMAIL_ADDRESS>wrote:

Eric,
Would you mind if I make you an admin on this repo so you can approve
things?
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Dean Kauffman<EMAIL_ADDRESS>Sent: Monday, September 2, 2024 2:31:16 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb
<EMAIL_ADDRESS>MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb
<EMAIL_ADDRESS>Cc: Mention<EMAIL_ADDRESS>Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
Hi Eric, sure can this evening. I’m on the road in Chicago but will be
back online tonight
Thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Eric Triebe<EMAIL_ADDRESS>Sent: Monday, September 2, 2024 2:26:13 PM
To: MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb
<EMAIL_ADDRESS>Cc: Eric Dean Kauffman<EMAIL_ADDRESS>Mention
<EMAIL_ADDRESS>Subject: Re: [MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb]
Attempt to extend cookie expiration (PR #34)
@toiyabehttps://github.com/toiyabe Can you review? No rush as I have
this deployed with local nuget package.
—
Reply to this email directly, view it on GitHub<

https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325229001>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AMRFM3LG3ZXTOK2R5RU25YDZUS3VLAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGIZDSMBQGE>.

You are receiving this because you were mentioned.Message ID:
<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub
<
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325264876>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ABZH2OHUMH5JZXVNSG7FA7DZUTBH5AVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI3DIOBXGY>

.
You are receiving this because you authored the thread.Message ID:
<MoonriseSoftwareCalifornia/AspNetCore.Identity.
<EMAIL_ADDRESS>
—
Reply to this email directly, view it on GitHub<
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325297251>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AMRFM3JXW4URDFVDCMG42N3ZUTGYVAVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGI4TOMRVGE>.
You are receiving this because you were mentioned.Message ID:
<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub
https://github.com/MoonriseSoftwareCalifornia/AspNetCore.Identity.CosmosDb/pull/34#issuecomment-2325545215,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZH2OFK32O7AVDDEWOBYJLZUUVE5AVCNFSM6AAAAABNQX3EX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRVGU2DKMRRGU
.
You are receiving this because you authored the thread.Message ID:
<MoonriseSoftwareCalifornia/AspNetCore.Identity.
@.***>

Hello Eric, I sent you an email. Let me know if you didn't get it.
Thanks!


⚠ Bofrost.de has degraded performance

In fafcaf4, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1307 ms

Resolved: Bofrost.de performance has improved in f57d1e0.


Add add and delete commands for OrderItem model

Ready for review.
Tests have not been added yet, will add them in the next iteration.

Fix #105
Fix #106

Codecov Report

Merging #110 (ecace97) into master (5ebb189) will decrease coverage by 1.82%.
The diff coverage is 0.00%.

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


Full tree optimizer

The original reason why I started looking into this project and worked on #98 was the vision of a tool that builds an entire tree based on specified user criteria.
There's so many tradeoffs (life, mana, damage, cast speed, mitigation etc.) that need to be made when devising a tree, and so many different nodes and node values (with widely varying point investments) that it's hard for a player to create something optimized. Only very few people actually do/check the math. For example, it's generally worth to take the melding cluster (25% ES) over spending those four points in the scion ES wheel (24% after you got Foresight), even if you only care about ES.
Or another example, I often wonder whether I should get more cast speed or rather more spell damage in my tree at a particular point in order to optimize my dps. That obviously depends on my gear and my current tree, but that's data that can already be fed to the existing skill tree tool.
It's only a matter of letting the user communicate his desires and priorities about the tree. Well, "only" doesn't really nail it, the required UI work (and thought) is the entire challenge here.
My current idea is that users can select a node (control-click? Or go into a special mode and right click?) and then choose how much he values certain attributes that node has (which will "apply" to all nodes with those attributes).
Going one step further, either the user should be able to combine attributes (dpsMulti = (1+spelldmg)*(1+castspeed)) or there should premade functions that compute things of interest (total life, armor...). In particular, Compute.cs (I was really impressed somebody sat down and basically recreated the engine!) will provide accurate calculations for whatever setups and gem links people want.
Then there needs to be a way for the user to weight those aspects in a certain way. Here my idea is that the user selects a desired target value and how important it is to reach that value. A Mjölner char has pretty set requirements for str and int (so that would have full priority), but maybe setting desired life to 160% increased and giving it lower priority could give you 150% life with much better dps. You get the point.
Interestingly enough, all the "hard" algorithmic work is already completed with #98: Instead of searching for the set of steiner points with the lowest point investment, all nodes possibly affecting the user defined tree value will be part of the searched node combinations. The genetic algorithm doesn't really care, it only needs a fitness function (providing which will be the challenge). It's obviously going to take longer to find the optimum, but that's a given.
I still don't really know how to represent "value" for this, and how the individual aspects should be combined (multiplied? added?). And especially how to make this somewhat transparent for a user.
So these are the questions I'm asking myself at the moment:
-In what way should the scores for e.g. life and dps be defined, and how should those be combined into a final score/(fitness) value?
-How fast is Compute.cs? Is it modifiable in a way that permits faster calculations when only some/a few of the input things change?
-Most of all: How should the UI for this be built so that it is both powerful but also accessible to an unfamiliar user (who has no idea of math)?
I'm keen to hear your thoughts on this!

The thing about an optimizer, and you know this, is that weights are going to be different every single time you skill a node. I would say start off by calculating its efficiency based on how far and the value on the node.
Not sure if that makes sense so example:
One life node 5% is 10 away and another life node 8% is 15 away the 8% node would technically be more efficient. You may have to calculate how many nodes you can branch off of a single line.

I know that, and I also know that that problem is already solved.
The current algorithm (from #98) is, at its core, a genetic algorithm. It explores a solution space (in this case, a set of nodes to skill), asking a fitness function (in that case, the amount of points invested) to evaluate the "value" of any particular solution. The optimizing algorithm knows literally nothing about the tree! It just (sort of) randomly walks around in the space of all possible solutions (skilled nodes) and tries to find the one that yields the highest value of the fitness function.
For a complete tree optimizer, all you have to do is build a different fitness function that evaluates a given tree. It doesn't matter if some nodes have different values or different distances.
The GA will select a set of nodes and query the fitness function for how good that solution is. The fitness function can then calculate that e.g. that particular tree gives you a life total of 4000 and maybe 7000 dps, which is combined into a single rating ("value", "fitness", whatever you want to call it). Then the GA will try to find better solutions by exploring the vicinity of that solution (if it was decent compared to the others).
The approach is not per-node already. It already evaluates an entire tree at once. Currently it only measures the point investment, but virtually anything (like the number of letters in the node names... or the colors of the pixels in its graphic, it doesn't matter) could be used as the measure that the GA is asked to optimize.
So really, the challenge is to let the user communicate what he wants.

Well, things will get slightly more interesting with #108...

Actually, this is also the reason I looked into this project (although you did the algorithm work far better than I would have been able to).
My take on the rating would be basically a split in two parts, hard and soft constraints. Hard constraints would be stuff like maximum of 110 points spent, a total of 4000 health or Acrobatics keystone included. Those things need to be met for a skill tree to be decently rated.
Then the soft contstraints would influence the rating itself, it would calculate a dps multiplier, a defense-ratio and a utility-ratio that includes everything else and combine these with some weighting into one score. For the influence of certain values the user would be able to weight certain attributes, for example he doesn't want accuracy to be part of the dps-multiplier at all, so that would get a weight of 0, but crit chance to be weighted double, so that would get a 2.
The way all this gets calculated together could be defined by letting the user set a build, that can be optionally automatically generated by the users imported items. For example the main skill, weapon type used, if he wants to go crit or not, what types of defense should be utilized and things like that. This would be probably get very complex pretty easily to account for every case.
A first implementation of the UI to even see if all this is feasible at all would not include all the build and gear things.
With generating most things through imported items and defining preset configurations, this would not get too complex to understand for the user, but with all the things that can influence the optimal skill tree, I doubt there is a non-complex, very easy to understand solution.
Also, here is a really quick non-functional mockup of what I imagined as the UI (obviously not complete, the right side should probably be put into tabs/extra windows, since it would include far more settings).

Regarding jewels: depending on how they will be supported by the planner, either give the optimizer a list of jewels which he picks the best for the available sockets of, or add a setting for how many nodes a jewel socket is worth to the user.

Haha, I'm really glad I'm not the only one out there who sees the potential in this :D

Also, here is a really quick non-functional mockup of what I imagined as the UI
This is already a pretty detailed one. Aspects that I think are already good are the "defense/offense" slider, the ability to load gear, choose bandits and active buffs, as well as being able to save builds.

As far as I'm aware, there's already a fully functional Compute.cs that can handle almost all skill/support gem combinations, including damage conversions and whatnot. It will also calculate total life etc. iirc. We might be able to make use of that and let the user actually specify what he wants to use ingame (items, links). While we could still have presets so users could get started with something, I don't really like the idea of making the creation of new builds more painful than it needs to be.
About the constraints: I too think that there needs to be a distinction in the priority of these, but it's important to keep in mind that the fitness function for the GA won't look nice if you give builds 0 score for not hitting all hard constraints.
What I'd suggest would be a simple priority slider, while the "fulfillment" of the constraint is converted into an exponentially (or polynomially) growing stat, scaled by the priority.
The question still remains how to combine these into one fitness function value: Is having twice the health but half the movespeed as good as having the precise health and movespeed? In other words, do you multiply the constraint satisfaction values? Add them? Something else?
Here's an example of how I imagine it could work (without any thought about if it would actually work out in practice, but just so we have something to start from): All constraint satisfaction values (I'll call it csv) range from 0 to 1 and get multiplied with each other.
Say you have the constraint "total life" set to 4000 and maximum priority. There's also "critical strike chance (your weapon)" as a constraint at 300%, but at half priority. Finally there's a constraint about "increased movement speed" at minimum priority, set at 20%.
The csv for life will look something like this (can't get W|A to scale axes right, mind the y scaling). The csv for crit might look like this, while the csv for movespeed would probably look like this.
Note that this does not yet handle the case where you exceed a constraint target! That would need to be handled in a different manner (and I suppose there are stats for which diminishing returns are harsher than for others: If you're crit capped then exceeding the constraint target should not increase the csv any higher (as in, the user needs to be able to prevent that from happening), but having more life is virtually always welcome.

As far as I'm aware, there's already a fully functional Compute.cs that can handle almost all skill/support gem combinations (I think totems are still not in), including damage conversions and whatnot. It will also calculate total life etc. iirc. We might be able to make use of that and let the user actually specify what he wants to use ingame (items, links). While we could still have presets so users could get started with something, I don't really like the idea of making the creation of new builds more painful than it needs to be.

Yeah, I did not intend to recreate all those calculations.
Being able to specify the build on the item level does sound better than all the different parameters I threw into the mockup. Also with #117 this might be really intuitive to do if you have the option to either import the gear or create it with the item editor. One thing that should be kept in mind is that not everyone has the gear he would like to use or even knows how it would look like, so some gear-independent way should be included.

About the constraints: [..]

If you would give everything a target value and a priority slider, the user would need to be able to specify a target value. For example you might know that you value crit chance above accuracy, but that doesn't mean you know any kind of target value for those.
For the fitness function I imagined something like the hard constraints making up the upper half of the bits and the soft constraints the lower half, so something with better hard constraints is always better than something with worse, but there is still some room for the GA to make selections.
Another idea would be to multiply the hard constraints together as with your example and use that as a multiplier for the (soft-constraints-based) rest of the fitness function. That would at least be a starting point as you said.
However for constraints that do not have a target value (the soft constraints in this case), would need to be scaled differently.
My idea is to have basically three different values, the first is a dps multiplier (as it is calculatetable by Compute.cs I assume), the second is a value for all defense related things (maybe calculate effective hp in some way?) and then everything else like leech, movement speed as a combined third value (these could for example be simply added together). Each constraint that gets calculated into one of the three value would get multiplier by the user given weight before being combined.
Then the question would be how to combine the three values, this would somehow include the defense/offense-slider.

If you would give everything a target value and a priority slider, the user would need to be able to specify a target value.

I can't make sense of that sentence, but I assume you mean what the following sentence explains (somehow value constraints without a target value). Note that this could be kinda iffy, since the app doesn't know anything about the relative worth of stuff. What if you add a life constraint with high priority but no value? Does that mean a tree with 4000 life is rated twice as high as a 2000 one? Or only as a 3000 one? I have trouble putting this on a mathematically sound basis (and you'll notice that new players have this same issue with the tree, we simply have experience to tell us. The question is if we want to give the app "experience").

I imagined something like the hard constraints making up the upper half of the bits and the soft constraints the lower half

I... don't really know what you mean. The bits encode not the fitness function value but the individuals. In other words, the priorities have no influence on the individual representations. I mean, if you want to build the fitness function values bitwise you could do that, but that's equivalent to just weighting each constraint with a (different) power of 2.
Using a uniform formula (as in, not split it into 3 parts) for the fitness function has the advantage that you get predictable results: Adding together csvs and then multiplying them can lead to unexpected (not in the programming sense) behavior, where you can e.g. double a fitness with marginal investment because you added a small value to another small value.
On a related note, if you let the user explicitly specify a target health, total eva/armor etc. while also letting him value dps with constraints, the offence/defence slider loses its meaning. I guess we have to choose here.

I can't make sense of that sentence, but I assume you mean what the following sentence explains (somehow value constraints without a target value).

Yes, I mean constraints without a target value, since for many things the user would not really know what a good target value would be, so the optimizer would have to compare things in a relative way. With your life example my idea would basically multiply the value the tree has for a stat with the constraint value, so the value itself for 4000 life would be rated twice as high as 2000 life.

I imagined something like the hard constraints making up the upper half of the bits and the soft constraints the lower half

I... don't really know what you mean.

I meant in the result of the fitness function. Lets say the fitness is an integer and you have the hard and soft constraint ratings as a short. To combine them, you would put the hard constraint rating in the upper bits of the result and the soft constraints in the lower bits. Could have been worded better.
The split into 3 parts formula would only include ratings for soft constraints, so specified target health and evasion would not influence that.
But I will fiddle around with it later and see if the stuff I'm saying does make any sense.

To combine them, you would put the hard constraint rating in the upper bits of the result and the soft constraints in the lower bits

Hm so you did mean that, I wasn't sure. Again though, this is simply adding them with weights. It would also mean that the soft constraints have 0 impact on which solution is better if the hard constraint ratings differ.

Yeah, using the hard constraints as a factor is probably better.

And yeah, I edit my stuff a lot after posting.

Lol, good that I randomly stumbled upon this sentence and read the comment again. :D

Keep in mind that using this tool for lower levels also makes sense (think LLD or leveling), and it gets really hard if you want to work without user-supplied constraint target values.

Hm, why would it be harder to work without target values on lower levels?
Just an idea to throw in here: A useful feature for leveling trees would be something like only searching in a given subtree (which would be the endgame tree).

I suppose you could do an "autopilot" mode [...], while also having an "advanced" mode

Yeah, that sounds awesome :)
But idk, specifiying target values for everything that is taken into consideration sounds pretty hard on the user part, at least for specific values like % increased damage and things like that. This would probably only have a use on a more abstract level with things like total health, total evasion, dps on the main skill, etc. (which should be possible to calculate with Compute.cs). And also as you said it would be more useful as an advanced mode, since a relatively inexperienced user would not know what dps to shoot for, for example.
I guess the best thing to do is to start with different fitness function approaches and throw out the ones that prove to not be very useful. In the end the remaining ones could then be used for the user to select between (named like "autopilot", "advanced", ...).

For me, it would be totaly enough if full tree optimizer in initial release would have just one button "Optimize" and it could just take my current tree and find "better" one.
If you have tree A with attributes A1..An, then tree B is "better", if it contains all attributes A1..An and their values are same or higher then in tree A, while total used points in tree B is lower than total used points in tree A. Of course, tree B must contain all keystones of tree A.
Simply, don't lower my attributes but try to reduce used points. Then i can decide on my own what to do with those extra points.
Later, in far away future, it could compare computed values from Compute.cs instead of attribute values. But it's not possible atm, due to missing calculations for leeching (life/mana), mana regeneration, mana consuption (skill mana cost, mana reservation) and lot more. You cannot optimize tree disregarding these calculations.

After looking at that UI for optimizer... i don't think it's needed at all :)
Heuristic can be used to determine features of build (tree + equipment).
So you don't need to specify that you are using Split Arrow when we already have that information from equipment.
There is no need to specify critical chance, attack speed and rest of DPS affecting values, if we can calculate DPS and process of DPS optimization is actually to find best combination for all these offensive attributes while raising the DPS.
There is no need to specify which defense types are used. It's determinable from equipment and tree.
And so on.

You are requiring people to actually have made a tree so they can use the full optimizer. I would like to be free of all "prejudice" when giving input to the optimizer, and no matter how you build your tree, you'll always end up with a confused/misinterpreting optimizer ("oh no, I didn't get 14 flat energy shield, let's scrap this beautiful tree").
If we implement your "optimize button" idea, we would end up with an optimizer that can already optimize based on (extremely rigid) constraints. It would actually be a waste to not let the user choose what he wants directly instead of the "make a tree and try to avoid very specific things" (think 30% stun avoidance, 8% status ailment avoidance, 30% reduced enemy critical strike multi etc.). It's also a lot harder to make the optimizer work with that "all or nothing" approach: If you tell him that every tree that doesn't have all constraints has 0 score, it will never be able to approach an optimum.
This is also why i proposed the exponential scaling approach for the csv earlier: You give the optimizer a hint of progress, but the biggest score increase happens when you reach the target value.

Well, optimizing tree is what i expect from tree optimizer :) Not build wizard. I don't want optimizer to play game for me. I have good tree and i want to make it better. That all or nothing was just an example of different approach. If it's not possible then it's ok. Reduction of nodes used is way to optimize tree too. Each extra point saved is actually improvement. You just don't have to specify beforehand into which direction (i.e. which stat you want to improve with those free points).
If i want to make tree from scratch i can already do it now. I can tag nodes i want and just skill them :)
So all those "i want this at X" and "that at Y" constraints would save bit of simple math and few clicks as opposite to current "skill nodes" implementation with manual node selection.
At the end of day, i'm worried how useful it would be with those "constraint this and that". Because, whatever solution will be found, there can be multiple better solutions if i swapped only 1 item in build before running it.
But why not, someone might use it. Just thinking out loud :)

Optimizer here is probably not the best word, what we discussed is more a generator (that solves an optimization problem).
But there really isn't much difference in the end. If one is done, the other is simple a matter of changing the start configuration (between starting from an empty or a given tree).
The thing with your suggestion is, if the optimizer would only produce trees that have exactly the same stats (or better), there would not be much too optimize, because one tree statistic configuration is pretty unique.
What you implicitly assuming is that things like base stat travelling nodes for example are not relevant, but that is knowledge the optimizer would need to have. Also if you have specific things like 30% stun avoidance, how would the optimizer know if that is relevant to tree or can be skipped?
From the point of telling the optimizer what kind of stats are relevant you pretty easily get to fully constrainting the stats, so you are at the point where we currently are, just with a different start configuration and an emphasize on less points spent, which both are not hard to do.
So as you can see, there really isn't much difference between starting from scratch or from a given tree. The difference between optimizing and generating a tree is probably even smaller than that between generating a tree and the current "skill node" way. It isn't simple math that would be done by the algorithm, most people that make skill trees don't do the math if for example 4% attack speed or 10% physical damage is better in the current situation.

But why not, someone might use it. Just thinking out loud :)

Honestly, I don't have any idea if people would use something like this. But I am interested in coding it, so that is enough for me :)

Optimizer here is probably not the best word, what we discussed is more a generator (that solves an optimization problem).

Yeah, i already noticed that it isn't what i thought it would be :) Maybe issue should be renamed to "Skill tree generator" or wizard to not give people false hopes :p

What you implicitly assuming is that things like base stat travelling nodes for example are not relevant, but that is knowledge the optimizer would need to have.

Yep, it should have this knowledge. As i mentioned earlier. If lowering base stat doesn't break item/gem requirement (which we don't care about for now), then value of base stat node is implicitly just "less you travel better it is".

Also if you have specific things like 30% stun avoidance, how would the optimizer know if that is relevant to tree or can be skipped?

I think that's the main problem. Why should it skip in first place? I think the base premise, that existing tree is wrong is incorrect. All stats in my existing tree are relevant to me.
But in this particular example, bit of thinking tells me, that if maximum value of stun avoidaince is 100% and node gives 30% of those 100%. Then this node might be way more relevant than 5% maximum Life node from let's say 140% maximum Life from all allocated tree nodes.
Well, this is the real challenge of tree optimization :) So you either create such ranking algorithms or just shift it to user.

It isn't simple math that would be done by the algorithm, most people that make skill trees don't do the math if for example 4% attack speed or 10% physical damage is better in the current situation.

Then what's the point of asking people to enter such constaints in your optimizer settgins UI? :) The question "is 4% attack speed better than 10% phys damage?" should be solved by optimizer.
In this example, there is simple way to rank their value. You just have to use computed stat like DPS to compare their impact.

Something that might not be clear enough: Doing it constraint based does not necessarily mean that the user would see those constraints (see the "automated" mode above). They are internally needed to have a proper way of comparing trees.

Yeah, i already noticed that it isn't what i thought it would be :) Maybe issue should be renamed to "Skill tree generator" or wizard to not give people false hopes :p

Well, I don't think it gives false hopes because they are very similar and implementing both is not much overhead over only implementing one.

I think that's the main problem. Why should it skip in first place? I think the base premise, that existing tree is wrong is incorrect. All stats in my existing tree are relevant to me.

No, not all stats in your existing tree are relevant to you. Say for example you picked up "Master of the arena" notable at Duelist start, but you are a bow build. The optimizer would be locked onto that node because it is the only one that has the stat "+# to Melee Weapon and Unarmed range" (that is completely irrelevant to you), so every tree that does not have that node, has to be discarded.
One could argue the same way about stun avoidance if you have stun immunity for example trough Unwavering Stance.

Well, this is the real challenge of tree optimization :) So you either create such ranking algorithms or just shift it to user.

Yes, that challenge is exactly what we were discussing previously :)

Then what's the point of asking people to enter such constaints in your optimizer settgins UI? :) The question "is 4% attack speed better than 10% phys damage?" should be solved by optimizer.
In this example, there is simple way to rank their value. You just have to use computed stat like DPS to compare their impact.

As I did write above, those constraints, especially in this case, would be done implicitly by the optimizer. The reason I wrote it, was to show that a tree generator is not just the "Skill node" feature plus "simple math".

From what I can tell, brather1ng have quite the same idea with where can (and want to) take this.
l0g0sys, For your application of "make my tree better" you can already simply select all nodes that are relevant to you and do the "Skill highlighted nodes" as it is currently ("Reduction of nodes used is way to optimize tree too. Each extra point saved is actually improvement." -> That's precisely what I would use the current version for). I understand that you would maybe also want the tree to consider different life clusters, but that's exactly where we get to what we actually want to implement: You tell the optimizer what you actually want instead of letting it guess.

The question "is 4% attack speed better than 10% phys damage?" should be solved by optimizer.

You seem to have misunderstood: That's exactly what the optimizer would do for you, it's not "simple math" as you said earlier ("...would save bit of simple math and few clicks"). That's why we want to let the optimizer build entire trees from scratch with a certain itemset in mind, because computers are good at figuring this stuff out, while brains get easily biased by stuff.

there can be multiple better solutions if i swapped only 1 item in build before running it.

This is a very good and valid point. It would probably be worthwhile to somehow output a set of trees (maybe with a certain minimum difference between them, you don't need 3 otherwise identical trees that have insignificant pathing differences). Like, the best tree is shown but you have a list of alternatives to check.

I have done some basic work on this. Once I have the basic class structure done (without any real new functionality), which will hopefully be in a few days, I'll push it to a branch in my fork.
I can give MLanghof and anyone else that wants to help with it write access there then.

The initial class structure is now done (see my treeGen branch).
If @MLanghof or someone else wants to help me with the implementation, I'll give you write access to my fork and I guess it is better to move most of the discussion there to keep this somewhat clean.
If not, you'll hear from me once I have something done that is worth showing off :)

So how's your progress @brather1ng? I think I might have the time now to progress this further :)

I have not done anything the last week, but am currently working on it again.
A very basic "AdvancedSolver" is nearly done (with only the basic attribute constraints), I only need to link the GUI to the Solver. That should hopefully be finished today.
For a todo/idea list, see TreeGenerator.ViewModels.AdvancedTabViewModel in my treeGen branch. The first three is what I want to finish for a first, maybe somewhat useful, Tree Generator.
The CreateSolver method there is what it does atm if you run the generator with the Advanced tab open (Tools -> Nodes -> Skill Tree Generator), the Tagged Nodes tab does the same thing as Skill Tagged Nodes and the Automated tab doesn't do anything (well it does something, it crashes the program ;) ).

That very basic Solver is working now. Not with acceptable results, but at least working :D
I guess if you want to help it's best to organize the stuff a bit more than my basic list, so we should probably move the discussion and todos to issues in my fork. So feel free to open an issue there for whatever you decide to start working on. I am done for today, so you can pick up on anything atm :)

If someone someday plans on going further with the tree generator, it's probably better to discuss that in a new issue anyway. On my todo list it's so far back that it has a good chance that I'll never get to it.

I would agree, this is a bit old and some information might be outdated. Closed.


Support single allow ip for kms connection(Triage on ostracon#707)

cosmos-sdk also need to apply https://github.com/Finschia/finschia-sdk/pull/1142


Feat/deterministic hashing with variable length output

This closes https://github.com/cds-snc/url-shortener/issues/87
Main changes:

hashing algorithm with deterministic and variable output length

output length is configurable using environment variable: SHORTENER_PATH_LENGTH

A list of peppers are used to handle collision and make the hash not easily guessed

list of peppers are configured using environment variable: HASHING_PEPPERS
configuration is considered a secret and is stored in github secret and AWS Parameter store

Amazing work Cheng! I tested it and it works great. The only thing that I noticed is that as a result of the character set change, the WAF regex rules will need to be tweaked but I can do that today.

@sylviamclaughlin Thx. Oh, I am not familiar with these rules. Can you show me where they are? There's also flexibility in changing character set (e.g. if we want to extend the char set to A-Za-z0-9 from the current a-z0-9). This portion of the URL is case sensitive. So we will likely need to encode the digest (e.g. base32 hex).

With regards to encoding, if we want the full url safe character set A-Za-z0-9 to be used, we can use base64 encoding with /+ translated to characters in the set and stripping the padding character =. The length can be influenced/controlled by the length of the digest in bytes (e.g. 4 bytes -> length=6, 5 bytes -> length=7, 6 bytes -> length=8).
For example:
>>> base64.b64encode(digest.digest(4), altchars=b'AZ').decode().rstrip('=')
'Npdxuw'
>>> base64.b64encode(digest.digest(5), altchars=b'AZ').decode().rstrip('=')
'Npdxuyw'
>>> base64.b64encode(digest.digest(6), altchars=b'AZ').decode().rstrip('=')
'Npdxuyy5'
>>> base64.b64encode(digest.digest(7), altchars=b'AZ').decode().rstrip('=')
'Npdxuyy50g'

This produces a more aesthetically pleasing shortened URL (when compared with raw hex digits).

This produces a more aesthetically pleasing shortened URL (when compared with raw hex digits). An additional benefit is that with a larger character set, the likelihood of a collision also decreases.

I think this sounds like a good argument to me. We may at some point have to revisit the character set, but let us go with this approach until it changes!

@sylviamclaughlin @maxneuvians Can you pls review 6a60e5296b39bdefaa77a3b85b0ca4fe2cf8f7ba?


No rounded searchform in .navbar-search

It seems that if you'll a input field  in the navbar it is always heavily rounded, in my oppinion bt should have an option to get rectangle search field
Like here in the upper side of the image: http://img7.imagebanana.com/img/n24eezo0/Zwischenablage0111.png

You only get the custom navbar search form styles if you apply those specific classes. For a regular form input, just add .navbar-form to the form. I've updated the docs in 2.0.2-wip to reflect this required class.


[Question]: No motion detection updates when the notifications of the camera are disabled

Ask your question
Hi, I have a Eufycam 2C and noticed that, when the notifications are disabled for this camera, that I won't recieve updates on motion detection.
Is this by design?
I'm using this home assistant custom component and would like to create automations based on motion detection, even when the notifications of the camera are disabled.
In the Eufy app I have created 2 modes:

Home mode: in this mode the notifications are disabled and I don't recieve motion detection updates.
Away mode: in this mode the notifications are enabled  and I do recieve motion detection updates.

You only get updates because this application reads the same notification as you get on your phone. It subscribes to notifications in order to emit the events you see in Home Assistant.

As @Palmke has already correctly explained, it relies on push notifications and unfortunately there is no other option.


Authentication using PAT for Azure DevOps GIT Rest API

See https://github.com/MicrosoftDocs/vsts-docs/issues/2455#issuecomment-439503194. I learnt that by using the URL in the form<EMAIL_ADDRESS>I can do a git clone with no extra headers or authentication.
I wanted to do the same thing with the REST API to access Items (See Items Rest API https://docs.microsoft.com/en-us/rest/api/azure/devops/git/items/get?view=azure-devops-rest-5.0).
For example, I want to authenticate the following API call using the above way if possible -
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/items?path={path}&api-version=5.0
Is it possible, or am I misinformed about this possibility?

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

ID: 53f99d2d-363b-d01d-039d-4fdc636fa2df
Version Independent ID: f47330d5-e2de-36a4-e5b3-5bc77505b161
Content: Authenticating with personal access tokens
Content Source: docs/integrate/get-started/authentication/PATs.md
Product: devops
Technology: devops-ecosystem
GitHub Login: @elbatk
Microsoft Alias: elbatk

Similiar issue here when trying to use PAT to authorize the creation of a new release. I'm trying to make a POST to https://vsrm.dev.azure.com/{organizationId}/{projectId}/_apis/Release/releases?api-version=5.0 with the header "Authorization: Basic {BASE64 Encoded Token}" (similiar code as example above). I'm always getting a 203 Non-Authorative response, even after adding full permissions to the PAT in use. Can someone help with this?

Hi @nikhilepicor and @lusocoding, I've engaged one of our experts, @JimsonChalissery , so he should be able to help you shortly. Thank you!

Some tools like Postman apply base64 encoding by default. SoiIf you are trying the APIs via tools like Postman there is no need to apply base64 encoding. Try this and see it that helps.

Hi @JimsonChalissery, for me that's not the case. I'm trying to call the REST API either via C# HttpClient or via curl request. Not using any of those tools. I followed the C# example in the documentation and the way the authorization header is being set is exactly the same.

Finally able to find what was happening. When encoding to base64 I was only using the PAT. Instead the format "{username}:{pat}" must be used, which in this case user is empty:
var authToken =  Convert.ToBase64String(Encoding.ASCII.GetBytes($":{accessToken}"));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authToken);

Finally able to find what was happening. When encoding to base64 I was only using the PAT. Instead the format "{username}:{pat}" must be used, which in this case user is empty:
var authToken =  Convert.ToBase64String(Encoding.ASCII.GetBytes($":{accessToken}"));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authToken);

Just as an FYI for others, I ran these commands to get the token and used $token as accessToken (in nuno-barreiro's solution)
az login
$token = az account get-access-token --query accessToken -o tsv;


Project forms: URLs not wrapping

Issue
On project forms, long document URLs are not wrapping inside table columns, which looks messy.
Note that this table appears on every single tab.
Also remember that there is a Short and Long version of both the Initiation and Tracking forms. We should make sure that this is fixed in all versions.
Example:
https://tola-activity-qa.mercycorps.org/workflow/projectagreement_update/2143/#approval

If you click the "Add documentation" button, note the Document column is not wrapping.

Closing because we're no longer developing Projects


Edit topic button unusual behaviour when the topic name is (no topic).

Issue : Edit topic button does not behave properly when the topic name is not set (or named as (no topic) ).

@zulipbot claim


Fix #1165, random UT failures, avoid create new process in UT

@kkasravi
This PR fixed the two issues you raised in #1027 and #970, do you have comments on this?

further comments?

+1


DELETED

skype : live:me_iam_1
paid sollution

Yes just add me on skype.
Sen, 20 Jul 2020 pukul 21.22 Muhammad Abdullah<EMAIL_ADDRESS>menulis:

skype : live:me_iam_1
paid sollution
Are you available right now can you help me in running the app?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/szdc/tiktok-api/issues/144#issuecomment-661070801,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI37XDPMWPX6KZPYJ3Q5UWDR4RHI3ANCNFSM4KOFPXPA
.

Hi,
I leave you messages at Skype for the paid solution. Please check it
On Mon, Jul 20, 2020, 7:26 PM kagar-in<EMAIL_ADDRESS>wrote:

Yes just add me on skype.
Sen, 20 Jul 2020 pukul 21.22 Muhammad Abdullah<EMAIL_ADDRESS>menulis:

skype : live:me_iam_1
paid sollution
Are you available right now can you help me in running the app?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/szdc/tiktok-api/issues/144#issuecomment-661070801,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AI37XDPMWPX6KZPYJ3Q5UWDR4RHI3ANCNFSM4KOFPXPA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/szdc/tiktok-api/issues/144#issuecomment-661073481,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJMDZSKYOCD4ULUWYWB3PELR4RHZPANCNFSM4KOFPXPA
.

Already replied.
Sab, 25 Jul 2020 pukul 19.45 Muhammad Abdullah<EMAIL_ADDRESS>menulis:

Hi,
I leave you messages at Skype for the paid solution. Please check it
On Mon, Jul 20, 2020, 7:26 PM kagar-in<EMAIL_ADDRESS>wrote:

Yes just add me on skype.
Sen, 20 Jul 2020 pukul 21.22 Muhammad Abdullah<EMAIL_ADDRESS>menulis:

skype : live:me_iam_1
paid sollution
Are you available right now can you help me in running the app?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/szdc/tiktok-api/issues/144#issuecomment-661070801
,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AI37XDPMWPX6KZPYJ3Q5UWDR4RHI3ANCNFSM4KOFPXPA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/szdc/tiktok-api/issues/144#issuecomment-661073481,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AJMDZSKYOCD4ULUWYWB3PELR4RHZPANCNFSM4KOFPXPA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/szdc/tiktok-api/issues/144#issuecomment-663851552,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI37XDNY5IIDXONGPNJ3D5LR5LHVRANCNFSM4KOFPXPA
.

I can register a device. Send me a request at telegram t.me/mrklintscher

Closed


fix: add support for flag 'live-only' in applications:list

Add support for --live-only to applications:list command

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Is the sort function of entries jobs is working correctly ?

I have reviewed the code and found an issue in these line of code:
From line 54 at https://github.com/robfig/cron/blob/master/cron.go
type byTime []*Entry

func (s byTime) Len() int      { return len(s) }
func (s byTime) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s byTime) Less(i, j int) bool {
	// Two zero times should return false.
	// Otherwise, zero is "greater" than any other time.
	// (To sort it at the end of the list.)
	if s[i].Next.IsZero() {
		return false
	}
	if s[j].Next.IsZero() {
		return true
	}
	return s[i].Next.Before(s[j].Next)
}

You said Two zero times should return false.
The first element is correct.
if s[i].Next.IsZero() {
		return false
}

The second element is wrong.
if s[j].Next.IsZero() {
		return true
}

It's OK.
From the Entry...
	// The next time the job will run. This is the zero time if Cron has not been
	// started or this entry's schedule is unsatisfiable
	Next time.Time

From Less...
	// (To sort it at the end of the list.)

So, Zero means it should be at the end. If the first element is zero, then it has a higher position than the second element, not lower. If the second element is zero, then it's like the max there is, so there is nothing than could be higher than that. It's not the perfect if statement on the first part, but the second if is good.
Sometimes dev comments can be confusing, just read the code and understand what the function wants to achieve.
What I'd do though, is change the if statements order, because it's useless to do a Swap if s[i].Next and s[j].Next are both zero.
	if s[j].Next.IsZero() {
		return true
	}
	if s[i].Next.IsZero() {
		return false
	}

Oh. i see. Thanks. I'll close this issue.


i18n: ES - translate file chapter2/6.mdx

Translate file chapter2/6.mdx to spanish
Related to: #38

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Fix Broken Tutorial Link

The tutorial link on the platform is currently broken or misdirected. It should properly route users to the following URL: https://developer.movementnetwork.xyz/.
This fix will ensure that developers and users can easily access the tutorial resources and avoid confusion or navigation issues.

@Rahat-ch I would love to be assigned to this issue.


Add support for tvOS

Could you please add tvOS to the podspecs file

@ptr-is please do as @sanketfirodiya suggested

Closed because user is not with us anymore


Return Value of context.navigation.openForm(options, parameters)

When using context.navigation.openForm(options, parameters) in a PCF control, the return value is expected to be a Promise<OpenFormSuccessResponse>
I cannot find documentation on that particular promise.
When testing in browser console for the return value, I see the following is returned:
An array of type savedEntityReference with the following key value pairs:
entityType: string
id: Object {guid: string}
name: string

There seems to be a particular issue with the Id key-value because when I attempt to capture the returned Id from the savedEntityReference object, it returns undefined.
If I wanted to get to the value of the returned Id value (e.g. to perform some logic after the form closes), this is the only thing that I've found that will work.  Is this the recommended pattern?
				let entityId = response.savedEntityReference[0].id 					.toString() 					.replace("{", "") 					.replace("}", ""); 				console.log(entityId);

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

ID: a1584e4c-abec-d444-2fa5-cf84dc3b33fe
Version Independent ID: 89452bfa-cd47-879c-90f5-64e327942b27
Content: openForm - Power Apps
Content Source: powerapps-docs/developer/component-framework/reference/navigation/openform.md
Service: powerapps
GitHub Login: @Nkrb
Microsoft Alias: nabuthuk

@rn85apps Thanks for contacting us. The savedEntityReference method returns the parameters defined in the EntityReference doc, I have updated the same and will get the docs published live by EOD.
Please raise the second issue in the community forum. Our developers will help you resolve the issue. Closing the issue.


Document Ongoing support needs

Identify and document needed resources and time/effort needed to support NAD HUB after the handoff to DOT team

Talked to Mel Keen at 18F to see if they have templates we can use. Will follow up with her on Thursday, October 24


Suppress Angular5 Peer Dependency Warnings

Tested existing code for Angular5 compatibility. No significant compatibility issues found.
Related Open Issues: #386 #392

Merge?

I'm more than happy to open this project for other contributors to maintain - please DM me if you're interested


vcocalc.py should have an option to use the default REFDIV of 2

#952 added support for non-standard REFDIV values in vcocalc.py (though doesn't add command line arguments for them)
REFDIV 1 is now supported, so will be used in preference to REFDIV 2 in many cases (and set_sys_clock_pll by default only uses the default REFDIV value of 2)
perhaps adding the refdiv-min and refdiv-max aeguments and defaulting the former to 2 would be a reasonable way to solve the problem

cc @alastairpatrick
Note, REFDIV is only settable by #define which was intentional as it is common, perhaps we should add some blurb to the vcocalc.py output to say how to set up that clock

note actually, maybe we should default both refdivs min/max to 2, or default them to 1 and 63 as they are now, but add an flag to allow you to pick a REFDIV other than 2

Regarding "REFDIV is only settable by #define which was intentional as it is common," is that actually true? I haven't tried but the RP2040 datasheet suggests that the SYS and USB PLLs have independent REFDIVs, so if that's actually true, it might make sense to have separate REFDIV #defines for each PLL.
Alternatively, the USB PLL will basically always want to run at 48MHz. 48MHz can be achieved with both REFDIV=1 and REFDIV=2:
Requested: 48.0 MHz
Achieved: 48.0 MHz
REFDIV: 1
FBDIV: 120 (VCO = 1440.0 MHz)
PD1: 6
PD2: 5

So it should be possible to make things work with just a single common REFDIV #define, set to either REFDIV=1 or REFDIV=2, have USB clock domain always operate at 48MHz and the SYS clock domain operate at whatever the desired frequency was passed to vcocalc.py.

it might make sense to have separate REFDIV #defines for each PLL.

This was (kind of) touched upon recently in #1272

Fixed with SDK 2.0.0


No version selector menu

I use the following command to build the documentation:
$ sphinx-versioned -b "sphinx_versioned, v1.0, v2.0" -m sphinx_versioned
| SUCCESS  | - latched into the git repo
| SUCCESS  | - located conf.py
| INFO     | - Selecting tag for further processing: sphinx_versioned
| CRITICAL | - Branch not found: ``, use `--force` to force the build
| INFO     | - Selecting tag for further processing: v1.0
| CRITICAL | - Branch not found: ``, use `--force` to force the build
| INFO     | - Selecting tag for further processing: v2.0
| INFO     | - pre-building: sphinx_versioned
| SUCCESS  | - pre-build succeded for sphinx_versioned :)
| INFO     | - pre-building: v1.0
| SUCCESS  | - pre-build succeded for v1.0 :)
| INFO     | - pre-building: v2.0
| SUCCESS  | - pre-build succeded for v2.0 :)
| SUCCESS  | - Prebuilding successful for sphinx_versioned, v1.0, v2.0
| INFO     | - Building: sphinx_versioned
| INFO     | - Theme: sphinx_rtd_theme
| SUCCESS  | - build succeded for sphinx_versioned ;)
| INFO     | - Building: v1.0
| INFO     | - Theme: sphinx_rtd_theme
| SUCCESS  | - build succeded for v1.0 ;)
| INFO     | - Building: v2.0
| INFO     | - Theme: sphinx_rtd_theme
| SUCCESS  | - build succeded for v2.0 ;)
| SUCCESS  | - main branch: `sphinx_versioned`; generating top-level `index.html`

 Successfully built sphinx_versioned, v1.0, v2.0

However, when I visit the generated index.html no version selection menu is shown on the front page:

| SUCCESS  | - main branch: `sphinx_versioned`; generating top-level `index.html`

I am running this from branch sphinx_versioned. Why does it say "main branch" here?

when I visit the generated index.html no version selection menu is shown on the front page:

Found the problem: I visited _build/html/index.html which was probably a directory generated sphinx-build not by sphinx-versioned. The correct index.html is at _build/index.html

| SUCCESS  | - main branch: `sphinx_versioned`; generating top-level `index.html`

I am running this from branch sphinx_versioned. Why does it say "main branch" here?

Hi!
Essentially, unless a different output is set using --output, the docs for branches are generated at docs/_build/{branch name}/.
sphinx-versioned also generates a top-level index.html at docs/_build/index.html for easier access to the main/latest branch.
Using the cli argument -m sets that particular branch as the main branch -- that means the top-level index.html will point to that specified branch.


Indentation is odd

Problem Statement
I'm using xq for the first time and think I'm encountered an issue with the formatting. As far as I understand, it is supposed to pretty-print the result. When I feed it with an already formatted input, the indentation of the result is odd.
But please correct me if my expectation is wrong. :)
Steps to Reproduce
Consider the following as the input and run xq test.html:

        Welcome

        Here is no content, yet.

Actual Result
Now the output of xq has the closing tags more deeply indented compared to the opening tags.

        Welcome

        Here is no content, yet.

Expected Result
I expected that the indentation changed to xq's default of 2 spaces but consistently.

@exploide thank you for your bug report!
It is surprisingly tricky because from the HTML parser point of view, the text node with "Welcome" text, in fact, consists of "newline" + "several spaces" + "Welcome" + "newline" + "several spaces." I can't just "trim" all the whitespace. Need to think about the way how to solve it.


[Facebook] User typing event not coming

Bot Info

SDK Platform: REST API
SDK Version:
Active Channels: Skype, Slack, Facebook, Kik
Deployment Environment:  Azure Bot Service, deployed in Heroku.

Issue Description
I am interested in capturing the event of the user typing in my bot.
Botframework documentation says this is possible: [...] typing    Indicates that the user or bot on the other end of the conversation is compiling a response [...]
This answer says Facebook Messenger does not support it (2017).
Perhaps some channels (Slack, Skype...) might support this, others don't (Facebook).
Perhaps I just didn't find the right place in documentation to make it work, if so, any link I can follow?
Is this functionality in the roadmap? If yes, ETA?
Thanks in advance for the support!

Hi fcarriedos,
We don't have any control or information on what channels provide or not this functionality. From what I have seen, Facebook doesn't seem to support it and Slack does:
https://api.slack.com/events/user_typing
As you mentioned we support the typing activity on both sides but is up to you to dig into the channels' APIs to discover if they also provide this functionality.
You can try to capture this activity in your bot and see what channels allow you to show user typing. However, it doesn't seem to be a consistent feature across different channels and therefore, maybe not the best choice for your bot if you opt to deploy to more than one channel.
What is your motivation for capturing user's typing activity? Maybe we can work around that and find a solution.
Regards,
Francisco

Update on this particular.
No isTyping event comes after testing with some more providers apart from Slack and Facebook:

Skype.
Kik.

The isTyping is sent correctly (same code) to all the channels above but Slack, 200/OK is the response in all cases though:
Works
--------

2018-02-11T00:59:19.674508+00:00 app[web.1]: sendIsTyping(): sending isTyping to<PHONE_NUMBER>486050
2018-02-11T00:59:19.674686+00:00 app[web.1]: sendNonReplyMessage(): {"type":"typing","from":{"name":"howdiditgo","id":"157631501557174"},"conversation":{"name":"useronfacebook","id":"1609228262486050-157631501557174","serviceUrl":"https://facebook.botframework.com","channel":"facebook","group":false},"recipient":{"name":"useronfacebook","id":"1609228262486050"},"serviceUrl":"https://facebook.botframework.com"} to https://facebook.botframework.com/v3/conversations/1609228262486050-157631501557174/activities
2018-02-11T00:59:20.671601+00:00 app[web.1]: sendNonReplayMessage(): HTTP response code 200
2018-02-11T00:59:20.671608+00:00 app[web.1]: ===============================================
2018-02-11T00:59:20.671612+00:00 app[web.1]: Received response from Azure
2018-02-11T00:59:20.671614+00:00 app[web.1]: Status line:
2018-02-11T00:59:20.671766+00:00 app[web.1]: HTTP/1.1 200 OK
2018-02-11T00:59:20.671869+00:00 app[web.1]: The headers:
2018-02-11T00:59:20.671942+00:00 app[web.1]: Cache-Control: no-cache
2018-02-11T00:59:20.672131+00:00 app[web.1]: Pragma: no-cache
2018-02-11T00:59:20.672260+00:00 app[web.1]: Content-Type: application/json; charset=utf-8
2018-02-11T00:59:20.672326+00:00 app[web.1]: Expires: -1
2018-02-11T00:59:20.672587+00:00 app[web.1]: Vary: Accept-Encoding
2018-02-11T00:59:20.672654+00:00 app[web.1]: Server: Microsoft-IIS/10.0
2018-02-11T00:59:20.672763+00:00 app[web.1]: Request-Context: appId=cid-v1:4ca03842-d082-4e2e-b3b4-609aa044a18f
2018-02-11T00:59:20.672827+00:00 app[web.1]: X-Powered-By: ASP.NET
2018-02-11T00:59:20.672940+00:00 app[web.1]: Strict-Transport-Security: max-age=31536000
2018-02-11T00:59:20.673026+00:00 app[web.1]: Date: Sun, 11 Feb 2018 00:59:20 GMT
2018-02-11T00:59:20.673194+00:00 app[web.1]: The body:
2018-02-11T00:59:20.673299+00:00 app[web.1]: {}
2018-02-11T00:59:20.673362+00:00 app[web.1]: ===============================================
2018-02-11T00:59:20.673475+00:00 app[web.1]: sendNonReplyMessage(): message sent howdiditgo - User on Facebook
2018-02-11T00:59:20.673541+00:00 app[web.1]: sendIsTyping(): isTyping sent to<PHONE_NUMBER>486050

Does NOT work
----------------------

2018-02-11T01:19:39.611086+00:00 app[web.1]: sendIsTyping(): sending isTyping to U948GNRB6:T954QRP62
2018-02-11T01:19:39.614222+00:00 app[web.1]: sendNonReplyMessage(): {"type":"typing","from":{"name":"omniwithnotifs2","id":"B96HEU0UD:T954QRP62"},"conversation":{"name":"useronslack","id":"B96HEU0UD:T954QRP62:D979KJ6BG","serviceUrl":"https://slack.botframework.com","channel":"slack","group":false},"recipient":{"name":"useronslack","id":"U948GNRB6:T954QRP62"},"serviceUrl":"https://slack.botframework.com"} to https://slack.botframework.com/v3/conversations/B96HEU0UD:T954QRP62:D979KJ6BG/activities
2018-02-11T01:19:40.472244+00:00 app[web.1]: sendNonReplayMessage(): HTTP response code 200
2018-02-11T01:19:40.472307+00:00 app[web.1]: ===============================================
2018-02-11T01:19:40.472349+00:00 app[web.1]: Received response from Azure
2018-02-11T01:19:40.472374+00:00 app[web.1]: Status line:
2018-02-11T01:19:40.472466+00:00 app[web.1]: HTTP/1.1 200 OK
2018-02-11T01:19:40.472498+00:00 app[web.1]: The headers:
2018-02-11T01:19:40.472594+00:00 app[web.1]: Cache-Control: no-cache
2018-02-11T01:19:40.472628+00:00 app[web.1]: Pragma: no-cache
2018-02-11T01:19:40.472637+00:00 app[web.1]: Content-Type: application/json; charset=utf-8
2018-02-11T01:19:40.472737+00:00 app[web.1]: Expires: -1
2018-02-11T01:19:40.472756+00:00 app[web.1]: Vary: Accept-Encoding
2018-02-11T01:19:40.472805+00:00 app[web.1]: Server: Microsoft-IIS/10.0
2018-02-11T01:19:40.472826+00:00 app[web.1]: Request-Context: appId=cid-v1:6814484e-c0d5-40ea-9dba-74ff29ca4f62
2018-02-11T01:19:40.472854+00:00 app[web.1]: X-Powered-By: ASP.NET
2018-02-11T01:19:40.472878+00:00 app[web.1]: Strict-Transport-Security: max-age=31536000
2018-02-11T01:19:40.472907+00:00 app[web.1]: Set-Cookie: ARRAffinity=536560f5105d11a84605c968f3028673a3977bf4bbae1d8b4d66aa788853ff8b;Path=/;HttpOnly;Domain=slack.botframework.com
2018-02-11T01:19:40.472961+00:00 app[web.1]: Date: Sun, 11 Feb 2018 01:19:39 GMT
2018-02-11T01:19:40.477760+00:00 app[web.1]: The body:
2018-02-11T01:19:40.477767+00:00 app[web.1]: {}
2018-02-11T01:19:40.477825+00:00 app[web.1]: ===============================================
2018-02-11T01:19:40.477930+00:00 app[web.1]: sendIsTyping(): isTyping sent to U948GNRB6:T954QRP62

Thanks for the support in advance!

Thanks for looking into this fcarriedos!
I agree that knowing when the user is typing could be valuable. Unfortunately, most of the channels don't seem to pay attention to this specific activity.

Absolutely! If channels don't send it, there is nothing Azure can do.
What about sending the isTyping from Azure to Slack? That should work, and actually it does for all channels I tested but Slack. The traces up there show a working (Facebook) and not working (Slack).
I found a work around luckily given the way Slack and Azure integrate, but it forces me to have separate code paths, which is exactly what I hoped Azure to avoid.
Do you agree there is an issue sending isTyping to Slack through Azure?

Hi fcarriedos,
Are you still having this problem with Slack?
Francisco

Will retry and come back to you.


No connection to CharaCloud

Cannot connect to the character library. when I try the text below appears on the cmd window. I am using a windows PC, Nodejs on v21.7.1. and TavernAI version is 1.5.4. so everything is updated to the latest.
No connection to charaCloud
Error: connect ETIMEDOUT <IP_ADDRESS>:443
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1605:16) {
errno: -4039,
code: 'ETIMEDOUT',
syscall: 'connect',
address: '<IP_ADDRESS>',
port: 443,
request: ClientRequest {
_events: [Object: null prototype] { error: [Function (anonymous)] },
_eventsCount: 1,
_maxListeners: undefined,
href: 'https://tavernai.net/api/server/status',
options: {
host: 'tavernai.net',
port: null,
path: '/api/server/status',
href: 'https://tavernai.net/api/server/status',
method: 'GET',
headers: {}
},
_httpRequest: Writable {
_events: [Object],
_writableState: [WritableState],
_maxListeners: undefined,
_options: [Object],
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 0,
_requestBodyBuffers: [],
_eventsCount: 2,
_onNativeResponse: [Function (anonymous)],
_currentRequest: [ClientRequest],
_currentUrl: 'https://tavernai.net/api/server/status',
[Symbol(shapeMode)]: true,
[Symbol(kCapture)]: false
},
[Symbol(shapeMode)]: false,
[Symbol(kCapture)]: false
}
}

I checked, the server is currently up and running.


Abstracting Db providers factories

someone please check regression before merging pull request

@iceclow did the Postgres tests work for you after merging in this change? I'm seeing 4 failing tests that seem to have been caused by this pull request. Or am I missing a config file or something?

@daniellee there is commit 99a1e7f32594086ae81b1d56e82031037912451e from #180 pull request, which fixes the issue with postgress

@hazzik thanks for the tip. I'll see if I can merge it in over the weekend or at least cherry pick the postgres factory fix.


allow other ffi integrations

added callback_fn, so it can be used for NodeJS integration

@theomonnom hey, I'm working on updating the Unity LiveKit sdk and am curious about this pr where InitializeRequest was removed. The comments above still state you should start with InitializeRequest and pass in the callback method. Since that is removed here, how are we supposed to pass in the callback method?


Is this library only for full screen viewing?

Is this library only for full screen viewing?

I'm just a user, not the dev, but I never had any trouble using it for smaller views.
Incidentally, in case you're unaware, this repo is largely deprecated, replaced by MathBox v2:
https://gitgud.io/unconed/mathbox


feat: isolated error and skip messages

Codecov Report

Merging #142 into develop will decrease coverage by 0.58%.
The diff coverage is 73.33%.

@@             Coverage Diff             @@
##           develop     #142      +/-   ##
===========================================
- Coverage    82.61%   82.03%   -0.59%
===========================================
  Files           16       16
  Lines          489      501      +12
  Branches       122      123       +1
===========================================
+ Hits           404      411       +7
- Misses          28       31       +3
- Partials        57       59       +2

Impacted Files
Coverage Δ

src/interfaces/listr.interface.ts
100.00% <ø> (ø)

src/renderer/verbose.renderer.ts
75.00% <66.66%> (-6.82%)
:arrow_down:

src/renderer/default.renderer.ts
77.44% <68.42%> (+0.02%)
:arrow_up:

src/lib/task-wrapper.ts
85.71% <71.42%> (-0.96%)
:arrow_down:

src/lib/task.ts
81.44% <84.61%> (+1.22%)
:arrow_up:

src/utils/logger.ts
85.10% <0.00%> (-2.13%)
:arrow_down:

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 e754922...5b8735d. Read the comment docs.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[pt-br] Sync pt-br l18n strings with the English version.

Changes

Sync the l18n strings in the Brazilian Portuguese localization with the current English version.
Add small updates to content/pt-br/community/_index.html and content/pt-br/docs/_index.md.
Fix case studies title (was "Casos de Estudo", but correct translation in Portuguese is "Estudos de Caso").

/cc @edsoncelio @MrErlison

Thanks!!
/lgtm

/approve