Add initial line-fitting functionality

This PR adds the basic functionality for adding the best-fit line to the student's data via a button press on the second screen. Each time that vue_fit_lines is called for a viewer, any previous lines from data/subsets in that viewer are removed. Since the glupyter viewer doesn't have an option to draw lines, my workaround was to add a LinesGL mark onto the viewer's figure image. I also added a second scatter viewer, so that the fit line doesn't appear on the first screen.
@nmearl Do you think this seems like a reasonable approach, relative to the app architecture as a whole? If so, I can add the same functionality for student/class/all public data on the third screen.

The approach here certainly works, but I would consider the case where you e.g. want all or a subset of students, but filtered by galaxy type or class id. In that case, you'd have to have preemptively created subsets for each combination or end up having to combine data across different layers, which could be tedious.
This is sort of the case I was considering when doing the dynamic subset creation. In my example, I had imagined you might (1) let the user select their criteria (galaxy type + class 1 + students 1-10), then (2) create the subset and convert it to a layer on-the-fly, and finally (3) fit a line to the new layer. Once done, the layer can be disposed of. This would allow us to keep all the data together and simply "filter" when needed.
Of course, I haven't thought of all use cases/corner cases, so this definitely open to discussion/improvement.

I was thinking that if we wanted to (for example) automatically fit and plot a new line when the student changes their selection, we could call vue_fit_lines at the end of vue_galaxy_selected and vue_class_selected, or whatever their analogues are in the app itself. The old subset gets deleted, the line-fitting function removes the line for the old subset, and fits one for the new subset.
I guess the real issue there is that, as written, vue_fit_lines fits a line to every visible layer, which we may not want in a case like your notebook example. Some flexibility with what we actually fit to would be nice for that sort of scenario.

@nmearl, see my comment on #23. I think allowing selections on 2 independent axes could end up being very confusing for students, so we will likely want to limit the screens to allow only 1 type of selection at a time.
Regarding @Carifio24's last comment, I think students may get confused if the fit lines are automatically updated every time they change their selection. My suggestion is that the lines should all disappear whenever students make a new selection, and they have to click a button to display the updated fit line.
Another question that @Carifio24 and I discussed is whether we should show 1 line that is a fit to all displayed data, or if there should be separate fit lines displayed for each subset of data. It's possible (likely?) that offering too many choices like this will result in cognitive overload for students, but I could imagine keeping both buttons around while we are testing and then we can decide where we want to use each type of fit, or whether there is a way to sensibly offer both choices:

Fit one line to all data currently selected/displayed
Fit separate lines to each subset of data

So I've added a couple more options to the line fitting. The vue_fit_lines function now has options to

