App ID

Closes: #607

sorry for delay here, been locked in a room the last few days. did not do a full walk through but I'm still of the mind that basically any GetAppByName call that isn't the one we do in front of all the handlers is probably a bug, probably just worth combing through and eliminating those... if we nuked GetAppByName, changed it to GetAppID(appName) (id) and changed GetRoute to use an app id it may make things relatively straightforward instead of maneuvering, of course I may well be missing something.

@rdallman GetAppByName is still necessary for couple places like GET /v1/apps/:app since we don't really want to perform app query two time for no reason.
Unfortunately, i don't see more clear way to get make hybrid work, so the latest PR introduces v2 API for GET /v1/apps/:app and GET /v1/apps/:app/route/*route where :app means app ID, it makes data access layer now looks simpler and enables DA to use app ID only.

GetAppByName is still necessary for couple places like GET /v1/apps/:app since we don't really want to perform app query two time for no reason.

if we're caching the name -> id then this may well not be the case, and it would make the code much more obviously correct which would be a huge win.

Unfortunately, i don't see more clear way to get make hybrid work, so the latest PR introduces v2 API for GET /v1/apps/:app and GET /v1/apps/:app/route/*route where :app means app ID, it makes data access layer now looks simpler and enables DA to use app ID only.

we have /runner endpoints we could easily add to for the hybrid surface area to access app / route by id.

/v1/runner doesn't work for the hybrid because it uses middleware for app name which is kinda problematic, so leaving as is. Hopefully, the last commit removes GetAppByName completely.

/v1/runner doesn't work for the hybrid because it uses middleware for app name which is kinda problematic,

I don't follow here, but for hybrid endpoints get app and get route we need to get them by id too? the start/end/enqueue/dequeue all deal with call objects which have an app id in them.

/v1/runner doesn't work for the hybrid because it uses middleware for app name which is kinda problematic,

I don't follow here

All i wanted to say that server router setup needs to be adjusted in order to make it work correctly with /v1/runner/apps/:app and so on.

hybrid endpoints get app and get route we need to get them by id too?

yes, new endpoints expect to get app ID.

looks a lot better, woohoo. found a few things but mostly small. as for larger things:

pushing the route app creation on POST/PUT down into the db may make things better or worse, it's an option at least.
does hybrid work?
this will be a hard break of the db it looks like, unless we add a migration to add ids to every app that doesn't have one, after running the migrations we'll have a bunch of apps with empty id, so i'm not sure the lookups will be reliable. i'm not sure this is worth doing, logs outside of the db will be busted since they're indexed on app id too, even though i'm not sure anyone is using this yet. seems like a good opportunity to consider a 'full reset' of our db stuff, in which case we can wipe all of our migrations we have to date out completely and not worry about adding them in this patch. in any case, we need to consider the impact on users of trying to merge this at some point in the future.

So, hybrid works fine as it was before. But had to go through the agent and replace any datastore references with DataAccess layer because in runner mode, as we know, the instance doesn't have a direct access to the datastore, but can talk to API instance where it can ask for any particular resources like an app ID or the whole app object.
I do agree that we should drop all current migrations before we decide to declare V1.

It appears that we can't just mute the app_id from Call object because BoltDB uses JSON marshalling for async calls. So there should be an alternative way to mute app ID for HTTP API without muting JSON field in call struct.

It appears that we can't just mute the app_id from Call object because BoltDB uses JSON marshalling for async calls

right, good catch. we could easily hack this in the handler for get call to hold us over.

So, hybrid works fine as it was before.

thanks. it seems a little odd plumbing wise atm, but that interface is about to get carved up like a farmed turkey here very soon, so let's punt as long as it works.

I do agree that we should drop all current migrations before we decide to declare V1.

will you add this here please?
I will try to look at this in full pass fashion again next week, please before that time if you would:

audit the chance for maintaining database compatibility so that we don't have to request users to blow out their databases. this is frustrating to anyone actually working on this project as they'd have to go set up all their routes again and we don't have an easy way to do route backup / restore right now. if this is easily possible, please implement this.
if ^ is not possible: change any of our timestamp fields to varchar(256) instead of text since this will be more efficient to store in mysql (there are easily googled docs on this), add code to check that a database does not contain migrations and send a fatal log line to nuke their database (eesh), remove all our migration files. I would strongly discourage this, but it's possibly necessary.
please audit any other breakages caused by this patch and either post them or fix them to be backwards compatible
please review all tests to ensure that we are not changing the tests to simply test app not found errors in cases that should be handled
what is the behavior of caching at this moment? how is this different from master? if there's a disparity, are there any easy wins here before trying to finalize this patch?
please post a list of endpoints that return app id so that we can audit whether we want this behavior.
please do a full review of the diff of this patch for anything I may have missed

in other words, please try to finalize this patch, with a post of any behavior changes that users should be aware of. with the app id plumbed throughout it's much more straightforward now to audit security wise, but this patch has gone through quite a number of changes each review and there's possible cruft from previous attempts to clean up. we at least need to finalize some things listed ^ with much more clarity. thanks

I do agree that we should drop all current migrations before we decide to declare V1.

will you add this here please, if necessary?

Yes, will add to this PR.

audit the chance for maintaining database compatibility so that we don't have to request users to blow out their databases. this is frustrating to anyone actually working on this project as they'd have to go set up all their routes again and we don't have an easy way to do route backup / restore right now. if this is easily possible, please implement this.

It appears to be controversial to wiping out all migrations. To get the compatibility between current (master) datastore version and a new (with this patch) version we would need to keep all migrations along with hacky code with will check if the app ID is the empty string then call the update with in-place generated ID. I don't think we would like to go that path. It's hard to say, but with this patch, we would need to ask all Fn users to drop their datastores and start from the very beginning, "Tabula rasa" is our safety path.

please audit any other breakages caused by this patch and either post them or fix them to be backwards compatible

Done, had problems with CallFunctions middleware, had problems with migrations and underlying lib. All fixed, hopefully.

please review all tests to ensure that we are not changing the tests to simply test app not found errors in cases that should be handled

done

what is the behaviour of caching at this moment? how is this different from the master? if there's a disparity, are there any easy wins here before trying to finalize this patch?

So, cached DA used app names for the caching, in this patch it changes from the app name to app ID. The name is no longer something we can rely on.
So, the next couple commits will cover its own problem like reverting tests that were changed, wiping out the datastore migrations (which was kinda painful due to migrations lib was not verbose during migrations, you'll find the note in code).
Things still not covered: call app ID for the API users, since we can't mute the app ID because of MQ json serialization. I'm not sure what is the 3rd path is (first one was to define CallBase struct that was the regular Call object but without an app ID, second was muting which worked for the API, but was bad for the MQ). Any ideas.

To get the compatibility between current (master) datastore version and a new (with this patch) version we would need to keep all migrations along with hacky code with will check if the app ID is the empty string then call the update with in-place generated ID. I don't think we would like to go that path. It's hard to say, but with this patch, we would need to ask all Fn users to drop their datastores and start from the very beginning, "Tabula rasa" is our safety path.

if we had a migration that assigned app ids to all apps that did not have one, and fn did not start if the migrations did not execute (this is already the case), then we don't need any code to check for empty ids? how hard is this migration to write? we'd need to do a similar transaction to update the routes, calls and logs? maybe forget about s3-style logs (nobody using yet). it's just a total pain for users to have to add all their routes again, losing call/log data seems OK-ish but if we can avoid it then no reason.

if we had a migration that assigned app ids to all apps that did not have one, and fn did not start if the migrations did not execute (this is already the case), then we don't need any code to check for empty ids? how hard is this migration to write?

There's no problem in writing the migration that just updated each row in the table, however, i have no answer to how migration can get valid IDs during table update. Had an idea write code that will go through all Fn data and set the IDs wherever it is necessary, but that wouldn't be the migration rather than go code that runs after the migration that adds the IDs. Honestly, this path doesn't smell well. I do think that better to rip off the patch at this moment without worrying about users (hopefully, we aren't at the Version 1)

we'd need to do a similar transaction to update the routes, calls and logs? maybe forget about s3-style logs (nobody using yet). it's just a total pain for users to have to add all their routes again, losing call/log data seems OK-ish but if we can avoid it then no reason.

I don't have a clear answer how migration can create/get valid IDs for the apps, calls, routes, logs. Just to make things simple but a bit painful (it's temporary for sure) we need to start our migrations from the very beginning. The other path described above does look like dirty hacking.

The other path described above does look like dirty hacking.
Had an idea write code that will go through all Fn data and set the IDs wherever it is necessary, but that wouldn't be the migration rather than go code that runs after the migration that adds the IDs.

it's a SQL transaction? please try to research some more substantive answers, I understand it's easy to break things, we're trying to figure out how hard it is not to. we can run any SQL we want in those migration files. I'm looking for more along the lines of:

is the SQL required to do this update not compatible with 1 or more of our currently supported sql databases ({sqlite,mysql,pg})?
is it possible to zip this up in a transaction?
is changing the primary key possible in a migration? even with foreign key constraints?
etc...

