Complete the 8-bit interface architecture

Summary of the Pull Request
This PR adds support for the missing operations that are required in the
8-bit interface architecture extension.
DECAUPSS - Assign User-Preference Supplemental Set
DECRQUPSS - Request User-Preference Supplemental Set
ACS - Announce Code Structure for ANSI levels 1, 2, and 3
Detailed Description of the Pull Request / Additional comments
For the UPSS assignment there's a new wstring_view in TerminalOutput
that tracks the current mapping table for the character set, and a new
VTID field tracking the ID so it can be queried. The ANSI conformance
just required a couple of calls to existing methods to designate the
appropriate character sets and GL/GR maps.
And now that we've implemented everything that's required, I've updated
our device attributes report (DA1) to indicate support for the 8-bit
interface architecture (feature 14).
This PR also addresses some issues with the way the 8-bit GR capability
is managed. Previously a soft reset (DECSTR) would return the code
page to its startup state, and the restore cursor operation (DECRC)
could have a similar effect. This was a problem for 8-bit apps that
weren't expecting that behavior.
I've now made it so those operations no longer have any effect on the
code page, and the same applies to the C1 parsing option (DECAC1). The
only way to restore the code page and C1 parsing to their startup state
now is with a hard reset (RIS).
Validation Steps Performed
I've added unit tests covering the DECAUPSS and DECRQUPSS sequences,
and I've also manually tested their behavior in Vttest.
PR Checklist

[x] Closes #16546
[x] Tests added/passed

Thanks so much for this! Sorry I missed this one :smile:


Provide type of attributes