Specify which layers to include in any fitting (this is done via the UUID of the data object, as we can easily grab the data objects via the app's data collection). The default is to just use all visible layers.
Indicate whether or not we want to aggregate the data in these layers for a line fit, or do a line fit for each layer
Specify what we want to do with already-present lines (i.e. keep or delete) from other layers (or individual layers, if the aggregate flag is on)

I also added a function to clear any fit line from a given viewer. I think this should give use the flexibility to do whatever we want with the fitting. I suspect we won't end up using a decent subset of this, but this gives us options which we can pare down later.

Checked it out, looks good to me.


[Shared] Extensibility to override rendering of entire action set

Automatically generated task. Any updates to the title and body will be overwritten. Do NOT modify the labels.
Shared implementation of #1690

Closing, irrelevant for shared model, render-only feature


Generate UX writing for validation error text

For each question type, we'll need UX writing to make sure our error messages are good.
cc @natsid

UX audits are taking care of this


chore: removed 'es' from languages (#1003)

changes:
Removed 'es' from languages in line 44.

Hi @adarrssh, please modify your commit message Updated common.js to chore: Updated common.js to avoid Semantic Pull Request check failure. Other things LGTM. Thanks!

Hello, pls add Fixes: #{issue id}. You can refer to this link.


doughwallet

hi, I was looking a way to use your tool with the iphone doge coin app doughwallet.
I'm not able to get the proper derivation path to get the correct adresses.
While I was able to use it successfully with the dogecoin app breadwallet, from which dough has been fork, using the derivation path m/0'/0/*.
Do you have any Idea which is the correct derivation path for this app?

I do not know what the correct derivation path is for doughwallet.
Can you please supply some info for doge and doughwallet containing

the mnemonic
the dogecoin address generated by doughwallet for that mnemonic

Related issue

Here a new dogecoin address
DJu2zHGLbQDiVPMxvPMZ52YAgUrEwifuBZ
Generated with following phrase:
Until clog assist play slide hybrid return rubber possible undo item together

This is an issue with doughwallet.
After a lot of looking, I can't find where the 'wrong' code is in doughwallet (see attached for diff with breadwallet before doge changes). I'm fairly confident it's something that hasn't been changed that should have, rather than an incorrect change made by the author of doughwallet.
The derivation path seem to have been kept the same as breadwallet, so should be set to m/0'/0 in the bip32 tab of this tool.
The following alternative tools confirm the phrase and bip32 seed above should generate a first address of DEPLJffgPBuLqHUA24gCuKJmnp89f6ui5k, not the one
doughwallet.txt
doughwallet generates.
https://bip32jp.github.io/english/index.html
http://bip32.org/
I confirmed the same phrase used in breadwallet generates matching addresses across all tools and wallets, so the fork into doughwallet should be ok if the modifications to doge are correct (although doughwallet is 1039 commits behind breadwallet so take it with a grain of salt).
My recommendation: stop using doughwallet.

Thanks for your analysis Ian.

I've run DoughWallet in an iOS simulator and found the private key in the debugger:
QPLtCjDJ89eYGpEPPbhnZZyydhLt1ywiC3sCaXr6aEUCcSxygbWz
For more information see https://www.reddit.com/r/dogecoin/comments/6qicz9/how_to_get_your_private_keys_out_of_doughwallet/
tl;dr
BRBIP32Sequence.m line 251

Hello Ian,
Dough Wallet now has recovery tool, with derivation path set to m/0'/0. For wallets who had outgoing transactions, changing the path to m/0'/1 generates the private keys. But for wallets who had no outgoing transactions, the path m/0'/0 does not seem to work.
Is it possible for the child path to be m/0'/1 while the parent path not be m/0'/0?
Thank you.


Fixed sort for courses

Display the correct filter option for my courses
Before ->

After ->

Was done https://github.com/ita-social-projects/SpaceToStudy-Client/pull/1522


file path error

TypeError: Cannot read property 'readdir' of undefined

This module makes use of Node.js fs Promise API. Please upgrade Node to a recent version.


High quality profile picture broken with new API change

When running instaloader with logged in setting, there seems to be an issue getting high quality profile pictures.
This occurs on on Win10 with 4.2.7.
This is possibly due to the recent API changes.
'query_hash' Unable to fetch high quality profile pic.
'query_hash' Unable to fetch high quality profile pic.
'query_hash' Unable to fetch high quality profile pic.

I cannot confirm that. Using WIn7 with 4.2.7 since yesterday and new profile pics of checked accounts are in 1080 here.
Can you please post your commandline to reproduce your problem?

Hi,
Command line is following:
instaloader --no-captions --no-metadata-json --login xxxx --sessionfile session.txt --fast-update --filename-pattern="{profile}_{date}_{owner_id}-{mediaid}" +all.txt

I cannot confirm that neither. Could you show us an example of where this happens?

I looked back through the logs, and it appears to be related to 429 (too many requests), also possibly a false error.
[  1/250] [USER1]/[USER1]_2019-05-21_10-10-21_11111-20481111111111111111.jpg exists
JSON Query to api/v1/users/1111111/info/: 429 Too Many Requests [retrying; skip with ^C]
'query_hash' Unable to fetch high quality profile pic.

[USER2]/2014-10-30_05-26-50_UTC_profile_pic.jpg already exists
Retrieving posts from profile [USER2].
[  1/ 12] [USER2]/[USER2]_2016-07-21_06-23-55_2222-12992222222222.jpg exists
JSON Query to api/v1/users/22222222/info/: 429 Too Many Requests [retrying; skip with ^C]
'query_hash' Unable to fetch high quality profile pic.

[USER3]/2019-04-28_01-51-30_UTC_profile_pic.jpg already exists
Retrieving posts from profile [USER3].
[  1/ 97] [USER3]/[USER3]_2017-08-04_18-31-01_333333-157433333333333.jpg exists

When I run through on the individual profiles I get no error. Also they don't seem to have new profile pictures. So when I run the above 3 users it works fine.
Loaded session from session.txt.
Logged in as xxxxxx.
Downloading 3 profiles: [USER1] [USER2] [USER3]
[USER1]/2017-06-29_02-47-57_UTC_profile_pic.jpg already exists
[USER2]/2014-10-30_05-26-50_UTC_profile_pic.jpg already exists
[USER3]/2019-04-28_01-51-30_UTC_profile_pic.jpg already exists
Saved session to session.txt.

The full list has a lot more profiles and takes a number of hours.
So at a best guess, if you get a 429 while trying to check the profile pic on this API call: api/v1/users/22222222/info/, you'll get the query_hash error.
I've only started getting the error over the last 2 weeks - so possibly the API response is slightly different too.

Thanks, your complete log helped us to find and fix this bug. The fix is included in the new version 4.2.8.


[Scheduled Maintenance] Immich Servers will be down for Maintenance

Additional context
Immich is migrating to a better and more stable storage solution with better connectivity, thus will be down for maintenance.

Resolved: Immich is back up in f526f1a after 1 day, 12 minutes.


[WIP] Update examples

:art:
With the new base code and tests the examples are now almost obsolete, so they must be updated.

Turns out most of the examples were useless, still working on some examples for the UNet in both its variants. These should be added soon in a PR.

@gmagannaDevelop could you work on an example for MultiResUNet? It does't have to be very complicated, just to prove the implementation works.

Yes I'll work on it!


Personal website submission

Love the project, I made this website. and would love to put it into the ring for a website submission
submission:
https://wisehackermonkey.github.io/website/
2.2kb in size.
Loads fast on dialup speeds!
Thanks for taking the time to review.
best,

oran

Welcome to the 250kB Club!

OMG AWESOME!


How do you pass parameters into a view when using the addColumn() API?

Summary of problem or feature request
How do you pass parameters into a view when using the addColumn() API?
Code snippet of problem
My view looks something like (simplified for readability):
<button type="button" class="btn btn-primary">Edit</button>

My function looks like:
    public function datatable()
    {
        return DataTables::eloquent(User::query())
                ->addColumn('action', 'user.partials.actions') // <-- Need to pass the $user to this view
                ->toJson();
    }

Docs seem to suggest something gets passed along implicitly?
https://yajrabox.com/docs/laravel-datatables/master/add-column#view

You may use something like this (your $user is passed as $model):
{{ route('user.edit', $model) }}

or you may change your $user to $id, since each attributes in your User model passed to that view.
{{ route('user.edit', $id) }}

or you can use a callback that returns a rendered view:
->addColumn('action' , function (User $user) {
    return view('user.partials.actions', compact('user'))->render();
})


Will not work in a directive

The basic version, this code works well when used in a controller with $scope, but put it into a directive and scope.cover always comes up null when a file is selected.
<div ngf-select ng-model="cover" ngf-multiple="false" class="fakelink cover-wrapper">
    <img ng-src="{{user.coverUrl}}" itemprop="image" alt="Cover Photo" />
</div>

                       //File upload on change
                       scope.$watch( 'cover', function ( value ) {
                           console.log( value );

                           if ( scope.cover != null ) {
                               scope.upload( [scope.cover] );
                           }
                       } );

                       scope.upload = function ( files ) {
                           if ( files && files.length ) {
                               for ( var i = 0; i < files.length; i++ ) {
                                   var file = files[i];
                                   Upload.upload( {
                                       url: '/api/user/cover', file: file,
                                       fields: {
                                           username: scope.user.id
                                       }
                                   } ).success( function ( res ) {
                                       scope.user.coverUrl = res.coverUrl;
                                   } );
                               }
                           }
                       };

Create a jsfiddle.

I've created the fiddle and found that using ng-if in the same div as the ngf directive was the issue.
The ng-if=mode param was tied to scope mode: '@' set to 'edit'.
http://jsfiddle.net/warrendodsworth/ma2q6hwc/


DOC: Document deployment recommendations.

I invite other facilities to comment and, even better, to add sections on their own experience.

@danielballan should this go into the cookbook  instead?


arm container image

Hi,
linux/arm container images for version 2.2.3 and 2.2.2 are not available on hub.docker.com.
Is this a bug or are you planning to provide future versions only for linux/amd64?

Hi,
now they are there 😊

2.2.2
2.2.3


fix(ui): provisioning info lost when editing an entry

Fixes #1938
cc @kpine

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 28.358%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3712

Relevant Lines:
13776

💛  - Coveralls


Add Ajio

Description

Ajio (com.ril.ajio)

Type of change

:x: Bug fix (non-breaking change which fixes an issue)
:white_check_mark:  Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:x: General change (non-breaking change that doesn't fit the above categories like copyediting)

Icons addition information

Icons added

Ajio (com.ril.ajio)

Hey I've some suggestions to make. Hope you don't mind.

The path of bottom left corner not joined properly like the right one (Unless its intentional)
The inside angle of strokes are not aligned
You can very well go with 12px stroke thickness with this one instead of just 8px.

This one is personal opinion. I checked their logo and I think it would look good inside circle kind of similar to original logo.


delta%state initialization missing in dUdt function implementations

Hi Stefano,
I noticed that in the multi-level implementation of R(u,t) function implementations, you did not initialize the state after allocating the array, for example in case of Lorenz:
  pure function dLorenz_dt(self, n) result(dState_dt)
  !---------------------------------------------------------------------------------------------------------------------------------
  !< Time derivative of Lorenz field.
  !---------------------------------------------------------------------------------------------------------------------------------
  class(lorenz),          intent(IN) :: self      !< Lorenz field.
  integer(I_P), optional, intent(IN) :: n         !< Time level.
  class(integrand), allocatable      :: dState_dt !< Lorenz field time derivative.
  type(lorenz),     allocatable      :: delta     !< Delta state used as temporary variables.
  integer                            :: dn        !< Time level, dummy variable.
  !---------------------------------------------------------------------------------------------------------------------------------

  !---------------------------------------------------------------------------------------------------------------------------------
  ! preparing temporary delta
  allocate(delta)
  delta%dims = self%dims
  delta%steps = self%steps
  allocate(delta%state(1:self%dims, 1:self%steps))
  !delta%state = 0_R_P ! <<< delta%state should be initialized here
  delta%sigma = self%sigma
  delta%rho = self%rho
  delta%beta = self%beta
  ! Lorenz equations
  dn = self%steps ; if (present(n)) dn = n
  delta%state(1, dn) = self%sigma * (self%state(2, dn) - self%state(1, dn))
  delta%state(2, dn) = self%state(1, dn) * (self%rho - self%state(3, dn)) - self%state(2, dn)
  delta%state(3, dn) = self%state(1, dn) * self%state(2, dn) - self%beta * self%state(3, dn)
  call move_alloc(delta, dState_dt)
  return
  !---------------------------------------------------------------------------------------------------------------------------------
  endfunction dLorenz_dt

Same is true for the oscillation equations, and I find that initializing to zero now changes the solution from gibberish to just moderately wrong. For example, see the two examples for oscillation equation, first without initialization (notice the y-axis magnitude):

then with initialization of delta%state = 0_R_P:

It is still difficult to test this correctly because of the issue https://github.com/Fortran-FOSS-Programmers/FOODiE/issues/18.
If you agree with me that delta%state should be initialized to 0 after allocation, I can apply these changes in the current tests that we have.

Absolutely yes! I have not yet started the correctness/accuracy analysis but this is a bug for sure, the state U must be initialized! Thank you Milan for going forward :-)

Resolved, see https://github.com/Fortran-FOSS-Programmers/FOODiE/commit/402791d8cee145513e5b994a90e0bbe20a565a04.


Set granular token permissions for GitHub Actions

Permissions on the last workflow run according to the workflow run log (with default workflow permissions set to 'Read and write permissions'):
GITHUB_TOKEN Permissions
  Actions: write
  Checks: write
  Contents: write
  Deployments: write
  Discussions: write
  Issues: write
  Metadata: read
  Packages: write
  Pages: write
  PullRequests: write
  RepositoryProjects: write
  SecurityEvents: write
  Statuses: write

Permissions with this change according to the workflow run log (with default workflow permissions set to 'Read repository contents' only):
GITHUB_TOKEN Permissions
  Metadata: read
  PullRequests: write


[Database/unavailable] Service unavailable on Android after update - Possible impact of multiple database support?

Is there an existing issue for this?

[X] I have searched the existing issues.

Which plugins are affected?
Database
Which platforms are affected?
No response
Description
Description:
We are encountering an issue with the cloud_firestore package where Android users are receiving the following error:
[cloud_firestore/unavailable] The service is currently unavailable. This is most likely a transient condition and may be corrected by retrying with a backoff.
Reproducing the issue
Steps to Reproduce:
Update the cloud_firestore package to the latest version.
Attempt to connect to a Firestore database from an Android device.
The above error is received intermittently.
Expected Behavior:
Android devices should be able to connect to the Firestore database without encountering the [cloud_firestore/unavailable] error.
Firebase Core version
^3.3.0
Flutter Version
3.24.0
Relevant Log Output
No response
Flutter dependencies
No response
Additional context and comments
No response

Hi @Alecia1997 . Kindly provide a full sample code reproducing this issue.

`import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:flutter/foundation.dart';
class MainFirebaseRepository {
final FirebaseFirestore _firebaseFirestore = FirebaseFirestore.instance;
Future latestAppVersion() async {
try {
DocumentSnapshot<Map<String, dynamic>> snapshot =
await _firebaseFirestore.collection('settings').doc('latestAppVersion').get();
  if (Platform.isIOS) {
    return snapshot.data()?['iosBuild'] ?? 0;
  } else if (Platform.isAndroid) {
    return snapshot.data()?['androidBuild'] ?? 0;
  }
  return 0;
} catch (e) {
  print('Error fetching latest app version: $e');
  rethrow;
}

}
}
class AppVersionChecker {
final MainFirebaseRepository _repository = MainFirebaseRepository();
Future checkIfLatestAppVersion() async {
try {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
  int buildNumberStoredInFirebase = await _repository.latestAppVersion();
  int myBuildNumber = int.tryParse(packageInfo.buildNumber) ?? 0;

  print('Firebase build number: $buildNumberStoredInFirebase');
  print('Current app build number: $myBuildNumber');

  if (buildNumberStoredInFirebase > myBuildNumber) {
    print('App not using latest version');
  } else {
    print('App is using latest version');
  }
} catch (e) {
  print('Error checking app version: $e');
}

}
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
AppVersionChecker checker = AppVersionChecker();
await checker.checkIfLatestAppVersion();
}`

Please find sample code to run:
`import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
class MainFirebaseRepository {
final FirebaseFirestore _firebaseFirestore = FirebaseFirestore.instance;
Future latestAppVersion() async {
try {
DocumentSnapshot<Map<String, dynamic>> snapshot =
await _firebaseFirestore.collection('settings').doc('latestAppVersion').get();
  if (Platform.isIOS) {
    return snapshot.data()?['iosBuild'] ?? 0;
  } else if (Platform.isAndroid) {
    return snapshot.data()?['androidBuild'] ?? 0;
  }
  return 0;
} catch (e) {
  print('Error fetching latest app version: $e');
  rethrow;
}

}
}
class AppVersionChecker {
final MainFirebaseRepository _repository = MainFirebaseRepository();
Future checkIfLatestAppVersion() async {
try {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
  int buildNumberStoredInFirebase = await _repository.latestAppVersion();
  int myBuildNumber = int.tryParse(packageInfo.buildNumber) ?? 0;

  print('Firebase build number: $buildNumberStoredInFirebase');
  print('Current app build number: $myBuildNumber');

  if (buildNumberStoredInFirebase > myBuildNumber) {
    print('App not using latest version');
  } else {
    print('App is using latest version');
  }
} catch (e) {
  print('Error checking app version: $e');
}

}
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
AppVersionChecker checker = AppVersionChecker();
await checker.checkIfLatestAppVersion();
}`
The issue primarily impacts android users.

I am unable to reproduce this issue locally on my end. This issue is similar to 12019. From previous reports, it seems to be related to network issue/firestore downtime, etc.


make UidReverseComparator transitive, order null elements to right

this makes the comparator transitive by sorting null elements to the end. I'm not really sure about the assumptions made on the uid strings, so they might be better sorted to the start of the array? changing that should be trivial either way.

For tests please create one method per thing you test.
I also like to split tests in the phases setup, exercise, verify, e.g.
@Test
public void compare_withTwoNullArguments_shouldReturnZero() throws Exception {
    Message messageLeft = null;
    Message messageRight = null;

    int result = comparator.compare(messageLeft, messageRight);

    assertEquals("Result must be 0 when both arguments are null", 0, result);
}

With this class I don't see the benefit of testing with random numbers. Just pick some constants and make sure the tests exercise all execution paths.
Also, only test the contract (0, < 0, or > 0) not the implementation detail (uid2 - uid1).
As a general rule: Whenever you find yourself implementing some logic in a test take a step back and think about whether this is really necessary. Chances are the test code will be at least as complex as the code under test. That increases the likelihood of introducing new bugs or making the same mistakes as the code under test.

I like randomized testing like that because it has a chance to catch edge cases you missed, the transitive property here is a good example of that. I don't really have strong feelings about this though, if you don't want tests like that I'll remove it.

Randomized testing certainly has its uses. But it's hard. To be useful you need to record the input so an eventual failure can be reproduced fast. Also, the test depends on some (complex) code that is different from the code under test (in your case the Arrays.sort() implementation and the logic inside the test). So it's easy to introduce errors that are not immediately obvious.
In my opinion testing for the three required properties with constant input values is sufficient. Just make sure you do it for all classes of input values (message == null, message.getUid() == null, message.getUid() not being a parsable number, message.getUid() being a parsable number).

I made some changes. Feedback welcome.

looked it over, looks good to me

Thanks


Wrong WampOptions default parameter.

mReceiveTextMessageRaw should get set to true in the constructor.
See https://groups.google.com/forum/?fromgroups=#!topic/autobahnws/W97TBS84HIw

yeah, bug. won't fix though, because we'll move to WAMPv2 anyway .. pls see: https://github.com/crossbario/autobahn-android/issues/92


make test pass

test fails since #1231
383:25  error    'options' is assigned a value but never used  no-unused-vars
@grabbou

Ah, looks like I've sent a PR from a point in master that didn't have prettier formatting set up. Thanks!


Windows without decorations

(Priority: super low)
I'd like to be able to create windows without the titlebar or borders, in order to make my own custom thing.
For example, Bitwig made its own titlebar so it could add more stuff to it:

In GTK land, this is done with gtk_window_set_decorated.

For Windows, we'd need a way to adjust the window style being provided to CreateWindow - currently it's always WS_OVERLAPPED - we'd need WS_POPUP for borderless, I think. Then we will need to make it clear how to create the minimize, maximize/restore, and close buttons. And any resize border the user wants.
So, maybe a little complex, but definitely something I'd like to see.
In general, if you have the time, I think we're open to seeing something created for one platform and letting the others trail until we can get a good design story and make a workable API. I'm not sure if we're okay with that approach for something this large

So this is totally a goal, and is highly platform dependent.
I see there being two ways of handling this. The first is better API but less flexible: a WindowDescExt traits exposed on a per-platform basis, that allow doing platform-specific customization. This is inspired by the various traits in stdlib like [OsStrExt], [DirBuilderExt], etcetera. For platform specific behaviour (like setting the [NSWindowStyleMask] on macOS) you would do that via a method on an extension trait.
The other option is to allow (per-platform) for the WindowDesc to take a closure that will be given a pointer to a window object on that platform, where you can do whatever you want; we would call this right after instantiating the  window. This would let you do anything you can do with access to the window object, although it wouldn't work for things that you do during a window creation routine.
It may be but this particular case is general enough that we can just add it to WindowDesc and WindowBuilder directly, in which case you can ignore my comment above, although I still think something like this is something we will want eventually.

Here are the related options in Electron for reference: https://electronjs.org/docs/api/frameless-window

winit has some methods on WindowBuilder, including with_decorations() which seem to work for all platforms, so maybe the methods WindowBuilder has should not be part of a WindowDescExt, but instead be available in WindowDesc directly. Then there are additional methods on WindowBuilderExtUnix which only work for Unix platforms and would probably fit in a platform specific extension trait.
Maybe you would like to mirror that in druid as well? I would be glad to implement something which would add support to druid for the attributes available in WindowBuilder (with_*() methods) if you decide what needs to be done and give some indication or outline the API.

Yea, I think this would be welcome; things that are missing in our current API are not design choices, just things we haven't gotten around to yet.

Has any work been done on this? I am not quite sure where to start on it, but I am going to be looking into it during my free time. Currently I have been looking at how winit handles this as an example.

I do not believe anyone is actively working on this, but I could be wrong.
I'm not sure if winit will be a great example for us, but I haven't looked too closely; it's certainly possible. :)

In Windows 10 this behavior is closely related to composited Window. For instance a non-rectangular windows like tooltips, and or other popups with custom shadows or effects etc.
I toyed around the Window settings a lot, and figured the perfect combination few years back in my C++ experiments. To get semi-transparency effects with no borders and non-rectangular windows one needs WS_EX_COMPOSITED with D2D drawing surfaces like in Druid.

I have now a fork, where I experiment this:

My intention is to add a following API:
let window = WindowDesc::new(example)
        .show_titlebar(false) // <-- THIS ALREADY EXISTS
        .window_size((823., 823.))
        .transparent_bg(true) // <-- NEW ITEM HERE for transparency
        .resizable(true)
        .title(LocalizedString::new("Fancy Colors"));

I will continue about this in the Zulip.


API not working anymore? [Unauthenticated calls work now, but not auth]

Haven't changed anything, but recently not able to log in anymore.
When posting to https://api.whatnot.com/api/login I am now getting [400 Bad Request], even though I've verified the email/pwd multiple times.
Anybody else seeing this?

hey could you please provide the full error? thanks :)

Sorry for the late reply, I was able to debug a bit more and have come to this minimal code:
import requests
device_id = "aea87c97-aaba-4426-ae44-d3db92e188d9"
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"

url = "https://api.whatnot.com/api/login"

response = requests.post(url, json={"username": username, "password": password, "device_id": device_id}, headers={"User-Agent": user_agent})
print(response.status_code)
print(response.json())

Which prints:
400
{'msg': 'Please upgrade your app to the latest version'}

I was also able to manually obtain the access token (by looking in the browser), and when I try to run usual commands, I get:
404, message='Not Found', url=URL('https://api.whatnot.com/graphql')

Is it possible they modified their API? Does the current library still work for you or others?
Thanks, I hope I can figure it out, it's been super useful.

They modified their API to require some additional headers as well as adding an extra slash after the URL... but i fixed it in latest commit :)  #f6ef128
Still haven't fixed the login yet but i'm working on it rn :)