Just to make things simple but a bit painful (it's temporary for sure) we need to start our migrations from the very beginning.

this is not relevant i don't think? the migrations handle deltas, this is part of the use in having them.

it's a SQL transaction?

Some sort of. Code that I've mentioned should go through all apps, routes, calls, logs, but it should take place just in-between the migration upgrades - migrate up to version 7 (current master), apply the migration that adds app ID everywhere, then do the following:

loop over each app
assign the app ID to that
loop over each route for this app then set the app ID
loop over each call for this app then set the app ID
loop over each log for this app then set the app ID (for logstore it's a bit tricky because we have to update each apps folder name from the app name to app ID)

then run the migration that drops the app name. So as you can see Fn wouldn't be able to run migrations automatically, we'd need to apply all migrations half-manually. That's why i don't really enjoy our migrations framework because it forces us to use SQL statements only, but migration frameworks like alembic give you the chance to execute any code you like.
I really want us to switch to Goose https://github.com/pressly/goose because it does allow to use go migrations along with SQL migrations.

is the SQL required to do this update not compatible with 1 or more of our currently supported SQL databases ({sqlite,mysql,pg})?

update is not the problem, but empty app IDs within every table is the problem, that can't be solved within our migration framework in the manner of the migrations rather than writing the script that will have to be executed in-between particular migration versions.

is it possible to zip this up in a transaction?

technically, it's possible but will require rewriting whole SQL datastore. But i'd better choose another migration framework.

is changing the primary key possible in a migration? even with foreign key constraints?

sqlite3 doesn't support changing the primary keys in one sql statement.

this is not relevant i don't think? the migrations handle deltas, this is part of the use of having them.

well, that is relevant, as long as we use our migration framework we are doomed for the cases like this. Every complex schema transformation that will require getting the data from the outside (new custom IDs we have can't be hooked in with migration framework we use) would become literally impossible, except those cases when we, for some unknown reasons, would decide to implement an ugly thing like the one I've described above.
Here's what i think, there are only two options:

Switch to another migrations framework that allows running go code, then we could write the app ID initialization in the manner of the migration.
Drop all the migrations and stop worrying about people, they can recreate their stuff, we're not in Version 1 or GA, how cares?

Any other solutions do look like shotgun suicidal attempt., i.e. it could break, it could make datastore inconsistent, etc.
I strongly insist on switching the migrations framework if we'd like to go the path you've mentioned.

i didn't fully audit goose, but a cursory glance looks like it will give us what we want (*sql.Tx so that we can id.New().String()) and be relatively easy to migrate our current migrations to. our current migration library recently lost its maintainer anyway, and had some bugs anyway (i have little faith). want to do that in a separate patch to land on master? our datastore tests right now test the migrations, should be able to get quick feedback. would you mind researching this? the strongest req i can think of is that we want all migrations compiled in (i.e. we don't carry around migration files or run some binary on our db, we run it from fn on boot). if goose doesn't pan out we can consider alternatives.

Switch to another migrations framework that allows running go code, then we could write the app ID initialization in the manner of the migration.

this is a good thing to find out and fix early :) thanks

(for logstore it's a bit tricky because we have to update each apps folder name from the app name to app ID)

imo this one we can ignore. afaik nobody is using it [yet].

want to do that in a separate patch to land on master?

Yes, I'll take care of the migrations in the first place then will come back to this PR.

Need to fix tests, but the rebase was done

Facing problems with runner tests:
runner_test.go:447: Test 0: Expected header `Content-Type` to be application/json; charset=utf-8 but was text/plain; charset=utf-8. body: {"request":{"echoContent":"_trx_0_","isDebug":true},"header":{"Content-Length":["43"],"Fn_call_id":["01C8MCHP4CC7WKM00000000000"],"Fn_method":["GET"],"Fn_request_url":["http://<IP_ADDRESS>:8080/r/myapp/"]},"config":{"ENABLE_FOOTER":"yes","ENABLE_HEADER":"yes","FN_APP_NAME":"myapp","FN_CALL_ID":"01C8MCHP4CC7WKM00000000000","FN_DEADLINE":"2018-03-15T08:31:44.060Z","FN_FORMAT":"default","FN_HEADER_Content-Length":"43","FN_MEMORY":"64","FN_METHOD":"GET","FN_PATH":"/","FN_REQUEST_URL":"http://<IP_ADDRESS>:8080/r/myapp/","FN_TYPE":"sync","HOME":"/root","HOSTNAME":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"data":{"DockerHostname":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","DockerId":"db228e1b78c44af66bb33cd7e91d9c490823d2c933417538885090cc6eb477c1"},"trailer":[]}
	runner_test.go:447: Test 2: Expected header `Content-Type` to be application/json; charset=utf-8 but was text/plain; charset=utf-8. body: {"request":{"echoContent":"_trx_2_","isDebug":true},"header":{"Content-Length":["43"],"Fn_call_id":["01C8MCHPYXC7WKW00000000000"],"Fn_deadline":["2018-03-15T08:31:44.909Z"],"Fn_method":["GET"],"Fn_request_url":["http://<IP_ADDRESS>:8080/r/myapp/myhot"],"User-Agent":["Go-http-client/1.1"]},"config":{"ENABLE_FOOTER":"yes","ENABLE_HEADER":"yes","FN_APP_NAME":"myapp","FN_FORMAT":"http","FN_MEMORY":"64","FN_PATH":"/myhot","FN_TYPE":"sync","HOME":"/root","HOSTNAME":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"data":{"DockerHostname":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","DockerId":"26bdcf28d7e778e89f9470975ccd7bdf2cee7246d28ce117f40f83dd6528784b"},"trailer":[]}
	runner_test.go:447: Test 4: Expected header `Content-Type` to be application/json; charset=utf-8 but was text/plain; charset=utf-8. body: {"request":{"echoContent":"_trx_4_","isDebug":true},"header":{"Content-Length":["43"]},"config":{"ENABLE_FOOTER":"yes","ENABLE_HEADER":"yes","FN_APP_NAME":"myapp","FN_FORMAT":"json","FN_MEMORY":"64","FN_PATH":"/myhotjason","FN_TYPE":"sync","HOME":"/root","HOSTNAME":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"data":{"DockerHostname":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","DockerId":"a9897db6b04e60cc8f5a75981bf2cd021de67cfa6d100d51dd2062871eb6ce7e"},"trailer":[]}
	runner_test.go:447: Test 8: Expected header `Content-Type` to be application/json; charset=utf-8 but was text/plain; charset=utf-8. body: {"request":{"echoContent":"_trx_8_","isDebug":true},"header":{"Content-Length":["43"],"Fn_call_id":["01C8MCHR55C7WME00000000000"],"Fn_method":["GET"],"Fn_request_url":["http://<IP_ADDRESS>:8080/r/myapp/myroute"]},"config":{"ENABLE_FOOTER":"yes","ENABLE_HEADER":"yes","FN_APP_NAME":"myapp","FN_CALL_ID":"01C8MCHR55C7WME00000000000","FN_DEADLINE":"2018-03-15T08:31:46.133Z","FN_FORMAT":"default","FN_HEADER_Content-Length":"43","FN_MEMORY":"64","FN_METHOD":"GET","FN_PATH":"/myroute","FN_REQUEST_URL":"http://<IP_ADDRESS>:8080/r/myapp/myroute","FN_TYPE":"sync","HOME":"/root","HOSTNAME":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"data":{"DockerHostname":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","DockerId":"3c908bb5b65d036375591f5aec1ed0da5a300d1d0143c795951fb08ff82f0ef2"},"trailer":[]}
	runner_test.go:425: Test 18: Expected status code to be 502 but was 200. body: {"request":{"echoContent":"_trx_18_","isDebug":true,"trailerRepeat":1000},"header":{"Content-Length":["67"],"Fn_call_id":["01C8MCJ9RJC7WNM00000000000"],"Fn_deadline":["2018-03-15T08:31:44.162Z"],"Fn_method":["GET"],"Fn_request_url":["http://<IP_ADDRESS>:8080/r/myapp/mybigoutputhttp"],"User-Agent":["Go-http-client/1.1"]},"config":{"ENABLE_FOOTER":"yes","ENABLE_HEADER":"yes","FN_APP_NAME":"myapp","FN_FORMAT":"http","FN_MEMORY":"64","FN_PATH":"/mybigoutputhttp","FN_TYPE":"sync","HOME":"/root","HOSTNAME":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"data":{"DockerHostname":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","DockerId":"58d50e96b34db73df96f1a402a7d0bf13637c9a93141053e9380f1113d3ef6f2"},"trailer":["_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_","_trx_18_"
	runner_test.go:425: Test 20: Expected status code to be 502 but was 200. body: {"request":{"echoContent":"_trx_20_","isDebug":true,"trailerRepeat":1000},"header":{"Content-Length":["67"],"Fn_call_id":["01C8MCJAJBC7WNW00000000000"],"Fn_method":["GET"],"Fn_request_url":["http://<IP_ADDRESS>:8080/r/myapp/mybigoutputcold"]},"config":{"ENABLE_FOOTER":"yes","ENABLE_HEADER":"yes","FN_APP_NAME":"myapp","FN_CALL_ID":"01C8MCJAJBC7WNW00000000000","FN_DEADLINE":"2018-03-15T08:31:44.987Z","FN_FORMAT":"default","FN_HEADER_Content-Length":"67","FN_MEMORY":"64","FN_METHOD":"GET","FN_PATH":"/mybigoutputcold","FN_REQUEST_URL":"http://<IP_ADDRESS>:8080/r/myapp/mybigoutputcold","FN_TYPE":"sync","HOME":"/root","HOSTNAME":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},"data":{"DockerHostname":"default-012a3487-1786-4ffc-b068-d1b5bfaec296","DockerId":"40d05d2e8da4676fb58811220329b38c1ed74bf0002f95a7433074e707422a34"},"trailer":["_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_","_trx_20_

if this is ready to go, let me know and I'll have another go at this, know it's a pain to rebase

@rdallman, so, it was painful to rebase, but hopefully, managed to do so.
Is this ready to go? Yes, but there are two things:

Log migrations for s3 store. Are we ok sacrificing the logs in s3 store?

Metrics. At this moment all metrics rely on the app name, but with this patch they would use app ID.

Overall feelings: it worked as expected for all modes: full, hybrid, multitenant.
Migrations worked fine, new migrations framework feels good except one thing - error reporting, wish that was a bit verbose.
There was one thing that surprised me - you can’t run any queries while iterating through rows. That’s why had to do that necessary step: loop over the rows to get all apps, unmarahal them to the structs then loop again to run next queries. May take awhile. Was considering to run them in parallel, but makes it harder to report the error.

Log migrations for s3 store. Are we ok sacrificing the logs in s3 store?

yep. afaik, nobody using right now. also, it's only logs, apps/routes are main ones since they're a pain to set up again.

Metrics. At this moment all metrics rely on the app name, but with this patch they would use app ID.

it's ok. i assume the general format of the metrics hasn't changed. we can update the dashboards https://github.com/fnproject/fn/tree/master/examples/grafana if they have app_name to app_id or app and then the ui https://github.com/fnproject/ui uses prom metrics too, but should be easy find & replace.

Migrations worked fine, new migrations framework feels good except one thing - error reporting, wish that was a bit verbose.

migratex should probably print the whole query / version for failed ones on error. anything else here? like logs?

There was one thing that surprised me - you can’t run any queries while iterating through rows. That’s why had to do that necessary step: loop over the rows to get all apps, unmarahal them to the structs then loop again to run next queries. May take awhile. Was considering to run them in parallel, but makes it harder to report the error.

yea, weird. this could present memory issues too. I don't think any deployments at this moment have even 1000 apps/routes maybe, but most definitely not a number that would cause issues. luckily with migrations the way they are now, all new users won't run them, so early on it's ok for us to have behaviors like this since the code path won't get hit for most of the rest of history. thanks for noting this, I think it's fine for where the project is at currently.

migratex should probably print the whole query / version for failed ones on error. anything else here? like logs?

i'll be good with migration version where the error appeared.


Camera CaptureElement did not fill whole screen

On CameraManualControls sample when i use Lumia 950 XL and device is in portrait mode captureElement is showing only on a part of screen. On other devices and on desktop mode everything is ok. That is happened after last windows update.

I noticed this too along, with other camera API problems, with the roll out of creators update to phones. None of these have been fixed, probably as the problem only occurs when a device is updated and not when you just install on a fresh image of the creators update on a phone. Obviously this is a major issue for people in the wild as they don't have the option of flashing the latest image to their phones, 100% will be upgrading from Anniversary etc. My issue with regards to the API issue was closed down https://github.com/Microsoft/Windows-universal-samples/issues/612
I would imagine that they had only tried to reproduce on a VM with the latest update and not one that has been upgraded via Windows Update. A workaround for that issue was doing the updates and then pressing the "Reset Phone" button in System settings (certainly not ideal!!).
The issue with the camera preview not filling the screen in portrait also appreared with the creators update. I worked around this by manually resizing in the OnNavigated:
 protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        // Populate orientation variables with the current state
        _displayOrientation = _displayInformation.CurrentOrientation;

        RegisterEventHandlers();

        bool init = await InitialiseCameraWithRetry().ConfigureAwait(false);

        if (AppSettings.BuildIsCreatorsAndUp)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
            {
                // Force resize of preview control
                if (_displayOrientation == DisplayOrientations.Portrait || _displayOrientation == DisplayOrientations.PortraitFlipped)
                {
                    PreviewControl.Width = this.ActualWidth;
                    PreviewControl.Height = this.ActualHeight;
                }
            });
        }

}

This solution doesn't solve my problem. However size of PreviewControl is not the problem. I think the problem is with MediaCapture element. Before Creator Updates everything was fine. Now MediaCapture element that is source for PreviewControl somehow not fill full size of PreviewControl.

@manateeworks, would you be able to attach a screenshot or video here of the issue being reproduced?

Closing due to no response from OP.


hls_path not working on secondary drive

I'm setting the hls_path /mnt/MYSSD/HLS/live; , the ts files are generated , but the player can not read them . Error 404
When I get back the to /HLS/live ( on primary drive it works )
I'm not sure if it's a permission issue . I've tried chmod 777 -R * on /mnt/MYSSD , and chown www-data:www-data -R * , but no luck . Any tip ?
Appreciate it !

@akhilleusuggo can you please share how did you fix this? I'm facing a similar issue. The ts files are generated but I get 404 while trying to play the m3u8 url in VLC.

Hello , this happened like a year ago. Can remember exactly how but ;

Make sure that apache and nginx can access to the folder ; Permissions
Make sure to change the directive on the plugin, to where you have mounted the drive.
Make sure to change that directive on nginx.conf configuration file.

If I recall correctly, this fixed the issue.


Use consistent writing style for UI labels

The casing of the text strings in the UI is currently all over the place. Examples:

Visible history (sentence case)
in Space View: (initial lowercase, then Title Case, ending with colon)
colorrgba (lowercase)
Spatial (initial uppercase)
camera (lowercase)
Entity: (ending with colon)
structure_from_motion (snake_case)
No future selections found (no ending period)
Add new Space View. (ending period)

We should add some writing rules and then start fixing these issues.
Writing rules (WIP)

If the text string references a coding convention, use the casing that respects the coding convention. E.g. COLMAP,  translate3d or InstanceMethod.
Default to Sentence case like this for most elements in the UI
Rerun concepts are Title Cased. E.g. Space View, Selection View, Command Palette,  Memory Panel.
Only end sentences with a period when there are multiple sentences in the current context. For instance, if a tooltip contains two sentences, both should end with a period.
Never use colons : when labeling a UI field

Todo list (keep adding to it if anything breaks the rules above)

[ ] Remove the colon after the label

[ ] Remove the colon after the label

[ ] Remove the period at the end of the tooltip sentence

[ ] Remove the period at the end of the tooltip sentence

[ ] Remove the colon after the label

[ ] Remove the period at the end of the sentence

[ ] Remove the period at the end of the sentence

[ ] Remove the period at the end of the sentence

[ ] Change to sentence case (Frames per second)

[ ] Remove period at the end of this sentence:

[ ] Uppercase all instances of Rerun concepts
Viewer, Memory Panel, Command Palette, Blueprints View, Selection View, Timeline View` etc.

@martenbjork how do you feel about case in this particular case?

"In Space View"?

"In Space View"?

I think it should be just like this. Uppercase In since it's a sentence and title case Space View since it's a concept.


TFLite allocate tensors fails: (CONCATENATION) failed to prepare

1. System information
There is a problem in the pytorch model -> tflite quantization process, the model is a multi-input multi-output structure
The model inference process is shown in the code
`    def forward(self, input_x: torch.Tensor, tdnn_s0, tdnn_s1, tdnn_s1_2):
model_in = input_x
    conv1_inputs = torch.cat([tdnn_s0, model_in], 2)

    conv1 = self.norm[0](self.relu(self.convs[0](conv1_inputs)).permute(0, 2, 1)).permute(0, 2, 1)

    output_conv1 = conv1

    conv2_inputs = torch.cat([tdnn_s1, conv1], 2)
    conv2 = self.convs[1](conv2_inputs)
    output_conv2 = conv2

    conv2_2_inputs = torch.cat([tdnn_s1_2, conv2], 2)
    conv2_2 = self.norm[1](self.relu(self.convs[2](conv2_2_inputs)).permute(0, 2, 1)).permute(0, 2, 1)

    conv2_2 = torch.add(conv2_inputs[:,:,:-1], conv2_2)

    dense_input = conv2_2.permute(0, 2, 1)

    output = self.dense(dense_input)

    return  output, output_conv1, output_conv2`

When I quantize the model I get an error like the following, but when I comment out the quantization in the code, it works; I don't yet know where the problem is
2022-03-29 20:37:26.144668: W tensorflow/compiler/mlir/lite/python/tf_tfl_flatbuffer_helpers.cc:345] Ignored output_format.
2022-03-29 20:37:26.144820: W tensorflow/compiler/mlir/lite/python/tf_tfl_flatbuffer_helpers.cc:348] Ignored drop_control_dependency.
2022-03-29 20:37:26.144875: W tensorflow/compiler/mlir/lite/python/tf_tfl_flatbuffer_helpers.cc:354] Ignored change_concat_input_ranges.
2022-03-29 20:37:26.146905: I tensorflow/cc/saved_model/reader.cc:38] Reading SavedModel from: tmp
2022-03-29 20:37:26.149434: I tensorflow/cc/saved_model/reader.cc:90] Reading meta graph with tags { serve }
2022-03-29 20:37:26.149493: I tensorflow/cc/saved_model/reader.cc:132] Reading SavedModel debug info (if present) from: tmp
2022-03-29 20:37:26.158658: I tensorflow/cc/saved_model/loader.cc:206] Restoring SavedModel bundle.
2022-03-29 20:37:26.159847: I tensorflow/core/platform/profile_utils/cpu_utils.cc:114] CPU Frequency:<PHONE_NUMBER> Hz
2022-03-29 20:37:26.178324: I tensorflow/cc/saved_model/loader.cc:190] Running initialization op on SavedModel bundle at path: tmp
2022-03-29 20:37:26.187430: I tensorflow/cc/saved_model/loader.cc:277] SavedModel load for tags { serve }; Status: success: OK. Took 40531 microseconds.
2022-03-29 20:37:26.210737: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:210] disabling MLIR crash reproducer, set env var MLIR_CRASH_REPRODUCER_DIRECTORY to enable.
calib [[1, 40, 4], [1, 40, 2], [1, 160, 1], [1, 20, 1]]
Traceback (most recent call last):
File "export_flow_layer2.py", line 207, in
main()
File "export_flow_layer2.py", line 180, in main
tflite_model_quant = converter.convert()
File "/home/storage06/lidongbo/tools/anaconda3/lib/python3.8/site-packages/tensorflow/lite/python/lite.py", line 921, in convert
result = self._calibrate_quantize_model(result, **flags)
File "/home/storage06/lidongbo/tools/anaconda3/lib/python3.8/site-packages/tensorflow/lite/python/lite.py", line 521, in _calibrate_quantize_model
calibrated = calibrate_quantize.calibrate(
File "/home/storage06/lidongbo/tools/anaconda3/lib/python3.8/site-packages/tensorflow/lite/python/optimize/calibrator.py", line 173, in calibrate
self._calibrator.Prepare([list(s.shape) for s in sample])
RuntimeError: tensorflow/lite/kernels/concatenation.cc:80 t->dims->data[d] != t0->dims->data[d] (160 != 40)Node number 0 (CONCATENATION) failed to prepare .
2. Code
      def representative_data_gen():
            for item in range(2):
                feat = torch.zeros(1, 40, 4, dtype=torch.float)
                tdnn_s0 = torch.zeros(1, 40, 2, dtype=torch.float)
                tdnn_s1 = torch.zeros(1, 160, 1, dtype=torch.float)
                tdnn_s1_2 = torch.zeros(1, 20, 1, dtype=torch.float)
                yield [feat.numpy(), tdnn_s0.numpy(), tdnn_s1.numpy(), tdnn_s1_2.numpy()]

        converter = tf.lite.TFLiteConverter.from_saved_model(args.pb_model)
        converter.optimizations = [tf.lite.Optimize.DEFAULT]
        converter.representative_dataset = representative_data_gen
        converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
        converter.inference_input_type = tf.int8
        converter.inference_output_type = tf.int8
        tflite_model_quant = converter.convert()

        with open(args.tflite, 'wb') as f:
            f.write(tflite_model_quant)

Hi @ldb1026 ! You should use ONNX to convert Pytorch models to TF model/TF lite models . Attaching relevant threads 1, 2 for reference . Please revert back with a Colab gist for further assistance. Thank you!

I have successfully converted the model to a pb model, it's just that I get an error during quantization
The problem I encountered is that when I use the code to convert the pb to tflite model
if I quantify the configuration, like this
        converter = tf.lite.TFLiteConverter.from_saved_model(args.pb_model)
        converter.optimizations = [tf.lite.Optimize.DEFAULT]
        converter.representative_dataset = representative_data_gen
        converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
        converter.inference_input_type = tf.int8
        converter.inference_output_type = tf.int8
        tflite_model_quant = converter.convert()

there will be corresponding problems， that is to  paper

RuntimeError: tensorflow/lite/kernels/concatenation.cc:80 t->dims->data[d] != t0->dims->data[d] (20 != 40)Node number 0 (CONCATENATION) failed to prepare.

but if it is not quantized, the conversion will be successful.
Is this problem caused by the fact that the model cannot recalculate the shape due to operator collapse?

The problem is solved, the reason is that the pb model is a multi-input model, and the data returned by the function onverter.representative_dataset is not in the correct order

@ldb1026 ! I suspected the same in the representative dataset aside suggesting to remove the .numpy() operation. Did  it get resolved after rearranging the inputs in order?

The problem is solved, it can be closed, thank you

@ldb1026 ! Thanks for confirmation. Moving to closed status as it was marked resolved from this comment.

Thanks @ldb1026, I had the same problem and it indeed was the order of the inputs in the representative dataset. For anyone that needs extra clarification: the input order of the actual graph (after conversion) might be different than the order as defined in your python code, and, apparently, the representative dataset needs input ordering of the post-conversion graph...


How to apply mask to Input

Is there any way to apply mask to the  of ?

you can use secureTextEntry props in <Input> to mask the input
<Input secureTextEntry={true}/>

For password field, yes, but im talking about phone number field, documents fields.
Something like data-mask in html input
Ex:
<input type="text" name="tel" data-mask="(00) 0000-0000" data-mask-selectonfocus="true" />

@Mate38 NativeBase <Input> is built on top of React Native <TextInput/>. You can mask the input in any similar way we mask the text in <TextInput/>

Mate38, have you find a solution ?  I'm trying to do just like you, but when i put the floating label, my text input loses the mask. I'm using react-native-masked-text

I built my own floating label and used the masked text behind it worked


persistence

please add instructions for using persistence in wiki
thanks

Persistence has been fixed. When selecting the option, the payload will create a new registry key to start the payload on windows boot.
https://github.com/nccgroup/Winpayloads/commit/43fc1b24bdde4067561bba4568e5af917931f19a


[SPARK-41726][SQL] Remove OptimizedCreateHiveTableAsSelectCommand

What changes were proposed in this pull request?

This pr removes OptimizedCreateHiveTableAsSelectCommand and move the code that tune InsertIntoHiveTable to InsertIntoHadoopFsRelationCommand into RelationConversions.
Why are the changes needed?

CTAS use a nested execution to do data writing, so it is unnecessary to have OptimizedCreateHiveTableAsSelectCommand. The inside InsertIntoHiveTable would be converted to InsertIntoHadoopFsRelationCommand if possible.
Does this PR introduce any user-facing change?

no
How was this patch tested?

fix test

cc @cloud-fan

thank you @dongjoon-hyun and @cloud-fan !


One query language to rule them all

Something that I think would be really cool is if other plugins could be built to act as views onto the Datacore index.  Some of those mentioned have querying functionality built into them for filtering notes. What if this was one unified system?
One of my main frustrations with a lot of these types of plugins is that they require me to write my notes in a certain way to be visualised. I have temporal data but I have to use these particular property names for some calendar plugin to interpret it. Then I decide that I don’t like that plugin and I want to try another. A different plugin requires a different note structure so I have to go and change all that.
What if I could write a Datacore query on my notes that produces data that another plugin can understand and use to visualise the notes? I would have the full power of Datacore’s filtering and projection. Visualisation plugins require data to be in some particular shape. My notes can be in any shape I want, so long as I can write a Datacore query to view them as the desired shape.
Perhaps I want to write GPS coordinates as a pair of lat lng properties. The Map View plugin requires that a location property is used. I could write a Datacore query that projects the two lat lng properties into a location property. Perhaps I want to filter what appears on the map based on some other property. Map View has a query language for filtering but it doesn’t support properties. Datacore can do that.
Perhaps I have some event notes with a date property. I want to visualise these with Fantasy Calendar but that requires a fc-date property with a date object rather than an ISO 8601 string. I could write a Datacore query to parse the string and convert it to the object that Fantasy Calendar requires. The name of an event on Fantasy Calendar is either the value of the fc-display-name or the file name. Perhaps I want the display name to be built from concatenating several other properties together and I don’t want to duplicate the data. Datacore can do that. Perhaps the name of the calendar event is actually within a property in a linked note. Once again, a Datacore query could extract that information.
I could go on! There are countless examples where I would want to use Dataview’s filtering or projection capabilities in the context of some other plugin. Maybe Datacore can make that sort of thing possible. Maybe it’s already possible but not documented.
Combining this with #18 and we end up with something very powerful. What I’m talking about here is sort of the opposite end of that.
Also related is #16. If building a plugin that depends on a Datacore query is sufficiently simple, then Datacore’s own visualisation capabilities could be moved into a separate plugin.
This idea is probably too ambitious but I thought I’d throw it out there and see what people think.

I wrote all of this out and then I looked at the Heatmap Calendar plugin and saw that it used a render function. So I can calculate the data however I want and then pass it into that function. Perhaps what I’m really looking for is for more plugins to expose interfaces like that.
This midnight ramble seems to have gone nowhere but maybe there’s still something here.

I've been continuing to think about this. Code blocks could act like React components and return JSX nodes. React could do its thing and update the HTML elements that have changed rather than rebuilding the whole DOM each time. I did some digging around in the code and from what I can tell, that seems to be the plan..

The problem that other plugins need their specific metadata names can't be fixed with dataview or datacore. It is a "design flaw" of the other plugins. Even right now the other plugins could load the dataviewjs api and use the dvjs search for their use.
Also it is easy to imagine a fit for all tool and create a ton of possibilities but this also means a ton oc feature creep and blowing the scope out of the world.
What we actually want is a plugin that gives us a stable foundation that can easily be build upon without the need to fight with it.
All the other fratures that aren't strictly required should be separate plugins that add to the core like obsidian charts is adding the  charts.js library to dvjs and is handling the rendering of the charts.

@xDovos I agree. The more I think about this, the more I realise that this problem probably cannot be solved by Dataview or Datacore. Consider what I was saying about JSX. If the Heatmap Calendar or Charts plugins returned JSX instead of doing the rendering themselves, they would be worse, not better. It would mean being tied to React. As they are, those plugins don't depend on Dataview and Dataview doesn't depend on them. Yet they are interoperable. That's beautiful. That's what plugins should aspire to do. They should work with each other without being aware of each other's existence. I can't imagine a way to improve the interface of Heatmap Calendar or Datacore in a way that makes them more interoperable because a render function already seems perfect to me. Although view pages seems like it might help.

I think it's solvable; the datacore query language should be general enough to represent most types of useful queries, and datacore could internally convert these query types into API calls against other libraries.
I'm not sure where this implementation would best go (Datacore? other plugins? a third compat plugin?) but it seems reasonable.


Sass deprecation warnings

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($switch-width, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
115 │       margin-left: calc(#{$switch-width / 2} - var(--border-width));
    │                           ^^^^^^^^^^^^^^^^^
    ╵
<EMAIL_ADDRESS>115:27  @import
<EMAIL_ADDRESS>25:9                            @import

I believe this will require switching completely to dart-sass because node-sass won't support this syntax.

Thanks a lot for finding and fixing this bug (I'm not currently running Dart Sass 2.0.0).
I liked your first version with * 0.5.
I need to look more into it before merging your pull request.

The 2nd commit fixes operator in 2 places that i messed up. The one place where math.div() is used may be also expressed with multiplication by fractional number, like 0.66666667 but i'm not familiar with CSS parser implementations to make informed decision whether this is acceptable or should be left for browser implementation to decide on precision of the result.
Using multiplication by fractional would make it compatible with node-sass and libsass in general, although they both have deprecated status for almost a year now.

Thank you!
I will probably merge soon.
But I want to run some tests first.


hosting my own proxy - getting a script loading error  with JSONP - firefox only

Hi,
I forked the repo (https://github.com/FredHutch/jsonp) and I am running my own proxy at
https://wiki-json-proxy.fhcrc.org/ . I did remember to change PROXY to my host's URL.
The proxy fails to work ONLY when ALL of the following are true:

when used in javascript (as opposed to curl or putting a URL in a browser)
when run in Firefox (Safari and Chrome are OK); this is Firefox 66.0.5 on macOS 10.14.4
when using my hosted/forked version. If I use jsonp.afeld.me it works fine even when the above conditions are true.

Here is the web page in question:

hi

On Firefox I see the following in the Javascript console:
jquery ready!
Loading failed for the


How do I get the data of NFC ID card?

in this example return result:
{
     id: "08F0F11E"
     techTypes:
          0: "android.nfc.tech.IsoDep"
          1: "android.nfc.tech.NfcA"
}

Hi @bymuh , you have to use NFC technology specific API to communicate with your tag:

For Android, you should use transceive
For iOS, it depends on your target NFC technology, for example:

NfcA: normally use sendMifareCommandIOS
IsoDep: use sendCommandAPDUIOS

However, it's beyond the scope of this library to provide actual payload for specific low-level operations.


Header is not responsive anymore

For some reason, the header stopped being responsive, and you now have to scroll to the right and left to see the entire header, it should not behave like that. Maybe we could just show the isotope or decrease the font size for smaller resolutions?

It seems to cause problems in iOS too. Check it out.

@etagwerker could you check if it's still causing problems? It seems to be fixed when browsing with Chrome on Android.

@mauro-oto It seems to be fixed now. I just checked!


Make DecimalArray as PrimitiveArray

Which issue does this PR close?

Part of #2637.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

Hopefully to move this forward.
cc @sunchao @tustvold

These clippy errors are not from this change but due to recent change on invalid_html_tags, fixing it at #2862.

cc @liukun4515

If / when this PR is ready to merge, I would like to try to update DataFusion to use it (to understand what kind of changes will be needed in downstream crates). Please let me know @viirya  and @tustvold

Thanks @tustvold @alamb

DataFusion upgrade PR - https://github.com/apache/arrow-datafusion/pull/3844


SVM Parameter Optimization Error

Description
What steps will reproduce the problem?

IPython 7.13.0 -- An enhanced Interactive Python.
Restarting kernel...
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\tkinter_init_.py", line 1705, in call
return self.func(*args)
File "C:\Geophysics\Python\SYNAPSE-1D\MPT_Main.py", line 2324, in func_SVM
n_scores_svm = cross_val_score(svm, X1, y1, scoring='neg_mean_absolute_error', cv=cv_svm, n_jobs=-1, error_score='raise')
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\sklearn\model_selection_validation.py", line 390, in cross_val_score
error_score=error_score)
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\sklearn\model_selection_validation.py", line 236, in cross_validate
for train, test in cv.split(X, y, groups))
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\joblib\parallel.py", line 1017, in call
self.retrieve()
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\joblib\parallel.py", line 909, in retrieve
self._output.extend(job.get(timeout=self.timeout))
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\joblib_parallel_backends.py", line 562, in wrap_future_result
return future.result(timeout=timeout)
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\concurrent\futures_base.py", line 435, in result
return self.__get_result()
File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\concurrent\futures_base.py", line 384, in __get_result
raise self._exception
joblib.externals.loky.process_executor.TerminatedWorkerError: A worker process managed by the executor was unexpectedly terminated. This could be caused by a segmentation fault while calling the function or by an excessive memory usage causing the Operating System to kill the worker.
Traceback
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\psutil\_pswindows.py", line 679, in wrapper
    return fun(self, *args, **kwargs)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\psutil\_pswindows.py", line 868, in send_signal
    cext.proc_kill(self.pid)
PermissionError: [WinError 5] Access is denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\spyder\plugins\ipythonconsole\widgets\client.py", line 578, in _restart_thread_main
    stderr=self.stderr_handle)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\jupyter_client\manager.py", line 411, in restart_kernel
    self.shutdown_kernel(now=now, restart=True)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\jupyter_client\manager.py", line 377, in shutdown_kernel
    self.finish_shutdown()
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\jupyter_client\manager.py", line 338, in finish_shutdown
    self._kill_kernel()
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\spyder\plugins\ipythonconsole\utils\manager.py", line 86, in _kill_kernel
    self.kill_proc_tree(self.kernel.pid)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\spyder\plugins\ipythonconsole\utils\manager.py", line 59, in kill_proc_tree
    child_process.send_signal(sig)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\psutil\__init__.py", line 292, in wrapper
    return fun(self, *args, **kwargs)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\psutil\__init__.py", line 1214, in send_signal
    self._proc.send_signal(sig)
  File "C:\Users\Gorka\anaconda3\envs\deeplearning\lib\site-packages\psutil\_pswindows.py", line 681, in wrapper
    raise convert_oserror(err, pid=self.pid, name=self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=7204)

Versions

Spyder version: 4.1.2
Python version: 3.7.7
Qt version: 5.9.6
PyQt5 version: 5.9.2
Operating System: Windows 10

Dependencies

# Mandatory:
atomicwrites >=1.2.0           :  1.3.0 (OK)
chardet >=2.0.0                :  3.0.4 (OK)
cloudpickle >=0.5.0            :  1.3.0 (OK)
diff_match_patch >=20181111    :  20181111 (OK)
intervaltree                   :  None (OK)
IPython >=4.0                  :  7.13.0 (OK)
jedi =0.15.2                   :  0.15.2 (OK)
nbconvert >=4.0                :  5.6.1 (OK)
numpydoc >=0.6.0               :  0.9.2 (OK)
paramiko >=2.4.0               :  2.7.1 (OK)
parso =0.5.2                   :  0.5.2 (OK)
pexpect >=4.4.0                :  4.8.0 (OK)
pickleshare >=0.4              :  0.7.5 (OK)
psutil >=5.3                   :  5.7.0 (OK)
pygments >=2.0                 :  2.6.1 (OK)
pylint >=0.25                  :  2.4.4 (OK)
pyls >=0.31.9;<0.32.0          :  0.31.10 (OK)
qdarkstyle >=2.8               :  2.8.1 (OK)
qtawesome >=0.5.7              :  0.7.0 (OK)
qtconsole >=4.6.0              :  4.7.3 (OK)
qtpy >=1.5.0                   :  1.9.0 (OK)
rtree >=0.8.3                  :  0.9.3 (OK)
sphinx >=0.6.6                 :  2.4.4 (OK)
spyder_kernels >=1.9.0;<1.10.0 :  1.9.0 (OK)
watchdog                       :  None (OK)
zmq >=17                       :  18.1.1 (OK)

# Optional:
cython >=0.21                  :  0.29.15 (OK)
matplotlib >=2.0.0             :  3.1.3 (OK)
numpy >=1.7                    :  1.18.1 (OK)
pandas >=0.13.1                :  1.0.3 (OK)
scipy >=0.17.0                 :  1.4.1 (OK)
sympy >=0.7.3                  :  1.5.1 (OK)

@gorkagl, thanks for reporting. This could be fixed in our latest version. Please update by opening the Anaconda Prompt and running there
conda update anaconda
conda install spyder=4.1.5

Thank you, Carlos.
From: Carlos Cordoba<EMAIL_ADDRESS>Sent: Saturday, September 19, 2020 12:19 PM
To: spyder-ide/spyder<EMAIL_ADDRESS>Cc: gorkagl<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [spyder-ide/spyder] SVM Parameter Optimization Error (#13809)
@gorkagl https://github.com/gorkagl , thanks for reporting. This could be fixed in our latest version. Please update by opening the Anaconda Prompt and running there
conda update anaconda
conda install spyder=4.1.5
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/spyder-ide/spyder/issues/13809#issuecomment-695334208 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AOJJGG2JHQWINLY7IXKWAS3SGTRYBANCNFSM4RSXORKQ .

Was the problem fixed? Please let us know to see if we can close this issue.

Yes. Please close the ticket.
Cheers,
Gorka
From: Carlos Cordoba<EMAIL_ADDRESS>Sent: Friday, September 25, 2020 9:08 PM
To: spyder-ide/spyder<EMAIL_ADDRESS>Cc: gorkagl<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [spyder-ide/spyder] SVM Parameter Optimization Error (#13809)
Was the problem fixed? Please let us know to see if we can close this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/spyder-ide/spyder/issues/13809#issuecomment-699273222 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AOJJGG7G3GRFIE77U4NXIU3SHVEGXANCNFSM4RSXORKQ .


Adds shipping autofill; bypasses payment list if only cards is available

This PR includes several fixes

renamed 3ds module to security-3ds to fix the module not appearing in Android Studio due to not following correct naming conventions.
The billing form now pre-fills when disabling the "same as shipping" toggle.
Added network_security_config to the sample app
Added the ability to bypass the payment method list if Card is the only one available, and the user doesn't have any payment consents.

https://user-images.githubusercontent.com/1313663/212571201-eecde4a3-32e7-400e-b32a-dd5c9f52d51b.mov
https://user-images.githubusercontent.com/1313663/212571230-51d7e85e-48de-47d0-a554-05e558353822.mov
Fixes: #MOB-1088, #MOB-1313

Well done!


Lines between menu and toolbar, tab lines are too bright (dark theme)

First of all, thank for such an amazing theme. I wanted to get IntelliJ  IDEA to look like this for so long. You made it possible. Thank you.
2 things I would like to improve (I'm talking about dark version here)

The white line between the menu and the toolbar is too bright. I think it's kind of distracting and hard too look at.
Same goes for the tabs framing.

I think it would be great if these lines are changed to some dark color or at least not so white. Example of possible color: line between toolbar and folder structure bar.
Thanks in advance.

Hi @GoldenEagle19, sorry for the massive delay in response. Apparently Github decided I didn't want notifications for my own repositories. Could you take a picture of what you are talking about?


Separate hue / color mouse release events

How can i catch mouse release event on color palette?

If you want to access the mouse event on a color palette element you could listen to events on .sp-thumb-el elements on the spectrum container.  As in el.spectrum("container").on("mousedown", ".sp-thumb-el", function(e) { console.log(e); });.
But I don't understand the issue exactly, are you trying to be notified of a change that was caused by a palette click or the click itself?


the mod take so much RAM

Is this normal? Everytime i run the chatbot it always take all of my memory. It's so laggy.
My Ram; 12GB,
Intel i31005G1
Intel UHD

If you don't have a GPU and a very low end CPU, it is too be expected that RAM usage will be high for chatbot causing a lot of latency. If you can provide information about which model you are currently using, it might explain it.

I'm using Acer Aspire 5 5 a514-53g.

I was asking about which chatbot model you were using.

ohh, it's the one on your tutorial. Is it actually because of the model?

Bigger model also means higher computation ressources usage, but small models are also really bad in terms of quality.

Do you have recommendation in mind for low end though?

Maybe you can try GGUF models with quantized versions that should be lighter with reasonable performance. However, no GPU and an i3 CPU will clearly restrict your usage with high latency even with a smaller model.

I need yo upgrade my gear, really. Anyway Thanks!


App not recognising token

Hi,
Once i sign a user in , i cant seem to use the POST with the access_token under my artist API . Auth is denied with a 407
Sorry, you are not currently allowed to request:
                <PRE>    http://themeo-api.herokuapp.com/artists</PRE>

from this cache until you have authenticated yourself.
I am passing the access_token. I have tried the same request in postman using a bearer token and just using it as a parameter
repo:
https://github.com/CasperGrey/themeo-api/
Docs:
https://github.com/CasperGrey/themeo-api/blob/master/DOCS.md

The code seems right. That's probably something with your request. Also, there's no error 407 as far as I know.
Could you explain exactly how you're doing the requests (or better, translate them to curl)? Have you watched the video on the README?

Using postman
with access_token
with artist_ id = 2
with artist_name = blah
also tried it with no access token and with bearer token as the

If it helps - I can run the API request runner and out of a data file of 3000 itll get a 407 error around 60% of the time . It happens on different requests a with different runs so you can rule out data issues.


[Tech Insights] Support running fact retrievers in a multi-instance installation

Feature Suggestion
Support running fact retriever tasks across multiple instances.
Context
In the Tech Insights plugin README, it says that:

Current logic on running scheduled fact retrievers is intended to be executed in a single instance.

It suggests that we can use some environment variables to indicate if the retrievers should be registered.
However, in the current implementation of DefaultFactRetrieverEngine, it uses a PluginTaskScheduler to schedule the task, which has the concurrency control built in if the task scope is set to global, which is the default value.
https://github.com/backstage/backstage/blob/7b81f5dcc0fbb6929eff5bab78d09300548aae02/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts#L124-L129
So this issue is actually twofold:

Does the current implementation support running tasks across multiple instances? If yes, then we should update the docs.
If no, then what does it take to support the aforementioned feature?

@Xantier is it the case that they should only run on a single instance still? Or is that old docs.
The task scheduler is able to distribute load across multiple machines either way, but there could be parts in the insights backend that have other constraints.

I skimmed over the code and didn't notice anything exceptional, @Xantier would you mind shedding some light on this?

The scheduler has been switched over to use the built-in task runner which supports multiple instances. I believe the docs have staled out on that modification and multi-instance is actually supported.

Cool! Thanks for the confirmation @Xantier. Then I will open a PR to update the doc.

Hi @Rugvip @Xantier, opened PR https://github.com/backstage/backstage/pull/14108, thanks!


chore: Add passing Markdownlint config

Suppressed all failing rules so editing in VS Code has less noise

@lizap @danihalfin @Dansimp Would you be able to review this PR that introduces a VS Code configuration? Thanks.

@lizap @DaniHalfin @Dansimp Any updates with this PR? Thanks.

I'd rather keep any unnecessary config files out of the repo.

@DaniHalfin if you're editing articles with VS Code and the MS Docs Authoring Pack, many articles have warnings throughout without adding this

Agreed, but this is a tooling config and pertains to the preferences of an individual. I don't want to push (or maintain, for that matter) that kind of configuration.

The current PR isn't a preference, it just silences the currently failing rules so they can be cleaned up later. Some teams do actually go the preference route though like https://github.com/aspnet/AspNetCore.Docs/blob/master/.markdownlint.json

The preference part I was talking about, is whether or not to use markdown lint (even with the authoring pack installed, markdwon lint can be disabled).
Adding and maintaining tooling configuration in a content repo isn't something we're looking to do in our content repo at this point, but we can revisit if we get more feedback to that point.

@nschonni
From our understanding the pull request has been declined via DaniHalfin's comments and thus it is being closed.
Thank you so far with the rest of your contributions. Much appreciated.

@officedocsbot close


Make it work in native

Quick hack, definitely needs some polishing; mainly you shouldn't need the reflect-config.json file - I should fold those rules into the Quarkus H2 extensions.
Compile with:

mvn package -DskipTests -Dnative

run:

./target/pockets-cli-199-SNAPSHOT-runner

Requires a recent Quarkus main build locally (depends on version 999-SNAPSHOT).

@ebullient sent a second PR to Quarkus https://github.com/quarkusio/quarkus/pull/28492 which makes the reflect-config.son which I had included in the first draft unnecessary : stuff is now computed dynamically.

Rebased and refreshed the draft.

Added one more commit, which makes it unnecessary to include the json files in the native version.

Has this delivered in 2.14?

Yes - updated the PR :)


Updated webimpress/http-middleware-compatibility to 0.1.4

This version install also composer plugin which prompt user to install http-interop/http-middleware as explicit dependency in their composer.json.
It prompts only when http-interop/http-middleware is not installed, otherwise it use version currently installed to update composer.json and message with information how to update is shown in console.

Closed in favour of #50


[BUG]:

Bug Description
Nithesh suggested opening a github issue for some of the behavior and questions we had related to the operator install instructions.  He will reach out in regards to these issues.
At this link we show how to install the operator
https://dell.github.io/csm-docs/docs/csidriver/installation/operator/#steps
These are the steps provided.

Clone the Dell CSI Operator repository.
cd dell-csi-operator
git checkout dell-csi-operator-`your-version’
Run bash scripts/install.sh to install the operator.

The checkout doesn't work for 1.7.0 but works for 1.6.0:
[root@lsisfty95 dell-csi-operator]# git checkout dell-csi-operator-1.7.0
error: pathspec 'dell-csi-operator-1.7.0' did not match any file(s) known to git.
[root@lsisfty95 dell-csi-operator]# git checkout dell-csi-operator-1.6.0
Branch dell-csi-operator-1.6.0 set up to track remote branch dell-csi-operator-1.6.0 from origin.
Switched to a new branch 'dell-csi-operator-1.6.0'
[root@lsisfty95 dell-csi-operator]# git branch

dell-csi-operator-1.6.0
main

It doesn't look like we have a 1.7.0 branch?
[root@lsisfty95 dell-csi-operator]# git branch -a

dell-csi-operator-1.6.0
...
remotes/origin/dell-csi-operator-1.4.0
remotes/origin/dell-csi-operator-1.5.0
remotes/origin/dell-csi-operator-1.6.0

[root@lsisfty95 dell-csi-operator]# git tag
csi-operator-v1.0.0
v1.0.0
v1.1.0
v1.2.0
v1.3.0
v1.4.0
v1.5.0
v1.6.0
v1.7.0
v1.8.0
We should
make the docs so that novice and experts can use.
Explain that they are downloading all the versions and that the checkout command will get the version that they will use.
Provide sample like we do in other areas of the docs
Fix step 3 syntax that is not clear and/or branch.  If the customer can't figure out this syntax for checkout/or the branch isn't there and doesn't use a tag or branch on step 1 this pulls all the files and in my case it was prerelease of 2.3 but tried to install 2.3 whiteout the 2.3 driver files being available yet.
Also,
We should explain we we don't do git clone -b for branch, or if we can provide that as an option.  Would this be the more simple way?
Why don't we use the tags v1.7.0 and latest?
Should that be an option to just do git clone -b v1.7.0 https://github.com/dell/dell-csi-operator.git or should git clone -b v1.7.0 https://github.com/dell/dell-csi-operator.git:v1.7.0 work?
why do we force the user to download all of the drivers and images when they may only want to use a certain driver?
Logs
see above
Screenshots
n/a
Additional Environment Information
Env 1(CS Lab)
Operator 1.7
PowerScale 2.2
K8 1.23
CentOS
Env 2
Operator seen during upgrade 1.6 => 1.7
PowerScale driver seen during upgrade 2.1 driver => 2.2
OCP 4.8
PowerScale 8.2.2
Steps to Reproduce
see above
Expected Behavior
see above
CSM Driver(s)
CSI Operator v1.7.0
CSI Driver for PowerScale 2.2
Installation Type
CSI Operator v1.7.0
Container Storage Modules Enabled
n/a
Container Orchestrator
OpenShift and K8
Operating System
CentOS CoreOS

Documentation has been taken care.

Hi @gashof,
Thanks for your inputs. Updated the documentation to make use of tags instead of branches. I think all the other points mentioned as part of the ticket are covered with this change except "why do we force the user to download all of the drivers and images when they may only want to use a certain driver?". We will handle this as part of the other git hub issue raised https://github.com/dell/csm/issues/348
If you are fine with the changes done. we will clos the ticket. Please let us know.
Thanks
Rajendra

Thanks!
I think here:
https://dell.github.io/csm-docs/docs/csidriver/installation/operator/#steps
We should include clarification to put the version after the -b (v1.7.0 for example) just to be crystal clear.
I also think we should include examples to fill in any gaps with these instructions like we do for most of the other installs.
I also think we should put this clarification here for the offline operator install method:
https://dell.github.io/csm-docs/docs/csidriver/installation/offline/#building-an-offline-bundle


devices missing encoders

Currently playing with a SONY SWR-50 "smartwatch 3" on a SDK23 / 6.0.1 build missing ALL encoders...:
java.lang.IllegalArgumentException: Failed to initialize video/avc, error 0xfffffffe....
I would like to ask for a lowres/framerate option - maybe streaming jpg screenshots without the need of the .MediaCodec? It's only 320x320 pixel in this case - maybe raw would work aswell ?

Yes, smartwatches don't have hardware encoder.
Adding jpg screenshots adds too much complexity for the benefit (and it would be low quality/framerate).


Support additional hashing functions

Additional hashing algorithms should be added to implementations.

id
name
reason

sha-256d
2-SHA-256
Prevents length extension attacks, and can otherwise leverage the same benefits (e.g. hardware implementations) as SHA-256.

keccak-256
Keccak-256
There are concerns that the changes to Keccak when finalizing it to SHA3 made it more vulnerable.

sha3-256
SHA3-256
SHA3 is the next standard hash function, and unlike SHA2 is not known to be vulnerable to length extension attacks.

Note that the implementation is generic over the underlying hash function.
However, I am loathe to support a hash function zoo in any sort of official capacity (beyond enabling the possibility for those who choose to do so).
More choice in cryptographic algorithms increases implementation complexity and harms interoperability. To the extent the existing implementation is generic over the underlying hash function, the main use case is to support hardware cryptographic accelerators for SHA-256 (as one of our main use cases is embedded) as opposed to using the software implementation in the sha2 crate
Length extension attacks against Veriform are largely mitigated through its current use of nested/structured hashing. The one place where there's even a potential for length extension attacks to occur is in toplevel messages, and to me the best solution to that is to place toplevel messages into self-delimiting envelopes which include a length prefix at the beginning of the message, then computing a digest that includes the length delimiter.
That said, I do like sha256d since having seen it first used in Tahoe-LAFS, and will note that they did use it in the computation of their Merkle trees (as did Bitcoin/Satoshi, probably because that's what Tahoe-LAFS did). It just feels redundant in that context.

However, I am loathe to support a hash function zoo in any sort of official capacity (beyond enabling the possibility for those who choose to do so).

You're not wrong, but that seems contradictory to officially supporting multiple languages:

NOTE: Veriform is a multi-language monorepo: all implementations in all languages within the repo are intended to implement the spec in its current state and share a consistent feature set. The progress above applies equally to all language implementations currently within the repo.

So long as a specification exists, it can be implemented in any language.

I would suggest implementations in other languages are similarly parameterized around the underlying hash function.
Eventually it'd be good to pick an alternative to SHA-256 as a failsafe (or potential performance optimization), but initially I think it'd be better if all implementations use SHA-256.


doc: sample doc change

Test change on first line from Yogesh to Ryan. Please reject it :)

recheck


Feature/change hash lib

This PR has 2 major changes

Change hashmap and hashset from ahash to rustc_hash, which improves speed a little bit.
(Incrementally) improve error handling in Newmm functions - internal_segment and other functions now return Result. Tokenizer trait is also changed.

Cargo [profile.release] configuration is experimental, I try a method from The Performance Book
Need help with benchmarking.

Have several warnings here:
src/tokenizer/tcc_custom.rs#L104
function is never used: `tcc_pos`

src/tokenizer/tcc_custom.rs#L121
function is never used: `segment`

src/tokenizer/dict_reader_custom.rs#L11
variant is never constructed: `WordList`

for tcc_pos, probably removing the old tcc_pos and renaming tcc_pos_quick to (new) tcc_pos?


Print more informative errors from Sidekiq integration

Exceptions reported from Sidekiq are handled by printing the queue of the current context, which can be less than informative. Improve the handling by exposing more information from the context_hash parameter.

Its actually worth noting that the args object is always an array of YAML strings so we can actually call ::YAML.load on each one to actually print the arguments to the job. This is useful if there is anything binary in there (mongo ids for example)

Some ideas for better context-info:

my_job_class#perform
sidekiq#my_job_class
sidekiq/my_job_class#perform
my_queue/my_job_class#perform
my_queue#my_job_class

I am leaning mostly towards to my_job_class#perform.
app_type is set to sidekiq either way, so it is possible to find all Sidekiq errors.
I might do a PR for this later.


Add an ability to set DMM cookie's region flag

See here: http://kancolle.wikia.com/wiki/Tutorial:_Proxy_Connection#Option_1:_Editing_DMM_Cookie.27s_Region_Flag_RECOMMENDED
This allows logging in without using a VPN.

Right-click the Developer Tool icon in the quick setting bar, then you can set DMM cookies' in the Developer Tool's window.

How? I tried pasting the lines from the wiki, but it doesn't work. It seems the developer tools work in the context of the Electron window, rather than the website frame.

If you left-click on the icon you could get developer tools of the Electron window, and if you right-click on the icon there will be the developer tools of webview frame.

Oh, that worked. For some reason it didn't work on the first try. But I would like to suggest adding an option that would do this automatically. What do you think?

Fixed by https://github.com/poooi/poi/commit/17ea6d209931e1426e7250c464f34be1108e4f4f


modify socket write method

Bolt\connection\Socket   write method

Can you tell us more about this change? I like to know more.

if i want wirte 90 bytes data, Only 70 bytes of data are successfully written in the first cycle，the remaining 20 bytes cannot be written, $sent is not reassigned。I am not sure whether I understand it correctly.

$send is reassigned but it contains value 70. Which means the while condition is wrong and you are right :vulcan_salute:


Add more output to setup dev script

Also, check that docker is installed.

Example output:
❯ ./setup_dev_env.sh
Step 1/7: Checking required tools
Step 2/7: Checking for AMBASSADOR_API_KEY environment variable
Step 3/7: Configuring development container. This container encapsulates all the dependencies needed to run the emojivoto-web-app locally.
This may take a few moments to download and start.
b9656be55ba71d240753b62606c6b0a74bb0866f7634ecf5001ebadd638560d9
latest: Pulling from datawire/emojivoto-node-and-go-demo
Digest: sha256:cce2c335545f9f23215243c245cface81c05078215bfd24e49ca8a0a6ae65621
Status: Image is up to date for datawire/emojivoto-node-and-go-demo:latest
Step 4/7: Extracting KUBECONFIG from container
.
Listing services in emojivoto namespace
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
emoji-svc        ClusterIP   <IP_ADDRESS>   <none>        8080/TCP,8801/TCP   67m
voting-svc       ClusterIP   <IP_ADDRESS>     <none>        8080/TCP,8801/TCP   67m
web-svc          ClusterIP   <IP_ADDRESS>    <none>        8080/TCP            67m
web-app-canary   ClusterIP   <IP_ADDRESS>    <none>        80/TCP              67m
web-app          ClusterIP   <IP_ADDRESS>   <none>        80/TCP              67m
Step 5/7: Checking for Telepresence
Telepresence already installed
Step 6/7: Connecting local development environment to remote K8s cluster
Launching Telepresence User Daemon
Login successful.
Launching Telepresence Root Daemon
Connected to context default (https://demo-prod-4cd294c8-35de-482a-9207-6c14170f8bbf.kluster.bakerstreet.io)
Using ReplicaSet web-app-57bc7c4959
intercepted
    Intercept name         : web-app-57bc7c4959-emojivoto
    State                  : ACTIVE
    Workload kind          : ReplicaSet
    Destination            : <IP_ADDRESS>:8083
    Service Port Identifier: 80
    Intercepting           : HTTP requests that match all headers:
      'x-telepresence-intercept-id: 4fd65c9a-d7a5-4d6e-ae9c-9d2db19d5409:web-app-57bc7c4959-emojivoto'
    Preview URL            : https://determined-pasteur-9053.preview.edgestack.me
    Layer 5 Hostname       : ambassador.ambassador
Step 7/7: Opening editor

INSTRUCTIONS FOR DEVELOPMENT
============================
To set the correct Kubernetes context on this shell, please execute:
export KUBECONFIG=./emojivoto_k8s_context.yaml

Yes I agree we should do both of the above, although whether or not we want to do it on this PR I don't have a strong opinion

This looks much better! I really like how clear is now to the user about how many steps and what is doing in each step, I tested in Mac and everything works perfectly.
There are two things that could be addressed in this PR:
1. The fix for the cases when the docker daemon is not running and the script hangs in an infinite loop (we can tackle this in a separate PR if you want).

2. This is more a suggestion based on the feedback we received, but maybe we can `install_telepresence` before trying to `run_dev_container`, what do you think?

@joseldmc  1 and 2 fixed


Why duplicate interrupts...

// For whatever reason, each bit is seen in duplicate.
// So, we drop half of them.
That is because you have pin-change interrupt, so you get an interrupt on both lo-hi and hi-lo transitions.

The ISR runs for both transitions, however the rising transition is caught early, here: https://github.com/cpfair/marklin-motorola-decoder/blob/master/decoder.ino#L35
I think the real reason for the duplication was mentioned in the format documentation all along, under "DESCRIPTION OF THE SEQUENCE OF PACKETS" (I must have missed it previously). As the data link from track to locomotive is noisy, the duplication can be used for error detection: the decoder can compare each packet with the previous, and only act if it receives two identical packets in a row.


Error in dll when compiling

I'm running on Windows 7 64-bit, VS 2012, oF 0.8.4,  and EDSDK 3.2. Everything in the example project seems to compile until it gets to the EDSDK dlls, when it throws a bunch of errors about unknown characters and such. I added the output of VS console to a pastebin since it's a bit long. Any thoughts? I was going to try downgrading SDK but I can't seem to find download link for the version you mentioned, so I'd have to google a download.
pastern.com/uAqeAbnf

I also get errors on the dlls . I use windows 8.1 of 0.9.3 and tried multiple versions of eos sdk


Preserve order when using alternate event loops

When the HttpContentCompressor is put on an alternate EventExecutor, the order of events should be
preserved so that the compressed content is correctly created. This is done by checking that
the executor in the ChannelHandlerContext is the same executor as the current executor when
evaluating if the handler should be skipped.
Motivation:
HttpContentCompressor shouldn't mangle the content when it is put on an alternate EventExecutor
Modification:
Describe the modifications you've done.
Checked the executor when examining if the handler could be skipped.
Result:
Fixes #10067
If there is no issue then describe the changes introduced by this PR.

@netty-bot test this please

@atcurtis please fix class cast exception.

There's a negation in front of the isOutbound.
Perhaps I should change the method to isNotOutbound and remove the negation.
On Sat, 29 Feb 2020, 10:56 pm Norman Maurer<EMAIL_ADDRESS>wrote:

@normanmaurer commented on this pull request.
In
transport/src/main/java/io/netty/channel/AbstractChannelHandlerContext.java
https://github.com/netty/netty/pull/10069#discussion_r386082587:

     do {

         ctx = ctx.prev;

   } while ((ctx.executionMask & mask) == 0);

   } while (!ChannelHandlerMask.isOutbound(ctx.executionMask)

       || (ctx.executionMask & mask) == 0 && ctx.executor() == currentExecutor);

this is not correct (and also not the one above) as you will cause a
ClassCastException later on if the ChannelHandlerContext does not wrap an
ChannelOutboundHandler.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/netty/netty/pull/10069?email_source=notifications&email_token=AAMS2VOAYCK6BKV5GCPSYI3RFIBKJA5CNFSM4K6PCVT2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCXOYJNY#pullrequestreview-366838967,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMS2VPNQLRQU2RJD5NBH4DRFIBKJANCNFSM4K6PCVTQ
.

@atcurtis see the test failures

Okay... I'll run all tests. (I admit I haven't yet)
On Sun, 1 Mar 2020, 10:20 am Norman Maurer<EMAIL_ADDRESS>wrote:

@atcurtis https://github.com/atcurtis see the test failures
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/netty/netty/pull/10069?email_source=notifications&email_token=AAMS2VJOR5ECBP3RVYRVQ43RFKRPHA5CNFSM4K6PCVT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENNGSSI#issuecomment-593127753,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMS2VKFKRTUOMSG7S6ZIFTRFKRPHANCNFSM4K6PCVTQ
.

@atcurtis please check my latest commit here... this should fix it.

@netty-bot test this please

@netty-bot test this please

@netty-bot test this please

@normanmaurer  Oops, I didn't see that you had pushed your version... sorry!
comparing, your's looks cleaner.

@atcurtis will squash our commits and merge... Thanks for the help!

@netty-bot test this please


Document command-line arguments to CarlaUE4 or add -h

Greetings,
The documentation on the available command-line arguments does not seem to be complete.  Would it be possible to add all the available command-line options to a -h flag to the CarlaUE4 binary or include the ones available in the linked documentation?  I see that the move to 'Shipping Mode' as the default limits many, but not sure which.

Hi,
The documentation will be updated soon, however due to the recent shipping mode change there is a new way to add command-line arguments.
Please, refer to this closed issue and let me know if it solves your doubts: https://github.com/carla-simulator/carla/issues/1908

Thanks!


Added validity proofs for eq, ge and aggregate proof

I didn't understand how the validity proof that is processed as per this section is combined with the non-revocation proofs that are also in the presentation.  There will be one of those per source credential that have to be processed.

I didn't understand how the validity proof that is processed as per this section is combined with the non-revocation proofs that are also in the presentation. There will be one of those per source credential that have to be processed.

To verify the proof, we need to regenerate the challenge hash at verifier side and match it with the one recieved from prover. The challenge hash is computed by concatinating \mathcal{C}, \mathcal{T} and nonce n_1. \mathcal{C} and n_1 are sent by the holder to verifier, and verfier has to compute \mathcal{T} by using the NRP and validity proofs. That's why at the end of both NRP and validity proofs you would find the line "add these values to \hat{T}", which basically means we are regenerating \mathcal{T}.

I didn't understand how the validity proof that is processed as per this section is combined with the non-revocation proofs that are also in the presentation. There will be one of those per source credential that have to be processed.

To verify the proof, we need to regenerate the challenge hash at verifier side and match it with the one recieved from prover. The challenge hash is computed by concatinating \mathcal{C}, \mathcal{T} and nonce n_1. \mathcal{C} and n_1 are sent by the holder to verifier, and verfier has to compute \mathcal{T} by using the NRP and validity proofs. That's why at the end of both NRP and validity proofs you would find the line "add these values to \hat{T}", which basically means we are regenerating \mathcal{T}.

Correct

Reopend pull request accidentally closed.  @mikelodder7 — could you please add your approval?  Thanks!


(OSX) Torch not compiled with CUDA enabled

Receiving assertion error below.
AssertionError: Torch not compiled with CUDA enabled
Check links pytorch issue 30664, which seems focused on PC. Is there work around for Mac where CUDA-capable GPUs aren't available?

on mac, you can use
device = "mps" instead of device="cuda".


AMBARI-24403 grafana is not showing any datapoints if the queue name contains special characters

What changes were proposed in this pull request?
AMBARI-24403 grafana is not showing any datapoints if the queue name contains special characters
have a queue named 'A&B' , in Yarn queues dashboard if I select this queue name I am getting empty data showing no data points.
The issue is reproducible
How was this patch tested?
tested in UI works fine
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ambari-metrics-grafana ---
[INFO] Installing /Users/asnaik/Documents/Work/code/forked_Ambari/ambari/ambari-metrics/ambari-metrics-grafana/pom.xml to /Users/asnaik/.m2/repository/org/apache/ambari/ambari-metrics-grafana/<IP_ADDRESS>.0/ambari-metrics-grafana-<IP_ADDRESS>.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.991 s
[INFO] Finished at: 2018-08-03T15:41:37+05:30
[INFO] Final Memory: 15M/293M
[INFO] ------------------------------------------------------------------------
(Please explain how this patch was tested. Ex: unit tests, manual tests)
(If this patch involves UI changes, please attach a screen-shot; otherwise, remove this)
Please review Ambari Contributing Guide before opening a pull request.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3441/
Test PASSed.


Remove resources from memory on metawatch 'delete'

Closes: #1532

[x] tests and linter show no problems (npm t)
[x] code is properly formatted (npm run fmt)
[x] description of changes is added in CHANGELOG.md

Landed in https://github.com/metarhia/impress/commit/88f58cadc676d1fdf53d307cd35b36d53722e427


fix(pubsub): Removing chat handler causing screen spam

:tada: This PR is included in version 5.2.1 :tada:
Your semantic-release bot :package::rocket:


Users and Roles - FF4j

I am working on designing an RDBMS tables which maps Roles and Users for ff4j.
The basic idea is to know whether a specific user has access to a particular feature.
I came up with the following design.
Table 1:
UserID
100
200
Table 2:
ID      Roles
1          admin
2          beta-tester
Table 3:  (mapping table)
ID          roleID
100           1
100           2
200           2
But I could see that there is already  ff4j_roles table which handles roles.So I am confused with my design.And I see that if the feature is public, that does not have an entry in ff4j_roles.Is there a way we can add a "users" table and map it with ff4j_roles table?
Or can I go ahead with my design as above, get the "roles" a specific user has(using the above 3 tables), then get the "feature/s" to which those roles are assigned to from the ff4j_Roles table and thus decide if the user has access to the feature?
Thanks
Vinod

Hello,
There is a bit of legacy here. FF4J_ROLES are meant to be used with AutorizationManager. The roles are the GrantedAuthority of SpringJDBC (roles) but there is nothing to work with users of groups.
In V2 things are better with users, grount roles and true ACL directly handled by FF4J. This way you can also defined some role in the use of the web console (read-only...). You can find some information here. So far I only implemented the ff4j-core but it's work like expected. The SQL is :
CREATE TABLE FF4J_FEATURE (
 UID 	VARCHAR(100) NOT NULL,
 CREATED 	DATETIME NOT NULL,
 LASTMODIFIED 	DATETIME NOT NULL,
 OWNER 	VARCHAR(100),
 DESCRIPTION 	VARCHAR(255),
 ENABLE 	INTEGER NOT NULL,
 GROUPNAME 	VARCHAR(100),
 PRIMARY KEY (UID)
);
CREATE TABLE FF4J_FEATURE_PROP (
 UID 	VARCHAR(100) NOT NULL,
 CLASSNAME 	VARCHAR(255) NOT NULL,
 VAL 	VARCHAR(255) NOT NULL,
 FIXEDVALUES 	VARCHAR(1000),
 FEAT_UID 	VARCHAR(100) NOT NULL,
 PRIMARY KEY (UID,FEAT_UID),
 FOREIGN KEY (FEAT_UID) REFERENCES FF4J_FEATURE(UID)
);
CREATE TABLE FF4J_FEATURE_PERM (
 FEATURE 	VARCHAR(100) NOT NULL,
 RIGHTS 	VARCHAR(100) NOT NULL,
 GRANTEE 	VARCHAR(100) NOT NULL,
 DESCRIPTION 	VARCHAR(255),
 PRIMARY KEY (FEATURE,RIGHTS,GRANTEE),
 FOREIGN KEY (FEATURE) REFERENCES FF4J_FEATURE(UID)
);
CREATE TABLE FF4J_FEATURE_STRAT (
 FEATURE 	VARCHAR(100) NOT NULL,
 CLASSNAME 	VARCHAR(200) NOT NULL,
 INITPARAMS 	VARCHAR(500),
 PRIMARY KEY (FEATURE,CLASSNAME),
 FOREIGN KEY (FEATURE) REFERENCES FF4J_FEATURE(UID)
);
CREATE TABLE FF4J_PROPERTY (
 UID 	VARCHAR(100) NOT NULL,
 CREATED 	DATETIME NOT NULL,
 LASTMODIFIED 	DATETIME NOT NULL,
 OWNER 	VARCHAR(100),
 DESCRIPTION 	VARCHAR(255),
 CLASSNAME 	VARCHAR(255) NOT NULL,
 READONLY 	INTEGER NOT NULL,
 VAL 	VARCHAR(255) NOT NULL,
 FIXEDVALUES 	VARCHAR(1000),
 STRATCLASS 	VARCHAR(1000) NOT NULL,
 INITPARAMS 	VARCHAR(1000),
 PRIMARY KEY (UID)
);
CREATE TABLE FF4J_PROPERTY_PROP (
 UID 	VARCHAR(100) NOT NULL,
 CLASSNAME 	VARCHAR(255) NOT NULL,
 VAL 	VARCHAR(255) NOT NULL,
 FIXEDVALUES 	VARCHAR(1000),
 PROP_UID 	VARCHAR(100) NOT NULL,
 PRIMARY KEY (UID,PROP_UID),
 FOREIGN KEY (PROP_UID) REFERENCES FF4J_PROPERTY(UID)
);
CREATE TABLE FF4J_PROPERTY_PERM (
 PROPERTY 	VARCHAR(100) NOT NULL,
 RIGHTS 	VARCHAR(100) NOT NULL,
 GRANTEE 	VARCHAR(100) NOT NULL,
 DESCRIPTION 	VARCHAR(255),
 PRIMARY KEY (PROPERTY,RIGHTS,GRANTEE),
 FOREIGN KEY (PROPERTY) REFERENCES FF4J_PROPERTY(UID)
);
CREATE TABLE FF4J_AUDIT_TRAIL (
 UID 	VARCHAR(100) NOT NULL,
 CREATED 	DATETIME NOT NULL,
 LASTMODIFIED 	DATETIME NOT NULL,
 OWNER 	VARCHAR(100),
 DESCRIPTION 	VARCHAR(255),
 EVT_TIME 	TIMESTAMP NOT NULL,
 EVT_TYPE 	VARCHAR(30) NOT NULL,
 NAME 	VARCHAR(30) NOT NULL,
 ACTION 	VARCHAR(30) NOT NULL,
 HOSTNAME 	VARCHAR(100),
 SOURCE 	VARCHAR(100),
 DURATION 	INTEGER NOT NULL,
 EVT_VALUE 	VARCHAR(100) NOT NULL,
 EVT_KEYS 	VARCHAR(1000) NOT NULL,
 PRIMARY KEY (UID,EVT_TIME)
);
CREATE TABLE FF4J_FEATURE_USAGE (
 UID 	VARCHAR(100) NOT NULL,
 CREATED 	DATETIME NOT NULL,
 LASTMODIFIED 	DATETIME NOT NULL,
 OWNER 	VARCHAR(100),
 DESCRIPTION 	VARCHAR(255),
 EVT_TIME 	TIMESTAMP NOT NULL,
 EVT_TYPE 	VARCHAR(30) NOT NULL,
 NAME 	VARCHAR(30) NOT NULL,
 ACTION 	VARCHAR(30) NOT NULL,
 HOSTNAME 	VARCHAR(100),
 SOURCE 	VARCHAR(100),
 DURATION 	INTEGER NOT NULL,
 EVT_VALUE 	VARCHAR(100) NOT NULL,
 EVT_KEYS 	VARCHAR(1000) NOT NULL,
 PRIMARY KEY (UID,EVT_TIME)
);
CREATE TABLE FF4J_PERMISSION (
 TARGET 	VARCHAR(100) NOT NULL,
 RIGHTS 	VARCHAR(100) NOT NULL,
 GRANTEE 	VARCHAR(100) NOT NULL,
 DESCRIPTION 	VARCHAR(255),
 PRIMARY KEY (RIGHTS,GRANTEE,TARGET)
);
CREATE TABLE FF4J_USER (
 UID 	VARCHAR(100) NOT NULL,
 CREATED 	DATETIME NOT NULL,
 LASTMODIFIED 	DATETIME NOT NULL,
 OWNER 	VARCHAR(100),
 DESCRIPTION 	VARCHAR(255),
 PASSWORD 	VARCHAR(255) NOT NULL,
 LASTNAME 	VARCHAR(100),
 FIRSTNAME 	VARCHAR(100),
 PRIMARY KEY (UID)
);
CREATE TABLE FF4J_USER_ROLE (
 NAME 	VARCHAR(100) NOT NULL,
 DESCRIPTION 	VARCHAR(255),
 PRIMARY KEY (NAME)
);
CREATE TABLE FF4J_USER_ROLE_A (
 REF_USER 	VARCHAR(100) NOT NULL,
 REF_GROUP 	VARCHAR(100) NOT NULL,
 PRIMARY KEY (REF_USER,REF_GROUP),
 FOREIGN KEY (REF_USER) REFERENCES FF4J_USER(UID),
 FOREIGN KEY (REF_GROUP) REFERENCES FF4J_USER_ROLE(NAME)
);

But to come back to 1.X you design is closed and should do the JOB


fix: allow owned leaves in the certified map hash trees

Currently, all the values in the hash trees produced by the certified
map must be references.  This makes it harder for the clients to
build hash trees on the fly from the contents stored in the map.
This change modifies the definition of the HashTree to allow both
references and values to be stored in the tree.
This is a BREAKING CHANGE, some client code might need to be modified
and recompiled.
Fixes #121.

This is the same PR as https://github.com/dfinity/cdk-rs/pull/122.
I had to create a new PR from a branch because the CI has issues with building PR from forks.

Was already merged in https://github.com/dfinity/cdk-rs/pull/131.
Sorry for noise.


vimPlugins.codesnap-nvim: 1.5.1 -> 1.5.2

Description of changes
Changelog: https://github.com/mistricky/codesnap.nvim/releases/tag/v1.5.2

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.


strawberry scalar of type JSON

How can I add some scalar like strawberry JSON?
schemathesis always crashes while printing the AST.
is the definition
from strawberry.scalars import JSON

@st.composite
def json_strategy(draw: st.DrawFn):
    return JSON(
        {
            "action": draw(
                st.sampled_from(
                    [
                        "manage",
                        "admin",
                        "view",
                        "create",
                        "delete",
                        "update",
                    ]
                )
            )
        }
    )

wrong? Or there a bug in schemathesis?
I get the error:
TypeError: Invalid AST Node: {'action': 'manage'}.

Schemathesis uses the graphql package for nodes. It is re-exported bia schemathesis.graphql.nodes. From the docs:
from hypothesis import strategies as st
import schemathesis
from schemathesis.graphql import nodes

schemathesis.graphql.scalar("Date", st.dates().map(nodes.String))

my guess is (based on the relevant js impl) that the actual node type depends on the JSON value type, so should it be wrapped in nodes.Object instead or JSON from strawberry.scalars?
from hypothesis import strategies as st
import schemathesis
from schemathesis.graphql import nodes

@st.composite
def json_strategy(draw: st.DrawFn):
    return {
            "action": draw(
                st.sampled_from(
                    [
                        "manage",
                        "admin",
                        "view",
                        "create",
                        "delete",
                        "update",
                    ]
                )
            )
        }

schemathesis.graphql.scalar("JSON", json_strategy().map(Object))

sadly still failing with:
TypeError: Invalid AST Node: {'action': 'manage'}
I wonder what kind of magic the strawberry guys are using

I’ll check it in more detail, the inner structure of GraphQL nodes should be relatively straightforward. Maybe some inner parts should be wrapped too

@devkral did you manage to implement it? If so and if you are willing to share the results, I'd be happy yo include it in the docs or maybe even bring some implementation helpers to Schemathesis itself

no


proxy: fix multiple envoy listeners for same proxyType

Proxy refactoring #26839 missed introducing breaking the redirect-creation-loop in case of successfully creating the redirect.
This leads to creating a redirect for all creation attemts (5x).
This commit fixes this by exiting the loop if the redirect was created successfully
Fixes: #26839

/test


Add documentation for missing options

There are sensitive, strict and methods options which the router accepts, but are currently undocumented.
I've added the missing strict option to the TypeScript type definition too in DefinitelyTyped/DefinitelyTyped#21250 (sensitive and methods are already documented).
I re-generated the README using npm run docs, but it looks like it changed a lot of stuff. Should I just keep the changes which refer to the new options?

Looks good. I think it's fine that the docs generation has a large diff. Thanks for the updates!

Now we just have to wait for the TS definitions to be updated too 😞. Thanks!


Add Array.size

This aims to address https://forum.dfinity.org/t/how-to-get-a-array-lengh/8346 and other instances of people asking about how to get the size of an array due to it being omitted from the generated documentation.

LGTM; added @kentosugama to take a look next week in case he has any suggestions for the documentation style.


Bump extras and logback

Bump extras and logback

extras to 0.42.0
logback to 1.4.11

Codecov Report

Merging #94 (d844f0b) into main (b86ad80) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main      #94   +/-   ##
=======================================
  Coverage   81.77%   81.77%
=======================================
  Files          17       17
  Lines         384      384
  Branches        3        3
=======================================
  Hits          314      314
  Misses         70       70


Fix AtomicLocalFile #2087 erroneous move (py2), #2599 dangling open file handle (win,nix?)

Description
Fixes to AtomicLocalFile to fix
Motivation and Context
Bugs where AtomicLocalFile

erroneously commits failed data
fails to cleanup open file handles
raises "file open in other process" error and dies (on windows)

Have you tested this? If so, how?
Only by hand. Tested with simple task pipe, and tested using reproduction code in #2087 and #2599

@computercolin are there any tests which should already be covering this patch that weren't?


Remove News/Links/Contacts functionality

Unused and only implemented at a very basic level.

What about project documents?

Sure!