(result in combination with https://github.com/camel-tooling/camel-language-server/issues/69 )


[Feature request] AutoTokenizer

Name of the feature
Loading just the tokenizer for a model, given a Hugging Face repo path/name/url.
Reason for request
I have a use case where, given a Hugging Face text-generation model URL, I need to be able to load the tokenizer only.
IIUC, what I'm looking for is a port of AutoTokenizer?
I'm not sure what the best approach here is, or whether this is something that you want to support with transformers.js, but just putting it out there because it might be helpful to hear about a use case.
Additional context
My specific use case is that I have a web app where people can swap out the OpenAI endpoing for their own OpenAI-compatible endpoint using an inference server like hyperonym/basaran. They specify a huggingface model but I need to download the tokenizer because some tokenization operations (specifically for context limit calculations) are done on the client (eventually, thanks to transformers.js and friends, inference will be possible on the client too, but waiting for WebGPU & models that meet the quality threshold for this particular use case).
Potentially related/useful:

https://github.com/pyodide/pyodide/pull/3422
https://github.com/josephrocca/tokenizers-pyodide
https://github.com/mithril-security/tokenizers-wasm

Hi! Sorry for the delayed response, but to answer your question... It's already supported :)
Here's example code:

let url = 'https://huggingface.co/Xenova/transformers.js/resolve/main/quantized/gpt2/causal-lm-with-past/';
let tokenizer = await AutoTokenizer.from_pretrained(url);

let tokens = await tokenizer('I love Transformers.js!');
console.log(tokens);

Which will output:

Just be sure to use the url which contains /resolve/main. Another thing, is that the model should contain tokenizer.json and tokenizer_config.json (which should be exported when using .save_pretrained() from Python

The arguments for tokenizer(...) can be found here:
https://github.com/xenova/transformers.js/blob/83308707524deb8b97eeb1535850a99c43125379/src/tokenizers.js#L1523-L1547

Proper documentation is coming soon though! (see here)

Ah that's great - thank you!!


MNT: Load reportlets interfaces from nireports rather than niworkflows

Reverts nipreps/fmriprep#3182, restoring #3176. There's an issue with the CompCor reportlets to resolve before we can merge.
cc @celprov

Issue should be solved by nipreps/nireports#84

@celprov Needed to pin to a branch instead of a version: af2a495
This should pass now. And you can do the same thing in #3177.

LGTM


PublishPackageOperation.cs package name does not handle wildcards

I'm attempting to push nuget packages that have some dynamic sections to their file names (version/build etc..) so I tried to set package name to packages\*.nupkg however this results in 'does not exist'.  Looking at the code I think package name should allow wildcard expansion.
Something like https://stackoverflow.com/questions/381366/is-there-a-wildcard-expansion-option-for-net-apps

We don't do this sort of wildcard expansion on arguments like this; we do have file masking, which allows you to search for files across directories in some operations.
One way to accomplish this in the Inedo Execution engine would be using a variable function or a powershell snippet that iterates *.nupkg files in a for-each loop.


Windows Live Connect support

Hello guys,
I successfully integrated facebook and google services on my app, but now I also have to integrate Windows Live Connect login service.
Does this plugin support it?
I checked the list of services available and it is not present, a lot are, but not live connect.
Can it be supported? I know Windows was a small market-share, and it's somehow forgotten but some love will be appreciated. =)
Thank you.

It is not currently supported, but a quick Google search says that it can be added:
https://msdn.microsoft.com/en-us/library/hh243647.aspx
Since I do this as a hobby in my spare time, I make no guarantees on when I can add this, but I will when time permits.  Anyone contributing to this repository can also take the lead on this particular provider if they want to.
Regards,

Hello nraboy, thank you for your response.
I wanted to help and solve my problem, so I digged into the source code and the Microsoft documentation. I think this could be a solution. I don't know how to make a "check in" here, so if you think the code is ok, you could merge it into the master. It's working on my app... I will let you here a sample code so you could try it.
For the moment I added this on my local ng-cordova.js.
/*
        * Sign into the Facebook service
        * @param    string clientId
        * @param    array appScope
        * @param    object options
        * @return   promise
        */
        winliveconnect: function (clientId, appScope, options)
        {
            var deferred = $q.defer();

            if (window.cordova)
            {
                var cordovaMetadata = cordova.require("cordova/plugin_list").metadata;

                if (cordovaMetadata.hasOwnProperty("org.apache.cordova.inappbrowser") === true)
                {
                    //http://localhost/callback is not working in this case, if localhost is used as redirect_uri
                    //an error page will be returned. see docs here: https://msdn.microsoft.com/en-us/library/hh826529.aspx
                    //the redirect_uri is set to the according docs recommendation.
                    var redirect_uri = "https://login.live.com/oauth20_desktop.srf";

                    if (options !== undefined)
                    {
                        if (options.hasOwnProperty("redirect_uri"))
                        {
                            redirect_uri = options.redirect_uri;
                        }
                    }

                    //we build the url string with all the query-string params. display=touch will be added to load a more friendly mobile device page.
                    var browserRef = window.open('https://login.live.com/oauth20_authorize.srf?client_id=' + clientId + "&scope=" + appScope.join(",") + '&response_type=token&display=touch' + '&redirect_uri=' + redirect_uri, '_blank', 'location=no,clearsessioncache=yes,clearcache=yes');

                    browserRef.addEventListener('loadstart', function (event)
                    {
                        if ((event.url).indexOf(redirect_uri) === 0)
                        {
                            browserRef.removeEventListener("exit", function (event) { });

                            browserRef.close();

                            var callbackResponse = (event.url).split("#")[1];
                            var responseParameters = (callbackResponse).split("&");
                            var parameterMap = [];

                            for (var i = 0; i < responseParameters.length; i++)
                            {
                                parameterMap[responseParameters[i].split("=")[0]] = responseParameters[i].split("=")[1];
                            }

                            if (parameterMap.access_token !== undefined && parameterMap.access_token !== null)
                            {
                                deferred.resolve({ access_token: parameterMap.access_token, expires_in: parameterMap.expires_in });
                            }
                            else
                            {
                                deferred.reject("Problem authenticating");
                            }
                        }
                    });

                    browserRef.addEventListener('exit', function (event)
                    {
                        deferred.reject("The sign in flow was canceled");
                    });
                }
                else
                {
                    deferred.reject("Could not find InAppBrowser plugin");
                }
            }
            else
            {
                deferred.reject("Cannot authenticate via a web browser");
            }

            return deferred.promise;
        }

This method can be called inside a controller or service:
angular.module("WindowsLiveModule", [])
.controller("WindowsLive", ["$q", "$http", "$cordovaOauth", function ($q, $http, $cordovaOauth)
{
        var appID = "00000000XXXXXXX";
        var permissions = ["wl.signin,wl.offline_access,wl.basic,wl.emails"];
        var APIUrl = "https://apis.live.net/v5.0/";

        $cordovaOauth.winliveconnect(appID, permissions).then(function (resultLogin)
        {
                 getUserData(resultLogin.access_token).then(function (resultUserData)
                 {
                        console.log(resultUserData);
                 }
        }

        var getUserData = function (accessToken)
        {
            var deferred = $q.defer();

            if (accessToken)
            {
                $http.get(APIUrl + "me?access_token=" + accessToken).then(function (result)
                {
                    result.data.img = "https://apis.live.net/v5.0/" + result.data.id + "/picture";

                    deferred.resolve(result.data);
                },
                function (error)
                {
                    console.log(" -> error get userdata: ", error);
                    deferred.reject('no_token');
                });
            }
            else
            {
                setTimeout(function ()
                {
                    console.log('no_token');
                    deferred.reject('no_token');
                }, 100);
            }

            return deferred.promise;
        }
}

Microsoft docs
Create an app
https://account.live.com/developers/applications/index
After the app is created we need to go to API Settings and activate the "Mobile or desktop client app" option. The Redirect URLs field need to be left empty. Redirect URLs will only accept a complete URL domain, something like: http://xpto.com/callback.
Web apps,Mobile and Windows desktop apps
https://msdn.microsoft.com/en-us/library/hh826529.aspx
https://msdn.microsoft.com/en-us/library/hh826547.aspx
Rest API
https://msdn.microsoft.com/en-us/library/hh243648.aspx
Scopes and permissions
https://msdn.microsoft.com/en-us/library/hh243646.aspx

Good job @napcat!
You sure you don't want to be the one to submit this to the project repository?  I wouldn't want to take your credit by doing it for you.
Let me know because I'm fine either way.  Just wanted to give you the opportunity :-)

Added this to the development branch.  Will be pushed to the master with other stuff.
https://github.com/nraboy/ng-cordova-oauth/commit/49aa3a17166167026f84e389a90894158cb9768e


MINOR: [Docs] Make cards on index page of docs responsive

Rationale for this change
The text inside the Specifications and Development cards in the docs get squished on mobile or small-viewport devices because their CSS grid definition isn't responsive. Example:

What changes are included in this PR?
This changes this specific use of the grid-item directive to take advantage of the responsive variant,

or four numbers for extra-small (<576px), small (768px), medium (992px) and large screens (>1200px),

For the extra-small variant, the grid dynamically switches to a single-column which prevents squishing of the text inside the card. Otherwise a two-column grid is used.
Are these changes tested?
Yes, I built the docs in a local conda env and tested that the cards look right at all widths. At narrow widths, it looks like this:

Are there any user-facing changes?
Just to docs, see above.

I just pushed https://github.com/apache/arrow/pull/38693/commits/8b4ab43b3c1d52cbca7d03b29863f93f31dbe3ec which makes the same change in the other places we have this issue.

This looks great, didn't even know about it! =)

@github-actions crossbow submit preview-docs

Opened an issue for the docs build failure: https://github.com/apache/arrow/issues/38711

@github-actions crossbow submit preview-docs

@github-actions crossbow submit preview-docs

@amoeba could you rebase the PR please? The docs preview uses the code from this branch not from main as I previously thought.

I've rebased my branch.

Thank you!

@github-actions crossbow submit preview-docs


Added methods to set default namespace (onprem only)

Methods are hidden for now.
Requires onprem KV version 22.3, patch revision 24 or higher.

Shouldn't there be per-request methods as well, similar to compartment?


Refactor asset management so that third party assets are not committed.

We have been committing third part assets like Bootstrap, jQuery etc, which is not ideal. This PR refactors to put Oscar's own assets in static_src, and modifies the asset pipeline to pull in third party assets at build time rather than committing them to the repository.
This doesn't affect what is shipped in the package - i.e., we will compile and build all the third party assets before packaging.
At this stage I've just refactored the existing Gulp pipeline - I think the next step is to look at migrating to something like webpack.
There are also some assets e.g., from font-awesome, that are committed because we are not loading those libraries from npm. I have left that as-is for now on the basis that eventually we are moving to Bootstrap 4 and likely dropping font-awesome.

Worth testing this on the review app to make sure all expected assets are loading correctly.

@solarissmoke I've only check the public views. Is there a way to create an admin account in the review apps? I tried the gateway view, but didn't receive an email.

@craigloftus review apps use the sandbox fixtures which provide a superuser account (superuser@example.com:testing).


RestError on FileClient exists()

Hi,
I'm trying to migrate my legacy azure-storage code to @azure/storage-file-share and I have strange error with this code:
	let shareClient = await fileService.getShareClient(UserId);
	let dirClient = await shareClient.getDirectoryClient(dirPath);
	let fileClient = await dirClient.getFileClient(fileName);
        console.log("fileClient:"+fileClient.url);
	let exists = await fileClient.exists();
	if (exists)
	{...

All seems to be good except the fileClient.exists() that generates a strange error:
fileClient:https://plop.file.core.windows.net/977e025ad9690882cdacb3c51ad/a1cbef-807b-46a8-a937-907ed72a15ed/pointofview1%5C2%5Cl%5C0%5C/1.jkk
error:RestError
    at handleErrorResponse (c:\Project\node_modules\@azure\core-http\dist\index.js:3139:19)
    at c:\Project\node_modules\@azure\core-http\dist\index.js:3075:49
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

I'm using<EMAIL_ADDRESS>What could be wrong in my code ?

Hi @laurentcau ,
I cannot see what happened just from the error.  Can you repro the issue again and share the request id  or   account name and time frame when the request is sent?
Thanks
Emma


Ideas

Using purescript-parsing and provide basic parsers for querystrings etc
Using parsers on StrMap constructed from hash
Partial isomorphism on String or StrMap and Route
Provide templates for parsing? /foo/:foo/bar/:bar foo=bar&bar=baz

Router role in application

Routing is global component governing all application. Application must be built on top of routing.
Routing is just component, that can be used by other components in application. Components must listen router to handle changes

I would prefer to use global routing because we abandon idea of using components and even with components it's much simpler and more clean.

onhashchange provides stream of pairs Tuple String String where fst - old, snd - new.
Assume we have s and this s is type of our application state.
Variants of mapping

snd -> s
snd -> (s -> s)
(fst -> snd) -> (s -> s)
In case of purescript-halogen s -> s is i.

In fact there is no fst -> snd we have only (fst, snd) and
we need not s -> s we need Eff e (s -> s)
parse :: Tuple String String -> Tuple (StrMap String) (StrMap String)
diff :: Tuple (StrMap String) (StrMap String) -> StrMap String
halogen :: StrMap String -> i
common :: StrMap String -> Eff e (s -> s)

Why is there no any routers with explicit handling hash differences in js?
All founded routers parse url and then fire callback with it.

They use implicit state, so Eff e (s -> s) degenerate to Eff e Unit
They follow server pattern, and HTTP is stateless → diff (Tuple _ a) = a

Suppose we were foo.com#bar/1,2,3/baz/2,3 and then go to foo.com#bar/1,2,3/baz/1,2
If coming to bar/1,2,3 make ajax to api.foo.com?bar=1,2,3 and if coming to baz/2,3 make ajax to api.foo.com?baz=2,3. So, when we have both we make two ajax and then making something in app.
Question is how can we make without calculating diff make only one ajax in first example, and two when we go from foo.com to foo.com#bar/1,2,3/baz/1,2

go to foo.com#bar/1,2,3/update/baz/1,2/ and make rewrite after getting ajax response
make /bar/1,2,3 parent of /bar/1,2,3/baz/1,2 in general build route hierarchy

I also think global routing makes more sense, especially when integrating with halogen
I've never used a router that does diffing either. When using Bacon I tend to have a stream which has the URL hash split into segments, and then derive new streams from that by filtering, dropping from the head, reading from a specific index (and so on), and when one of those stream values is used to build a request, duplicates are dropped at that point. I guess that explicit duplicate value check is what you're trying to avoid?
It seems to me that usually it's just some portion of the tail of the URL changes, like I don't think I've ever had a URL scheme where I'd go from /a/b/c to /a/x/c - and even if that were to happen the c value would probably "mean" something different under x than it does under b... I'm not sure if that makes things any easier.
I'm not sure I entirely follow your last set of examples, sorry.

Should we have the option take advantage of pushState also?

@garyb I think that history api can be useful in some cases, but would prefer to integrate history api in next releases.
I've decided to stick with hierarchy of routes.


Using Bot Framework as a Platform

Hi,
Is it compliant with the terms of use, especially in regard to "Section 4 - Use Restrictions", to use the Bot Framework (and Connector Service) as a Bot Platform where users can create their own bots that essentially all run on the same Bot Builder Project?
Thanks,
Maro

We didn't write them to specifically prevent one developer providing multiple bots for their customers regardless of hosting model, but I'd probably need to understand more.
Can you describe your model with any more detail? Do all of your users have bot framework accounts and bot registrations, and their bots just run on your service each with their own endpoint/auth keys?

Hey jameslew, thanks for the quick answer. We are planning to develop a platform where people can register their facebook pages and create bots via a custom CMS (somehow similar to chatfuel for example). These bots all run on the same project (which we would like to build on top of MS Bot Framework). So our users wouldn't register bot framework accounts and/or bot registrations, they would essentially all run on our endpoint.

We have work to do to enable this.  We have taken steps in this direction (new SDK will allow you to have multiple bot credentials associated with a single endpoint) but we have more work to do primarily around enabling the programmatic defining of channel configurations.

Hey. Any news about this ?

I'm interested in knowing the status of this too.

Same here, we need an API to programmatically register a bot in the bot framework portal.

Is this feature logged somewhere so that we can follow progress or vote for it?
Same question here: https://stackoverflow.com/questions/42172304/is-it-possible-to-register-provision-a-bot-via-service/44125048#44125048

How to vote for that feature ? Should i mark that as favourite ?

We also require the ability to register bots programmatically and configure their associated channels. Happy to go manual for the time being, however really need an expected timeline


[Bug]

Description
软件的系统托盘图标不见了
Reproduction Steps
在最新的预览版,软件的系统托盘图标不见了,开关设置和重启软件都没有解决
Expected Behavior
No response
Screenshots
No response
Starward Version
0.9.1
Windows Version
19045.3324
Log
No response
Additional Context
No response

Closed for no title or content.


Replaced http CDN links with https

Fixes #102

Great. Thanks, @alkersan, seems to work for me.

It would be nice to have this fix released soon.


fixed a bug in enabling debug privilege

this fixes #21
Please note that i haven't recompiled all the binaries under dist/

I truly appreciate your interest, detailed issue, research and fix :^)


Improving Contact Us btn

On clicking the contact us btn it should take you to the contact us section on home page . But on clicking it it scrolling to the footer section .Please assign it to me under gssoc-23 .
Thank you :)

yes ,Contact Us btn not working properly .
Hello, I'm a contributor to GSSOC'23 .
I am very much Interested in contributing to this project .I am Skilled in web development and I am ready to collaborate and follow all project guidelines.
I will try to make it as different as possible and exciting also.
Please assign it to me. Thank you in advance.😇

We didn't want to direct every time to the home page contact section, so linked to footer section in chapter and event page as there is contact info there too.
Thank you!


Extract Here API specifc code from Webtiledatasource

Thank you for contributing to harp.gl!
Before requesting a pull request, please remember to check the following documents:

contribution guidelines
coding style

If you are adding new functionality we would highly appreciate if you can describe what is the capability you are adding and even better if you can add some examples. Please also remember to add tests for it.
CI Check
Our bots will check whether your PR can be directly integrated into the mainline. We have some internal integration tests running on the background, our bots will inform you of the next steps and someone from our team will take a look and help if needed!
And please do not forget to sign-off your commit! You can read more about DCO here. But, in short, you just need to use git commit -s or append --signoff when you are committing to the repo.
Happy contributing!

GPU tests please

I like this PR, a refactor was due for a long time already :)


[Webportal] add user management page and vc access control support

Coverage decreased (-0.01%) to 48.712% when pulling 14b3716f2d0216b74e5ef5d0149f9579c319e96b on canwan/vc-access-control-webportal into 59fc255d0b3c7acce0aa0127fc23b040c3db92b3 on master.


[backend] add opentelemetry support

Tasks

[x] add option to support opentelemetry with Azure App Insights
[x] configure opentelemetry in indexer service
[x] configure opentelemetry in search service

Current blocked because of https://github.com/Azure/azure-sdk-for-js/issues/27287

Azure SDK issue has been fixed, but now blocked by https://github.com/fastify/fastify-cli/issues/671


[New] [forecasting] plot predicted vs. true parameter values

Summary of this new feature
Plot truth vs. predicted value for each parameter value with Scenario.fit() to check the performace of parameter prediction.
Score and y = x line will be also shown.

Showing scores will be skipped at this time and this may be discussed later if necessary.

With #815, Scenario.fit(show_figure=True) (default) will show the figure (with Scenario.fit_accuracy() internally) for the best regressor.
The next graph is for Italy, today="06Jun2021".

The broken lines are y = x. When the plots are on y = x, the predicted value was the exact same value of the actual (estimated) value. As an example, rho is over estimated because many points follow y > x.

Show legend at the bottom og the figure.
Show sample sizes of train and test data
Show train and test scores with the figure (sub) title

Memo:
How to split seaborn legend into multiple columns?
https://stackoverflow.com/questions/56575756/how-to-split-seaborn-legend-into-multiple-columns

With #828,

Show legend at the bottom of the figure
Show sample sizes and scores of train and test data with legend

With #839,

Use MAPE as evaluation metric for forecasting.
Show MAPE score with percentage in the figure of Scenario.fit() via Scenario.fit_accuracy().


[Feature] Don't Finalize "Consumable" on iOS

Right now we finalize transactions automatically. We should give the option to not do this if it is a consumable.
See: https://github.com/jamesmontemagno/InAppBillingPlugin/issues/412

Upvoting this, it's a blocker that prevents us from using this lib. By calling FinishTransaction on a consumable in iOS, it removes the purchase from the receipt. In our setup we need to see the purchases during server side validation. When you use your lib, in_app is stripped from the receipt object.
https://developer.apple.com/documentation/storekit/original_api_for_in-app_purchase/choosing_a_receipt_validation_technique#//apple_ref/doc/uid/TP40010573

Consumable in-app purchases remain in the receipt until you call finishTransaction(_:). Non-consumables, auto-renewing subscription items, and non-renewing subscription items remain in the receipt indefinitely. For auto-renewable subscription management, see the following table for the key advantages that server-side receipt validation gives over on-device receipt validation. Apple Developer Documentation

Any thought son implementation here.... I guess we also finish when we restore as well... can be very tricky i think....

@jamesmontemagno what are your concerns? I thought #412 did a good job explaining it. IMHO I would just behave like android? IF we bump this by a major version and indicate its a breaking change, I don't think its a problem. Also on #412 najak3d seems to have an implementation already based on his testing. I'm happy to game it out / contribute.

@edgiardina  and @najak3d checkout https://github.com/jamesmontemagno/InAppBillingPlugin/pull/444 and let me know thoughts here.
The idea is that ConsumePurchaseAsync will now call FinishTransaction on iOS, but now for all purchases you will have to manually call FinishTransactionAsync after you have unlocked it.
For back compat because maybe people don't care, they can set a static flag on iOS to turn on AutoFinishTransactions

Ours work-around solution is working fine now "as is", so probably won't be validating your fixes here.  If we end up with any bugs that arise in our system, and I get back into this part of the code, the first thing we may do is to try out your fixes here, and see if that resolves our problem.
I think my description of the issue was pretty clear in #412, so I trust that your solution probably addresses the core issue I raised.  My purpose in posting was for sake of Xamarin-itself, making it a better/safer place to write apps, and iOS store integration should be on par with all other apps.   Hopefully, that is what your fix here achieved.
Thank you for your continued devotion, genius, and service.

@najak3d thanks for all the details. I think I now have a good solution. I have introduced a new "ItemType.InAppPurchaseConsumable" and with this set then I wont finish it. Also on restore (get purchases) you can pass in Ids that are consumables and I wont finish those either. This should do it.

5.3.0-beta dnad 6.3.0-beta have this now

This looks great, thank you. Of course, it would have been a lot less work if StoreKit/SKProduct had an IsConsumable flag when you fetch the product list, since when you configure the SKUs you have to provide that info. But your extra type appears to map well with this doc I was reading the other day
Thanks James, appreciate the work you've done for Xamarin / MAUI community.


Refactoring: Resource detail view

Status quo
Currently there are five different views to serve

get_service_metadata
get_dataset_metadata
get_operation_result
get_metadata_legend

This views returns content_type application/xml
Refacotring

[ ] refactor get_service_metadata as generic view
[ ] refactor get_dataset_metadata as generic view
[ ] refactor get_operation_result as generic view
[ ] refactor get_metadata_legent as generic view

we can drop all these views.

The new resourceNew.views.ows.GenericOwsServiceOperationFacade class based view replaced the get_operation_result and get_metadata_legend view.
The new resourceNew.views.metadata.ServiceMetadataXmlView class based view replaced the get_service_metadata view.
The new resourceNew.views.metadata.DatasetMetadataXmlView class based view replaced the get_dataset_metadata view.


Local Optima reached, decreased rewards

For Continous Control on 20 parallel reacher agents, the model seems to have reached a saddle or local optima at around 26 for window score (last 100 score mean)  and then starts to decay.
Need to fine tune the parameters, maybe change from Relu to leaky Relu activation?

Fixed by reducing learning rate.
new updated model weights


use directReplies

ECCV using this version in live site: https://openreview.net/group?id=thecvf.com/ECCV/2020/Conference/Program_Chairs
ICLR using this version in live site: https://openreview.net/group?id=ICLR.cc/2021/Conference/Program_Chairs
I think the improvement is significant. I would like to remove the call to get recommendation edges but it does too many calls or try to the get the edges grouped by signature.

Also, in the sorting seems to be broken on the Reviewer Status tab.
webfieldCode.js:2001 Uncaught TypeError: Cannot read property 'numPapers' of undefined
    at Papers_with_Reviews_Missing (webfieldCode.js:2001)


WIP: Replace FuzzyProvider with SymbolProvider

This is a WIP.
The current base provider is pretty terrible. As you know it just grabs a list of words from the buffer, anything in the comments, numbers, whatever.
I wanted to make the defaults better. I experimented with ctags (like in symbols view), but the support for modern languages is no bueno. Turns out we already have a tokenized version of each file in the editor :tada:, so why not use that?

This SymbolProvider selects types of tokens / symbols via scope selectors, and gives them names like function, class, etc. But these are just the default. The idea is to make this configurable from the language packages just like editor.completions.
My vision for configurability is something like this:
# For Coffee
'.source.coffee':
  'editor':
    'completionSymbols':
      class:
        selector: '.class.name'
        priority: 3
      function:
        selector: '.function'
        priority: 2
      variable:
        selector: '.variable'
        priority: 1

# For Less
'.source.css.less':
  'editor':
    'completionSymbols':
      'mixin':
        selector: '.mixin'
      'variable':
        selector: '.variable'
        wordRegex: /\b@?\w*[a-zA-Z_-]+\w*\b/g

Additionally, the results could be combined in a better way. Things in the buffer are likely more important than builtins. And locality would be a huge help.
Suggestions welcome.
TODO

[ ] Decide on what we should configure
[x] Reconcile some symbols that are variables in one part of the file, and, say a function or class in another.
[x] Mess with locality scoring
[ ] Specs

cc @kevinsawicki @nathansobo

Hurray!!!!

@benogle, really looking forward to this!

I urge you guys to try this branch out and see if the results feel better. I added the type reconciliation, and I added an experiment with locality scoring, so matches closer to where you are are scored higher.
This really highlights how crappy the grammars are in a lot of cases. e.g. javascript doesnt even tag variables as variables (or anything, for that matter), the less grammar doesnt properly tag the property names or values (css does though), etc. Grammar improvements would be the biggest gain in making the results of a provider like this better.

We need to rebase this on master, or merge master up and resolve conflicts (mostly will be caused because we edited FuzzyProvider. Which path do you want to take?

This really highlights how crappy the grammars are in a lot of cases. e.g. javascript doesnt even tag variables as variables (or anything, for that matter), the less grammar doesnt properly tag the property names or values (css does though), etc. Grammar improvements would be the biggest gain in making the results of a provider like this better.

I see that as a huge positive. If the grammars need to be improved to better reason over the source, that's exactly where the improvements should be made. It will have many follow-on benefits, including allowing grammar-specific providers to be more targeted and allowing better blacklisting of autocomplete in particular scope(s).

I'll rebase it. But it doesnt need to be rebased to use it. Especially if the changes were just in FuzzyProvider.

I see that as a huge positive

Yeah I wasnt complaining. It was just surprising to me. I thought they were much better at tagging things.

That the JavaScript and less grammars are poor is indeed very surprising!

@benogle, tried this out in python, c#, c++, coffee, javascript, typescript, markdown.
We should probably be pulling any keywords the grammar defines,  "var, function, class ....".
In general all the languages all felt very sparse.  Perhaps it should have a priority order of things to look for to complete as pulled by the syntax. Maybe fall back through variables, functions, keywords, then 'words'.  Only go on to the next fallback if we have found less than 5 options, and only go to 'words' if it finds nothing else.

What additional things are required for us to retire FuzzyProvider in favor of this? I'm completely fine with a temporary regression in quality if it shines the spotlight on grammars, and the need to make changes there to make this work well.
What other gotchas should we be aware of? And how can @park9140 and I help?

We should probably be pulling any keywords the grammar defines, "var, function, class ....".

Agreed. Though, I'd like to do that from editor.completions in each grammar rather than picking them out of the buffer so they are complete.

In general all the languages all felt very sparse.

Yeah, I think they need to really be tailored to each language in the settings. The biggest advantage for increasing quality would be improving the grammars.

Perhaps it should have a priority order of things to look for to complete as pulled by the syntax. Maybe fall back through variables, functions, keywords, then 'words'. Only go on to the next fallback if we have found less than 5 options, and only go to 'words' if it finds nothing else.

Yeah falling back can be experimented with. The priority could be mixed in like the locality score. The main thing that I hated about the fuzzy provider was all the false positives. So I want to be careful adding a bunch of extra things in that just add noise.

What additional things are required for us to retire FuzzyProvider in favor of this?

@joefitzgerald honestly, I want to sit on this for a bit. I want to use it and make sure it's doing the right thing in most cases and tinker with it while I'm using it. I am, as I'm sure you're aware, really nervous about jumping into new APIs. Once this is released, people will start updating grammars to take advantage, and I dont want to have to change it right away.
My initial motivation for doing this (and the other recent PRs) is getting autocomplete to the point where I can use it for more than a few minutes without getting frustrated and turning it off. So I want to continue down that path for a bit longer.

@benogle perhaps we should create a new branch with the FuzzyProvider kept in, and a feature to toggle the built-in provider to FuzzyProvider or SnippetsProvider, so we can ship it, and allow its active used, but keep FuzzyProvider as the default.

Can I just have this PR open for a few more days?

Of course, sorry I don't want to come across as rushing you! Just excited to make progress on an alternative to FuzzyProvider.

This looks very promising, but I like FuzzyProvider for my text documents. Thing is, I often write articles with long and very specific terminology. Being able to autocomplete those is a nice feature, actually. Saves a bit of time on typing and spellchecking.

@lierdakil, As a first step we should probably break fuzzy provider out into it's own package for people who like that sort of thing.
Would it be better to have a more specific autocomplete plugin for writing?  It seems like you would want something that not only looks at terminology in your single article but also can do sentence breakdown to provide intelligent completions.   You could do weighted completions for word options from a thesaurus based on over use in your article.   If you could get access to something like the algorithms used by something like the swiftkey keyboard on android you could even guess the next logical words based on a live user profile that takes into account your personal writing habits.

@park9140, swiftkey is no magic, it most likely uses Markov chains for next-word predictions. It's not exactly rocket science, and predictions are not very accurate (to my experience anyway). Having a provider pulling words from current buffer (with a bit of fuzz) is usually more than enough for my needs. Grammar analysis is probably overkill (although implementing weighting based on Markov model could be nice -- in theory -- and relatively simple).
More to the point, moving FuzzyProvider to separate package is fine with me, and might actually be a good thing, now that I think about it.

@lierdakil, yeah, swiftkey just acts as a good example of implementation, even if is flawed.  I'm sure there are many great ways doing efficient natural language suggestions.  Need to find someone who understands the domain to work on a completion provider.

I need to discuss this more with @benogle, but I too am a fan of the fairly unintelligent "words from buffer" approach. I think the main difference is that I use the manually triggered autocomplete, which allows you to fuzzy find on the results. If the autocomplete is auto-triggered, fuzzy finding on the results doesn't really work because you're actually typing in the buffer at that point. Then having more completion alternatives becomes more of a liability. Not sure how to reconcile these as there's a legitimate use case for both ways of triggering.

It feels like extracting FuzzyProvider into an external provider would make the most sense once we have a more contextually relevant built-in provider (which this PR may represent, if @benogle wants to proceed with it).
Regarding typing to filter the fuzzy results >> how is this any different than typing in the editor? I find the context switching (into a filter in the suggestion list) jarring in that the focus changes - too often (i.e. 99% of the time) I find myself pressing escape because I want to keep typing in the editor. Because filtering continues to occur as you keep typing, the number of suggestions decreases as the word length increases, which is functionally identical to filtering the suggestion list in a suggestion list filter input - with the exception that I can continue typing in the buffer if I don't like any of the options.

@joefitzgerald I've totally come around to adding this as an option. I really really do not want to start adding config to the grammars to take advantage of this until it is the default though. For now, one could add to their user config to experiment with better completions with the symbol provider.
In many cases the grammars need to be upgraded to properly tokenize, which is work that can happen now.
This should be mergable, provided the specs pass.

Whats the appveyor build for?

Whats the appveyor build for?

It's to verify Windows compatibility. I need to add appveyor.yml.