Hey @wxllow , I appreciate your help.
I saw that you worked on the project recently, but commented the logging in part.
Is there a way to log in non-programmatically: logging in on the browser, and somehow saving the session and using it in the app?
I appreciate that you might not have time to work on this, so no worries. I'd be happy to help, but I am unsure on a how to "reverse engineer" their API and its requirements...

What I do to reverse engineer their API is basically going on the website and using the Network tab in Chrome's developer tools to analyze the requests that the site makes to their APIs


license tweak

Would you mind changing the text of your license slightly?
Technically, your license has two "clause 3"s, which doesn't match the official BSD-3-clause license text.
Can you combine those clauses into one like so?

Neither the names of Google Inc., ThePiachu nor the names of their
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

No longer important.


Add the mc-sgx-tstdc crate

Add Mutex primitive

Current dependencies on/for this PR:

main

PR #255

PR #256   👈

This comment was auto-generated by Graphite.

Codecov Report

Merging #256 (001eb82) into main (6f8b055) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #256   +/-   ##
=======================================
  Coverage   90.27%   90.27%
=======================================
  Files          45       45
  Lines        3950     3950
=======================================
  Hits         3566     3566
  Misses        384      384

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

⏳ This pull request is set to merge as part of a Graphite merge job
Stack job ID: oVCQ2kHpI2qOxWNUHTpX.
See details on graphite.dev


[id-ID] Add Indonesian translation

Translation complete.

Hi! Thanks a lot for working on these translations 🤩
Could you tell me how you'd like to be mentioned in the contributors list file? I can put a link to your social, your discord ID ...
Or if you don't want to be mentioned it's also fine of course
I can also give you the @Translator role on our discord if you want

You're very welcome, I'm glad to help. You can put my Discord ID (FuutonShinra#4803) in the file, and I will take the translator role with my pleasure, thank you.


Need to be able to enter filtering info when registering using a registry client

While registering i need to be able to enter filtering fields like:
schema_url
country_code
format
category
topic
description

PR:
https://github.com/threefoldtech/jumpscaleX_core/pull/244
https://github.com/threefoldtech/jumpscaleX_threebot/pull/256

lets just close and make sure is in all to [development_actorsimprovement]

verified

but here as shown on screenshot the doc-string is not updated with all parameters and @RafyAmgadBenjamin  will update it.


AssertionError: The maximum crop class value must be given

@jgrss  Thanks for your help with this. I have tried tons of variants of training data to resolve this issue
I have my training data in the correct locations

I have tried every variant of handling the "class" field I could think of ( I have quite a few polygons with 0 fields). I have created empty poly and non-empty poly with class=0.  So I think I can conclude that is not the problem. Maybe there's something simple I am missing?
cultionet create --project-path /home/ubuntu/training_data --grid-size 100 100 --config-file ./config.yml
Traceback (most recent call last):
  File "/opt/conda/envs/pytorch/bin/cultionet", line 8, in <module>
    sys.exit(main())
  File "/opt/conda/envs/pytorch/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 1275, in main
    create_datasets(args)
  File "/opt/conda/envs/pytorch/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 712, in create_datasets
    assert isinstance(args.max_crop_class, int), \
AssertionError: The maximum crop class value must be given.

Also tried:
cultionet create --project-path /home/ubuntu/training_data --grid-size 100 100 --config-file ./config.yml --max_crop_class 1
usage: cultionet [-h] {create,create-predict,skfoldcv,train,maskrcnn,predict,version} ...
cultionet: error: unrecognized arguments: --max_crop_class 1

Try --max-crop-class 1. The CLI arguments are character sensitive.  I typed --max_crop_class sorry..

@jgrss it is now asking for the region id file
cultionet create --project-path /home/ubuntu/training_data --grid-size 100 100 --config-file /home/ubuntu/cultionet/scripts/config.yml  --max-crop-class 1 --feature-pattern {region}/{image_vi} --image-date-format %Y%j
Traceback (most recent call last):
  File "/opt/conda/envs/pytorch/bin/cultionet", line 8, in <module>
    sys.exit(main())
  File "/opt/conda/envs/pytorch/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 1394, in main
    create_datasets(args)
  File "/opt/conda/envs/pytorch/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 709, in create_datasets
    region_as_file = config["region_id_file"] is not None
KeyError: 'region_id_file'

I noticed that you added something to one of the config file examples. when I add this to my config
# The region file path
region_id_file: !!null

I get the following:
cultionet create --project-path /home/ubuntu/training_data --grid-size 100 100 --config-file /home/ubuntu/cultionet/scripts/config.yml  --max-crop-class 1 --image-date-format %Y%j
Traceback (most recent call last):
  File "/opt/conda/envs/pytorch/bin/cultionet", line 8, in <module>
    sys.exit(main())
  File "/opt/conda/envs/pytorch/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 1394, in main
    create_datasets(args)
  File "/opt/conda/envs/pytorch/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 734, in create_datasets
    range(config["regions"][0], config["regions"][1] + 1)
TypeError: can only concatenate str (not "int") to str

I can't find any reference to what this file should be, I tried pointing it to the imagery path but that wasn't it.  Any thoughts?  Maybe you could share your config?

Ahh, you can either use regions or region_id_file in the config.yml file. E.g., you could do either
regions: [1, 10]
region_id_file: !!null

to process regions 1 through 10, or
regions: [1, 3, 5]
region_id_file: !!null

to process regions 1, 3, and 5.
If, however, your names are strings, you might want to use region_id_file like
regions: !!null
region_id_file: /path/to/an/id/file.csv

where /path/to/an/id/file.csv might look like
,id
0,region_a
1,region_b
...
n,region_n

In the file, the column id is 'id', the first column is a GeoDataFrame index and the second column is the region id.
Note that the creation of a train data .pt file will be attempted for every region/year combination. So in config.yml if you have
years:
  - 2020
  - 2021
  - 2022

The creation step will try to create region_a + 2020, region_a + 2021, and region_a + 2022. If training files do not exist for some years, it will just skip it.

Gotcha in the config.yml in the scripts folder it shows:
# The regions to process (start, end)
regions:
  - 161
  - 171

That is not working

Looks like the region id file might have an issue. I added the correct path (certain of that) in the config:
region_id_file: /home/ubuntu/ym_field_boundaries/regions.csv
Where the contents of  regions.csv are:
,id
0,0000000000-0000016384
1,0000016384-0000000000
2,0000016384-0000016384

I am getting:
File not exist: : 6it [00:00, 2784.45it/s]
Renaming my image folders 1,2,3 resolved the issue and just using
regions:
   - 1
   - 2
   - 3

Although now I am finally hitting the wall of an incorrect install... unrelated to this issue.

Regarding File not exist: : 6it [00:00, 2784.45it/s], I think there is a small progress bar bug in cultionet. I don't think there was anything wrong with your id format (e.g., 000000000-0000016384). The progress bar is broken and prints out different logs. If it says 'File not exist' then that could be fine. Remember, for each region it will check if there is a region/year combination for every year.
You can check <your project path>/data/train/processed to see if outputs are being created.

Data <your project path>/data/train/processed is empty.  Maybe this is a projections issue? My images are in 4326 and polys in UTM.

Just reprojected the polys and grids to match the crs of the images. Same issue. Empty /train/processed.

@mmann1123 how do you have your image time series setup? I think you have one image to cover your study area, correct? What you should have is something like:
time_series_vars/
    001458/
        evi/
    004604/
        evi/

user_train/
    001458_grid_2022.gpkg
    001458_poly_2022.gpkg
    004604_grid_2022.gpkg
    004604_poly_2022.gpkg

but I think you have:
time_series_vars/
    evi/

You could have the same, large image for each time_series_vars/ sub-region, but that would be wasted disk space. Therefore, I would clip your time series variables to each region.
Also, if you want to work on a branch, #64 has a fix for the data progress bar.

@jgrss I tried to recreate exactly what you did
/home/ubuntu/training_data

/home/ubuntu/cultionet/scripts/config.yml
image_vis:
  - evi

# The regions to process (start, end)
regions:
  - 000001
  - 000002
  - 000003

# The region file path
region_id_file: #/home/ubuntu/ym_field_boundaries/regions.csv

years:
  - 2022
  - 2023

lc_path: !!null

and cultionet create --project-path /home/ubuntu/training_data --grid-size 100 100 --config-file /home/ubuntu/cultionet/scripts/config.yml  --max-crop-class 1 --image-date-format %Y%j
Still getting File not exist: : 4it [00:00, 3501.09it/s] and nothing in project/data/train/processed/
I don't know how to debug things from the command line. Is there a python command I can run to execute the same operation??

Ahh, I have the vector files extension hardcoded as .gpkg. I'll put in an issue to allow other formats, such as .geojson.

Ha well on to the next error, and nothing created in the data/train/processed folder unfortunately.
No directory: : 8it [00:00, 51.58it/s]

@jgrss  Well, now I'm 90% sure I have the data set up correctly, but still getting the No directory or File not exist with nothing generated in data/train/processed
I have an example dataset and config here.  Hoping you could take a look:
link to data
I promise I will go through your docs and make everything clear once I get this working!

@jgrss  Well, now I'm 90% sure I have the data set up correctly, but still getting the No directory or File not exist with nothing generated in data/train/processed
I have an example dataset and config here.  Hoping you could take a look:
link to data
I promise I will go through your docs and make everything clear once I get this working!

E   RuntimeError: Parameterization error

rasterio/_warp.pyx:1087: RuntimeError

Thinking this might be helpful.  So it looks like its just not finding the files to open?

I haven't looked at the new data link yet. Did you convert your GeoJSONs to GPKGs?

I kept playing and found that it was generating the image list properly, so that's not it.

Yes they are all geopackages and I think in the correct format.... @jgrss

@mmann1123 There are a few things going on.

I symlinked your data to the same path as the project directory.

ln -s training_data/time_series_vars time_series_vars
ln -s training_data/user_train user_train

Two arguments are missing from the command line (--feature-pattern and --start-date and --end-date. The default path layout does not match what you have setup, so the --feature-pattern tells cultionet where to look for the time series data. The default start and end date assumes a Northern hemisphere season. There is a check for Southern hemisphere images that catches if you leave the start/end dates as 1 January. I do not know the typical agricultural season(s) in your study area so I just used a generic 1 July cycle.  The year should be the end year of the time series. E.g., I had to rename 000002_grid_2022.gpkg and 000002_poly_2022.gpkg to 000002_grid_2023.gpkg and 000002_poly_2023.gpkg, respectively.

There is a missing column in your grid files. The grid files should have a 'region' or 'grid' column that specifies the unique grid id. This is probably a failure by me to explain this in the README. You can use this branch to have the column added automatically from the file name.

With those changes the .pt files were generated for grid 2.

Ahh, good one. Thanks for pointing that out.

@jgrss  Ok some progress forward.
It looks like is choking when it runs into an image shard with all zeros in it (not sure how I generated it, but its failing on that).
But happy to say its generating .pt files. I try deleting the offending image.
ultionet create \
        --res 0.0000898315284119(pytorch_backup_april_11) ubuntu@ip-10-0-2-97:~/training_data$
5214829 \
        --project-path . \
        --con(pytorch_backup_april_11) ubuntu@ip-10-0-2-97:~/training_data$ cultionet create \
>         --res 0.00008983152841195214829 \
>         --project-path . \
>         --config-file config.yml \
>         --crop-column class \
>         --grid-size 99 99 \
>         --max-crop-class 1 \
>         --image-date-format %Y%j \
>         --feature-pattern {region}/{image_vi} \
>         --start-date 05-01 \
>         --end-date 05-01

000004_2022 stored.:  12%|████████████████▉                                                                                | 6/48 [00:02<00:16,  2.57it/s]
Traceback (most recent call last):
  File "/opt/conda/envs/pytorch_backup_april_11/bin/cultionet", line 8, in <module>
    sys.exit(main())
  File "/opt/conda/envs/pytorch_backup_april_11/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 1401, in main
    create_datasets(args)
  File "/opt/conda/envs/pytorch_backup_april_11/lib/python3.9/site-packages/cultionet/scripts/cultionet.py", line 873, in create_datasets
    pbar = create_dataset(
  File "/opt/conda/envs/pytorch_backup_april_11/lib/python3.9/site-packages/cultionet/data/create.py", line 907, in create_dataset
    aug_data = aug_method(ldata, aug_args=augmenters.aug_args)
  File "/opt/conda/envs/pytorch_backup_april_11/lib/python3.9/site-packages/cultionet/augment/augmenters.py", line 49, in __call__
    cdata = self.forward(cdata, ldata, aug_args)
  File "/opt/conda/envs/pytorch_backup_april_11/lib/python3.9/site-packages/cultionet/augment/augmenters.py", line 148, in forward
    x = augment_time(
  File "/opt/conda/envs/pytorch_backup_april_11/lib/python3.9/site-packages/cultionet/augment/augmenter_utils.py", line 111, in augment_time
    np.random.choice(
  File "mtrand.pyx", line 934, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken

@jgrss  It generated pt files from 000002 to 000005.  So I deleted region 000006 because it only had zero in the image.
Tried rerunning but getting same error as above (00007) looks fine, so not sure what's happening.

That's related to the temporal resolution. The coarsest that I have tried recently is monthly. Are you using seasonal data?

Okay, I should have a protection in there for the peaks transformation. For now, you should just exclude that augmentation.


Add vswitchd status monitor and flow replay logic

UT TODO

Codecov Report

Merging #217 (38ba2b7) into main (813b338) will decrease coverage by 1.30%.
The diff coverage is 23.17%.

@@            Coverage Diff             @@
##             main     #217      +/-   ##
==========================================
- Coverage   65.19%   63.88%   -1.31%
==========================================
  Files          39       39
  Lines        6125     6272     +147
==========================================
+ Hits         3993     4007      +14
- Misses       1785     1912     +127
- Partials      347      353       +6

Impacted Files
Coverage Δ

pkg/agent/datapath/multiBridgeDatapath.go
48.34% <23.17%> (-10.77%)
:arrow_down:

pkg/controller/policy/cache/rule.go
88.96% <0.00%> (-8.97%)
:arrow_down:

pkg/controller/policy/policy_controller.go
74.32% <0.00%> (-1.68%)
:arrow_down:

pkg/controller/group/group_controller.go
72.59% <0.00%> (-1.30%)
:arrow_down:

pkg/monitor/agent.go
71.71% <0.00%> (-0.67%)
:arrow_down:

plugin/tower/pkg/controller/endpoint/controller.go
80.76% <0.00%> (+1.15%)
:arrow_up:

plugin/tower/pkg/controller/policy/controller.go
81.81% <0.00%> (+1.48%)
:arrow_up:


daysSinceOnsetOfSymptoms is not set in downloaded data

details will be provided
OTC E2E EFGS

EFGS Environment:
https://ecs-80-158-6-221.reverse.open-telekom-cloud.com/efgs/
Example:
date 2020-10-09 and batchTag 20201009-27
Comments:
300 of 4000 keys in the batch cant be processed because: " Days since onset of symptoms is missing"

efgs Log files for analysis.
tomcat3-efgs.log
tomcat2-efgs.log
tomcat1-efgs.log

The first impression so far, the upload and download could be traced in the log file. No error message in the EFGS process. Can someone provide us the upload key data?

the data looks ok
select payload_days_since_onset_of_symptoms,count(*) from diagnosiskey where batch_tag='20201009-27' group by 1;
+--------------------------------------+----------+
| payload_days_since_onset_of_symptoms | count(*) |
+--------------------------------------+----------+
| /j1IwNbRM1hoYq4ZotlakQ==             |      320 |
| 31Q8ZS1b0eKzi0cunTb9pg==             |      300 |
| 60jcqXD2NRStvvhNO/LCtA==             |      300 |
| 6n90uqjhky4GeJhdGrckyA==             |      300 |
| HetGpgrRfce2KOcMr7fMRw==             |      320 |
| hV7ulwnqKonxsMfl/Zw7iQ==             |      300 |
| JXr0kfKaNFzulHZuZl0j9Q==             |      312 |
| kxy4wI6PoGY6ThmVnYlqGQ==             |      290 |
| MxBZy1S0YFb6rcmDaPU+zw==             |      320 |
| SQeJ/bfB/e6EulF/uhgLBg==             |      320 |
| Tyhnn+ARl71P9FcfKetokA==             |      320 |
| Xc5Ju04GzKJUIIXyErPXwg==             |      318 |
| Xhrm5woYEwFbM08CUI85ug==             |      280 |
+--------------------------------------+----------+

Decoding the 300er we cant decrypt one of the group
...
31Q8ZS1b0eKzi0cunTb9pg==  MA==  No printable characters found
60jcqXD2NRStvvhNO/LCtA==  Mg==  2
6n90uqjhky4GeJhdGrckyA==  Mw==  3
hV7ulwnqKonxsMfl/Zw7iQ==  MQ==  1
...

31Q8ZS1b0eKzi0cunTb9pg== MA== No printable characters found

does not look like Int ...

The related uploader batch tag, related to the broken int
+--------------------------------+
| uploader_information_batch_tag |
+--------------------------------+
| 2020-10-9-4CGNDA==-0 |
+--------------------------------+

The assumtion that we have corrupted data, is not longer standing
31Q8ZS1b0eKzi0cunTb9pg== MA== No printable characters found
Decodes with anoter Base64 Decoder to 0

I imported the database dumb locally (😳 WOW 110637 Keys...)
I tested the download for (doc batch=20201009-1, uploaderbatch=2020-10-9-4CGNDA==-0)
expectet 4000 Keys - DB check by:
select batch_tag, uploader_information_batch_tag, payload_days_since_onset_of_symptoms, count(*) from fg.diagnosiskey where uploader_information_batch_tag='2020-10-9-4CGNDA==-0' group by 3;

batch_tag
uploader_information_batch_tag
payload_days_since_onset_of_symptoms
count(*)

20201009-1
2020-10-9-4CGNDA==-0
/j1IwNbRM1hoYq4ZotlakQ==
320

20201009-1
2020-10-9-4CGNDA==-0
31Q8ZS1b0eKzi0cunTb9pg==
300

20201009-1
2020-10-9-4CGNDA==-0
60jcqXD2NRStvvhNO/LCtA==
300

20201009-1
2020-10-9-4CGNDA==-0
6n90uqjhky4GeJhdGrckyA==
300

20201009-1
2020-10-9-4CGNDA==-0
HetGpgrRfce2KOcMr7fMRw==
300

20201009-1
2020-10-9-4CGNDA==-0
hV7ulwnqKonxsMfl/Zw7iQ==
300

20201009-1
2020-10-9-4CGNDA==-0
JXr0kfKaNFzulHZuZl0j9Q==
334

20201009-1
2020-10-9-4CGNDA==-0
kxy4wI6PoGY6ThmVnYlqGQ==
320

20201009-1
2020-10-9-4CGNDA==-0
MxBZy1S0YFb6rcmDaPU+zw==
306

20201009-1
2020-10-9-4CGNDA==-0
SQeJ/bfB/e6EulF/uhgLBg==
300

20201009-1
2020-10-9-4CGNDA==-0
Tyhnn+ARl71P9FcfKetokA==
300

20201009-1
2020-10-9-4CGNDA==-0
Xc5Ju04GzKJUIIXyErPXwg==
300

20201009-1
2020-10-9-4CGNDA==-0
Xhrm5woYEwFbM08CUI85ug==
320

the download output of my testcase
      .andExpect(mvcResult -> {
        EfgsProto.DiagnosisKeyBatch response = EfgsProto.DiagnosisKeyBatch.parseFrom(
          mvcResult.getResponse().getContentAsByteArray());

        Assert.assertEquals(4000, response.getKeysCount());
        MutableInt cnt = new MutableInt(0);
        response.getKeysList().forEach(key -> {
          cnt.increment();
          System.out.println("Key:" + cnt);
          System.out.println("DaysSinceOnsetOfSymptoms:" + key.getDaysSinceOnsetOfSymptoms());
        });
      });

can be viewed here:
downloadeTestKeys.txt
I couldn't find any missing 'payload_days_since_onset_of_symptoms'

I took another look at the decoding and we don't seem to have a problem there.
I could decode all payload_days_since_onset_of_symptoms
Debug.xlsx
Also the amount of keys was consistent

short summary by Jörg:
short Update from today after a session between SAP, Ops and TSI team:
Issue is not fixed yet.

-	Assumption with corrupted entries in EFGS database was not valid
-	After some further investigation on Friday the problem only exist for daysSinceOnsetOfSymptoms with value = 0
-	EFGS extended the log entries
-	Rerun the test with the result that EFGS delivers all entries including value = 0
-	In CWA server possible issue code line was found
-	Could not fixed instantly – Evgenii gives an update today or we continue on Monday morning

Hello colleagues,
Info from Skrebtcov, Evgenii:
the test was successful: after default value was changed to ‘0’, all batches with DSOS = 0 were processed and the issue doesn’t appear anymore.
I’ll proceed with the proper change request for the new image.

We will continue on Monday to understand why
federationDiagnosisKey.hasDaysSinceOnsetOfSymptoms()
resolves to ‘false’, for DSOS = 0.

as per last comment issue closed


Which tokenizer is used for preprocessing the data?

Very great work and the outputs of baselines help me a lot.
I wonder how you preprocessed the data? Especially, which tokenizer is used?

The tokenizer  is nltk.word_tokenize

Thanks for your quick response !


Ss/ui fixes

Despite some outstanding questions about VIPs, I think this is ready for review.

Thanks for your review, @leemunroe !


Add Facebook Sharing Button for Enhanced Social Sharing

Description
I propose the addition of a Facebook sharing button to the "reduced.to" website to enhance the user experience and increase social sharing capabilities.
Screenshots
No response
Additional information
No response

please assign this issue to me

Hey, that's a good idea.
I think that adding Facebook / other social networks will make the ui a bit complex.
We will pass it for now.


Feature Request: Order in which a tree node was picked (Level)

As a POE newbie, I want to see which level a node was taken at in the progression of a build as this gives me a rough idea of the build order for nodes and avoids costly mistakes.

I don't think that would work well. PoB can't guess the order, so the build creator would have to "record" himself selecting the points for the whole tree, and that's getting complicated. That would be even worse for scion, which usually has to respec points because they can start from different classes later on.
But PoB allows any given build to have multiple trees (you can switch between them on the bottom left corner of the tree), so when people are making PoBs for beginners, they usually include many leveling trees (one at 20 points, one at 40 etc). That should be enough to tell you how to level.


I2C does not allow for multiple devices on the same bus

As a user, I need to have multiple I2C devices on the same bus.
In the function jetgpio.c / i2cOpen( )
This code (around line 1969) prevents more than one device on the same bus:
if (i2cInfo[i2cBus].state == I2C_CLOSED) {
slot = i2cBus;
i2cInfo[slot].state = I2C_RESERVED;
}
else { printf("i2c bus already open\n");
return -4;
}

You are absolutely right, I am going to make changes to my lib so all devices on the i2c bus can be addressed

Sorted, from current version (0.95) on, the I2C slave address has been removed from the i2cOpen() function and moved to the: i2cWriteByteData() & i2cReadByteData() functions so several devices can be reached on the same bus.

Closing


Enabling use of TLS

What
Where/Who

JIRA Issue
LP-10920

People Involved
@colleague1, @colleague2

Background
Implementation
Testing steps
Is this change backwards-compatible?

Why was this commented in first place? Any side effects? Is this in productiton the commented.

It was added like that.


iOS: timeline refresh button doesn't work; settings don't get saved

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Hello, @duxswhatdux,
I don't have an iOS device to debug this, so marking this as help wanted.

Seems like a duplicate of #519


Feature: Don't penalize Go projects for not "packaging" to a registry

Go projects don't need to upload their packages, so they should not be penalized.

Hey! I wanted to open a new PR to solve the packaging for Go projects. The proposal is to use deps.dev API to get the repository related packages. If there are related Go packages, then it's a 10 for Packaging. The logic can be extended for other ecosystems too.
For example, https://github.com/bits-and-blooms/bitset, is a Go package https://pkg.go.dev/github.com/bits-and-blooms/bitset. deps.dev can identify for the repo, the related Go package https://deps.dev/project/github/bits-and-blooms%2Fbitset. We could also use pkg.go.dev API but I understand deps.dev API would be more flexible to solve NPM, CARGO, MAVEN, PYPI, NUGET packages too.
Kind of related to https://github.com/ossf/scorecard/issues/2494. Given XYZ packages in ABC ecossystems identified by deps.dev, we could output for the users the ecosystems that the repo publishes to.

Sounds like this should work! deps.dev is a single API that works for all packages, so +1 from me to use it instead of registry APIs if we can.

Hey! I wanted to open a new PR to solve the packaging for Go projects. The proposal is to use deps.dev API to get the repository related packages.

What's the need for any API? I thought all Go projects had this property?


question Generation

How to generation questions from given text, does the code works on cpu?

Hey, @mooreniemi @DivyaWadehra I'm closing this due to inactivity. Please re-open it if you still have questions.


Halt ingestion when WordPress Photo Directory reaches last page

Fixes

Fixes #853 by @AetherUnbound
Description

The WordPress Photo Directory DAG was failing to halt ingestion gracefully when it reached the end of its data. Instead, it raises a 400 when attempting to access a page number beyond the total page count. This is especially bad if skip_ingestion_errors is enabled, because it will retry infinitely.
To fix this we need to make a HEAD request to get the total page count. This information is only available in the headers and not response_json, so we are not able to fetch it in get_batch_data. This PR makes this additional request on the first batch, and then halts ingestion during get_should_continue when we reach the final page.
Testing Instructions

At the time this PR was written, this DAG detects 53 pages of results. To test it locally, I recommend editing the initial current_page variable in the __init__ method to 52, so the DAG will run quickly and hit the last page:
def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        <...>

        self.current_page = 52

After making the edit, run the DAG and verify that it stops gracefully when the last page has been reached. You should be able to see a log that looks like:
The final page of data has been processed. Halting ingestion.

Checklist

[ ] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

I have at least one idea that wouldn't require any refactors of other DAGs, but would be a little obscure: subclass dict and add a headers attribute. Then map the JSON response into the dict subclass and add the headers to the headers attribute.

I was wondering if you had considered any alternative solutions to this, perhaps ones that would add the ability to get the headers to the base class?

We definitely can, but I wasn't aware of any other cases where we needed it (although I could be wrong). I'd say I have a slight preference to refactoring more fully if/when another use case arises... although the dict subclassing idea is pretty slick @sarayourfriend 🤩

I'd say I have a slight preference to refactoring more fully if/when another use case arises

I like this as well :rocket:


benchmark GPs against sklearn, gpy, gpflow, and gpml

This entrance task is about doing benchmarks against sklearn v0.18, gpy, gpflow, and gpml in terms of speed, memory usage, and accuracy.
Some tasks:

Gaussian process (GP) regression
GP binary classification using Logistic likelihood

Note that for GP binary classification, there are many implemented inference algorithms (eg, EP, Laplace, and KL) in Shogun.
Hint:

For GP binary classification,sklearn (v0.18dev0) only has the Laplace implementation.
There is no sparse GP implementation in sklearn (v0.18dev0)

This task is an entrance task of the GP project

@yorkerlin sounds great! as there's already emerging some benchmarks on PCA, shouldn't we try to put this into one framework? i.e. keep the code somewhere and have the possibility to update the benchmarking results with the updated libraries?

@vigsterkr
Yes, cool. We can put this under one framework.

@yorkerlin we should use/extend this framework:
https://github.com/zoq/benchmarks
i can setup a buildbot to generate the output...
you can see some of the results here:
http://www.mlpack.org/benchmark.html
the shogun that was used was version 3.2.0...

I'm interested in getting started to work on this one. @yorkerlin, do you agree that the framework at https://github.com/zoq/benchmarks should be used? I could initially try testing GP regression exact inference, just  to get a hang of what's needed to setup the benchmarks.

Yes. Let's do benchmarks against sklearn, gpy, and GPflow under the
framework.
On Tuesday, March 8, 2016, Juan Camilo Gamboa Higuera <
<EMAIL_ADDRESS>wrote:

I'm interested in getting started to work on this one. @yorkerlin
https://github.com/yorkerlin, do you agree that the framework at
https://github.com/zoq/benchmarks should be used? I could initially try
testing GP regression exact inference, just to get a hang of what's needed
to setup the benchmarks.
—
Reply to this email directly or view it on GitHub
https://github.com/shogun-toolbox/shogun/issues/3054#issuecomment-194011100
.

--
best,
wu lin

@juancamilog I am super curious on the results of this, are there any already?

If you wrote some Python scripts for the benchmarking scripts feel free to submit them upstream and we can include it in the benchmarks repository. :)

Note

@karlnapf
I am working on setting an optimized python tool stack for benchmarks.
I will use openBLAS, numba, and joblib if possible.
I wonder whether our implementation can beat the optimized python implementation or not.

@karlnapf @vigsterkr @lisitsyn
It seems llvm compiler is better than gcc in terms of code optimization.
Do you think whether we should choose a right compiler?

@yorkerlin dont you think it might be more clever to put your ideas into the mlpack benchmarks?
For the GPs, if Shogun is faster than the gpflow and gpy, or even just scikit learn, that is the best start.
I think we will stay with gcc for now ... ;)

@karlnapf
I will focus on sklearn now.
Too many things to do this week. :(

@karlnapf
Shogun's GP computes gradients wrt hyper-parameters for gradient-based model selection by default.
I think sklearn does not compute these gradients by default.
https://github.com/scikit-learn/scikit-learn/blob/56d625f/sklearn/gaussian_process/gpc.py#L664

We should compare a benchmark where we also learn the hyper-parameters using ML2.

what is more, these gradients are for logistic likelihood only.
The third derivative is for logistic likelihood only.
https://github.com/scikit-learn/scikit-learn/blob/56d625f/sklearn/gaussian_process/gpc.py#L353
Shogun's GP can use 'student's T', 'probit' and 'logistic' likelihood.

@karlnapf
For gradient-based model selection, Shogun's GP uses the Method of Moving Asymptotes method in NLOPT by default.
Sklearn uses fmin_l_bfgs_b for hyper-parameter searching by default.

@karlnapf
some results based on the usps3v5 dataset
shogun:
using SingleLaplacianInferenceMethodWithLBFGS
cost 0.12 seconds at training
the negative_log_marginal_likelihood is 537.3986
cost 0.37 seconds at prediction

using SingleLaplacianInferenceMethod
cost 0.16 seconds at training
the negative_log_marginal_likelihood is 537.3986
cost 0.40 seconds at prediction

sklearn:
the negative_log_marginal_likelihood is-537.252898937
cost 0.75 seconds at training
cost 0.40 seconds at prediction
cost 0.12 seconds at prediction

I will check the negative_log_marginal_likelihood result from gpml.
There may be  some numerical issue in shogun or sklearn.

For prediction, Shogun use MC samples IIRC.
MC samples may have to do with why shogun is slower than sklearn in prediction.

I will post the script soon.

Great, looking forward to see this.
Such complicated frameworks as GPs might really allow Shogun to play its muscles ...

@Ialong might be interested in this too

@karlnapf yep, definitely interested. Not sure I'll be able to get properly started on this before the deadline tomorrow but could do it over the weekend.
@yorkerlin @karlnapf should I use mlpack then?

@karlnapf
It seems GPML cannot run at octave 3.8.2.
I will pose the results based on Matlab 2015b.

@karlnapf
the script:
http://nbviewer.jupyter.org/gist/yorkerlin/b742cfe1669170ec0a6a
the data:
https://gist.github.com/yorkerlin/ee9d99d573dd0dc7d105

It would be good to add such plots to the benchmark system by mlpack. @yorkerlin don't you think it can be made work with octave?

Why is sklearn 10 times slower in training but faster in testing?

@karlnapf
in sklearn,
predict function: MAP estimator is used
predict_proba function: deterministic integration is used. (https://github.com/scikit-learn/scikit-learn/blob/e5c366f/sklearn/gaussian_process/gpc.py#L290)
in shogun,
Monte Carlo method is used as suggested in GPML

Good points. Make sure the benchmarks give the same results. It is meaningless to compare things that produce different results. Also if possible the same algorithm should be used. BUT, at the end of the day, what matter is "user wants to do gp regression with exact inference, which toolbox is fastest"

About vectorization: this is done via using linalg
About multithread: Yes, definitely this should be done, using openmp if possible

@karlnapf
This is for classification :)
If we have a lot of outliers, Students' t (approximate inference) should be better than Gaussian (exact inference) likelihood.
For regression (exact inference), I leave it to @Ialong

@karlnapf
Another case is Cox likelihood for survival analysis.

@karlnapf
For beginners or black-box users, the statement is true.
For advanced users, they should consider speed, accuracy, and interpretability.
what matter is "user wants to do gp regression with exact inference, which toolbox is fastest"
For simple regression, I agree with the statement.
For other cases, it is not  always true.
For example, I will not use sklearn,  if I care about p-values and adjusted R^2.

@karlnapf
check out some result about GPy at  http://nbviewer.jupyter.org/gist/yorkerlin/b742cfe1669170ec0a6a

Cool that Shogun is faster! :) Some things to do

we need to put this systematically into the mlpack benchmarks .. ipython notebooks get lost so we forget about the results. Then we can collect these results and publish at some point
you are right that use cases can differ and should be carefully investigated on their own
larger problems would be interesting, where training takes a few more seconds

@karlnapf
take a look at this http://nbviewer.jupyter.org/gist/yorkerlin/b742cfe1669170ec0a6a
FITC and Var_DTC are included.

To summary,
Shogun's GP is faster than sklearn, GPML, and GPy for most of methods.
However, for Var_DTC, GPy has a parallel implementation.
What is more, Var_DTC in GPy is as fast  as in Shogun. We should improve the Var_DTC method in Shogun.

@yorkerlin AWESOME++
we should convert this to a http://github.com/zoq/benchmarks/ task, that way we could re-test this anytime we want :)

Really nice!
I agree on integrating this into the benchmark repo. @ialong might be interested

I am definitely interested, perhaps priority should be on #3043 for me now. I will try to get to benchmarking as well

Yeah maybe do that one. Or both :) The benchmarking should be a simple matter of more or less copying @yorkerlin 's code to the benchmark system. There were lots of patches for that recently, so it is a no-brainer

@karlnapf
take a look at this
I borrow some codes from @youssef-emad
https://github.com/yorkerlin/plots-for-GP/blob/master/Untitled1.ipynb

Nice notebook.
But my question again is: Why is this useful in particular for GPs.
I would much rather just include these plots in the existing notebook, for the interesting cases.

My point is

We should have a notebook about "black box" classifiers. I thinks we
have it now.
We have have a notebook about kernels for advanced users since kernel is
one of Shogun's key features. automatical kernel selection will be another
option.
We should have a notebook about inference methods for GP if the default
method is too slow. Users may want to know how to choose a right inference
method for large scale GP.

On Fri, Apr 1, 2016, 05:21 Heiko Strathmann<EMAIL_ADDRESS>wrote:

Nice notebook.
But my question again is: Why is this useful in particular for GPs.
I would much rather just include these plots in the existing notebook, for
the interesting cases.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/shogun-toolbox/shogun/issues/3054#issuecomment-204324995

I see.
Feel free to create issues for 2/3 but name (or rename existing) them properly, and describe exactly what you want to do and what the focus should be. Can all be done as part of GSoC, but needs proper specifications ....


Update/fix the doc

Hi. According to what the readme says, and the various available samples, what's the correct way to upload a file alongside some data?
I see two different versions, the first (from the readme):
data: {key: file, otherInfo: uploadInfo}

with uploadInfo being an object, and (from the Spring sample):
fields: {'username': 'zouroto'}, // additional data to send
file: file

Thanks.

Update: got it working with:
file: $scope....
date: { some keys/values }

Might be a good idea to update that doc =)

You better use
data: {file: $scope...., some keys/values}
file option might become deprecated at some point and is there just for the backward compatibility.

Ok! thanks.


[SPARK-27163][PYTHON] Cleanup and consolidate Pandas UDF functionality

What changes were proposed in this pull request?
This change is a cleanup and consolidation of 3 areas related to Pandas UDFs:

ArrowStreamPandasSerializer now inherits from ArrowStreamSerializer and uses the base class dump_stream, load_stream to create Arrow reader/writer and send Arrow record batches.  ArrowStreamPandasSerializer makes the conversions to/from Pandas and converts to Arrow record batch iterators. This change removed duplicated creation of Arrow readers/writers.

createDataFrame with Arrow now uses ArrowStreamPandasSerializer instead of doing its own conversions from Pandas to Arrow and sending record batches through ArrowStreamSerializer.

Grouped Map UDFs now reuse existing logic in ArrowStreamPandasSerializer to send Pandas DataFrame results as a StructType instead of separating each column from the DataFrame. This makes the code a little more consistent with the Python worker, but does require that the returned StructType column is flattened out in FlatMapGroupsInPandasExec in Scala.

How was this patch tested?
Existing tests and ran tests with pyarrow 0.12.0

I think (1) and (2) from above are pretty straightforward. With (3) I think it makes the Python worker a bit better now that StructType can be returned from a scalar udf, but it does require the struct to be flattened out in Scala, so I don't feel too strongly about pushing this in. Please take a look @HyukjinKwon @ueshin @icexelloss and let me know what you think, thanks!

Test build #103508 has started for PR 24095 at commit 93bb831.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8921/
Test PASSed.

Looks pretty good to me otherwise.

Test build #103508 has finished for PR 24095 at commit 93bb831.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103508/
Test FAILed.

Merged build finished. Test FAILed.

Test build #103635 has started for PR 24095 at commit bc08d1b.

Thanks for reviewing @ueshin and @HyukjinKwon!
For (2), I used your suggestion to write START_ARROW_STREAM in a generator but to keep from changing things for createDataFrame, I have it as an option.
For (3) I don't think it changes functionality because nested structs weren't supported before with any Pandas UDFs.  Let me know what you guys think.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9036/
Test PASSed.

Test build #103635 has finished for PR 24095 at commit bc08d1b.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103635/
Test FAILed.

Test build #103743 has started for PR 24095 at commit f6b0e30.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9124/
Test PASSed.

Test build #103743 has finished for PR 24095 at commit f6b0e30.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class ArrowStreamPandasUDFSerializer(ArrowStreamPandasSerializer):

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103743/
Test PASSed.

Apologies, I moved things around again for item (2) because I didn't really like having an option in ArrowStreamPandasSerializer to send the START_ARROW_STREAM either.
Now, I have _create_batch(...) as a method in ArrowStreamPandasSerializer (where it belongs I think), and then have a subclass used for Pandas UDFs that overrides dump_stream that can send START_ARROW_STREAM.
I think it's clearer this way because it's easier to see what serializer is used where, and I also tried to improve the docs. Let me know what you think when you get the chance to take another look @HyukjinKwon @ueshin . Thanks!

Took a quick look and looks okie in general to me. Will take a closer look later so don't block by me.

Merged to master.

Thanks @HyukjinKwon and @ueshin !


Show Welcome component for the first time

Is your feature request related to a problem? Please describe.
Currently, Welcome component is shown every time user runs Deer.
Describe the solution you'd like
We should show Welcome component only for the first time.
Additional context
You can use electron-store package to accomplish that through set a user preference (e.g. show-welcome) with false value, so each time user runs Deer check for this pref and do necessary routing or redirecting. (Ask here for any missing information, something is not clear, or needing some help)

I will work on this


Annotate ecoregions as they appear in map

From Michael O’Loughlin
Each of the ecoregions has a number associated with it. Would it be of value to have those on the map either watermarked or just small font like EPA does?

This requires us to move away from image tiles to vector tiles as produced, e.g. from https://github.com/mapbox/geojson-vt


Data processing code

Hi, thanks for your excellent work. I wonder if could you please provide the data processing code.  So that we can train on our own dataset.

We recommend checking these two repos for detailed instructions:
https://github.com/facebookresearch/DeepSDF
https://github.com/marian42/mesh_to_sdf
Then, create sample points both uniformly and close to the surface.


Usage not clear

Hey, @luisdalmolin. Great job, but I think it's a little bit confusing this usage. We don't know if we create a provider or if we call zenvia direct in our controller.
It would be interesting if you could perform an example calling the method so we could know the idea about the way we are supposed to use it.

@Ludplay This is an adapter for using it with Laravel Notifications (https://laravel.com/docs/6.x/notifications). Is not intended to use without it, although you can. You could try to use a library like https://github.com/vitorccs/zenvia-php for this.


Add support for GNU/Hurd

add a new Platform item for it, and use it explicitly
use the unix module, since it provides all the needed bits
tweak the unix module for what is supported by Hurd, mostly following what Linux does and using an own UtsName (according to the utsname implementation in GNU libc)

Thanks for merging this!
What about the v2 branch? Should I submit the same PR to that branch as well, or will the changes be integrated there at some point?

Thanks for merging this!

Of course, thanks for the PR!

What about the v2 branch? Should I submit the same PR to that branch as well, or will the changes be integrated there at some point?

The v2 branch is currently behind on a bunch of commits, currently trying to figure out the best way to manage sharing changes between the two branches.  These changes will be integrated there once I get back to working on 2.0

The v2 branch is currently behind on a bunch of commits, currently trying to figure out the best way to manage sharing changes between the two branches. These changes will be integrated there once I get back to working on 2.0

Thanks for the explanation; feel free to poke me here in case you think it would be helpful for me to send this PR to v2.


Create system tests for OAuth2 credentials

(This may be punted depending on how difficult it is to obtain test credentials)

Already exists in oauth2client, the credentials are just for my user account with email being the only scope.

I can probably obtain a test account.


Align "Accept..." and "Replace..." buttons in settings sync

In first two scenarios which are dialogs, it makes sense to say Replace.. which is easy to understand and in the last scenario it makes sense to say Accept... as they are in context of remote and local diff editor content OR
CC: @bpasero

To verify:

Enable settings sync on machine 1 and 2
Disable syncing settings on machine 1
From machine 2, change the theme and sync
From machine 1, change the theme to a different theme than in machine 2
Enable syncing settings on machine 1 - This shall show a conflicts notification
Make sure the buttons on this notification are Replace Remote , Replace Local & Show Conflicts

To verify:

Enable settings sync on machine 1 and 2
Disable syncing settings on machine 1
From machine 2, change the theme and sync
From machine 1, change the theme to a different theme than in machine 2
Enable syncing settings on machine 1 - This shall show a conflicts notification
Make sure the buttons on this notification are Replace Remote , Replace Local & Show Conflicts


Update examples file and folder names

Current dependencies on/for this PR:

#543  👈
main

This stack of pull requests is managed by Graphite.


Running the jupyter notebooks in docs using sphinx-gallery when building the docs

I reopened this issue because it is still in progress. We can close it when all notebooks are migrated.

I think this is done now

I think this is done now

Not yet. The "howto" and "built-in" sections still need to be migrated. We can discuss this later.


Strong name validation failed error when creating a Blazor 0.8.0 project in VS

Repro steps:

Install the Blazor 0.8.0 VSIX
Create a new Blazor project

Expected result: No error
Actual result:

ActivityLog.zip
CreateInstance failed for package [BlazorPackage]Source: 'mscorlib' Description: Could not load file or assembly 'Microsoft.VisualStudio.BlazorExtension, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) System.IO.FileLoadException: Could not load file or assembly 'Microsoft.VisualStudio.BlazorExtension, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) File name: 'Microsoft.VisualStudio.BlazorExtension, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60' ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A) The Zone of the assembly that failed was: MyComputer at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence) at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName) System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A) The Zone of the assembly that failed was: MyComputer

Closing as this is now fixed.


"GlobalPositionStrategy" is not assignable to type 'PositionStrategy'.

Bug, feature request, or proposal:
Material 2 Alpha 5 Overlay issue when using npm run tsc
What is the expected behavior?
Not fail on tsc build
What is the current behavior?
I am not using webpack, I am using systemjs and am seeing the following when attempting to build the ts with tsc. It is within material2 core overlay but I don't understand why, used to work on alpha 4.
error TS2322: Type 'GlobalPositionStrategy' is not assignable to type 'PositionStrategy'.
Property 'apply' is missing in type 'GlobalPositionStrategy'.
What are the steps to reproduce?
Simply attempt to create a new overlay using the following;
              let config = new OverlayState(); config.positionStrategy = this.overlay.position()     .global()     .centerHorizontally()     .top('20px') this.overlay.create(config).then(ref => {     ref.attach(this.templatePortals.first); });
Which versions of Angular, Material, OS, browsers are affected?
Angular 2 RC1
Angular 2 Material Alpha 5
SystemJS
Chrome
Windows 7
Is there anything else we should know?
Not using webpack !!!

Dupe of #535
(same underlying issue)


Only Admin login to backend

I created Controller BackendController extends yii controller.
I want all controllers extends with BackendController.
Example: PostController extends BackendController.
In controller BackendController, how to I config only users have role admin access to Post actions.

http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#access-control-filter


TLA+ spec for safekeeper membership change

ref https://github.com/neondatabase/neon/issues/8699

Addressed all comments, please have another look.