[MINOR][DOC][WIP] Performance Test Documentation

Performance Test Documentation with the following sections

[x] Architecture
[x] Adding New Algorithms
[x] Current Default Settings
[x] Examples
[x] Troubleshooting

ping @nakul02.
Could you please review this PR.

This is good work! Documentation is always appreciated.
Ping @asurve - this document should help with running the perf tests using @krishnakalyan3's perf test script.

@nakul02 thanks for the review.

@krishnakalyan3 - I would not expect you to keep this PR open till the end of GSoC. It should be in a good enough shape to be commit-able right now. With each phase, you should update it and commit it as part of that phase.
Let me know if you think this is commit-able right now.

@nakul02, yes its commit-able.

Refer to this link for build results (access rights to CI server needed):
https://sparktc.ibmcloud.com/jenkins/job/SystemML-PullRequestBuilder/1726/

Let me know when you are done.

@nakul02 could you please review/merge this PR. I will update document as and when required.

Refer to this link for build results (access rights to CI server needed):
https://sparktc.ibmcloud.com/jenkins/job/SystemML-PullRequestBuilder/1748/

Thanks @krishnakalyan3
I shall merge.


Error during make

Hi,
The project looks really cool so I tried to build it. I have not touched C/C++ before so excuse me but I have an error during the make process that I can't understand.
I am on ubuntu 18.04. Cmake version 3.10.2. OpenCV version 3.4.2. I installed the following packages through the ubuntu to package manager for OpenMPI dependency:

openmpi-bin
openmpi-common
openssh-client
openssh-server

The steps I take are as follows:

Install dependencies
Download sample file birdfountain_station1_xyz_intensity_rgb.7z and unziphere
Update main.cpp line 117 to reflect absolute location of downloaded sample
Update main.cpp line 118 to update the results destination
run cmake at folder root
run make at folder root

This produces the following error:
[ 25%] Building CXX object src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o
/home/bigdoods/projects/3DLineDetection/src/main.cpp:115:11: error: ‘::main’ must return ‘int’
 void main()
           ^
src/CMakeFiles/LineFromPointCloud.dir/build.make:110: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o' failed
make[2]: *** [src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/all' failed
make[1]: *** [src/CMakeFiles/LineFromPointCloud.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Could you please advise how to get working please?

refer to https://github.com/xiaohulugo/3DLineDetection/blob/master/src/main.cpp#L51 and https://github.com/xiaohulugo/3DLineDetection/blob/master/src/main.cpp#L87, your output should be "/home/bigdoods/Downloads/lineslines.txt" and "/home/bigdoods/Downloads/linesplanes.txt"

hey, this is the bugs, I've followed your guys solution, but still cannot run successful.
Scanning dependencies of target LineFromPointCloud
[ 12%] Building CXX object src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o
[ 25%] Linking CXX executable LineFromPointCloud
CMakeFiles/LineFromPointCloud.dir/main.cpp.o: In function `main':
main.cpp:(.text+0xd18): multiple definition of `main'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:CMakeCXXCompilerId.cpp:(.text+0x0): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c.o:(.data.rel.local+0x0): multiple definition of `info_compiler'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:(.data.rel.local+0x0): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c.o:(.data.rel.local+0x8): multiple definition of `info_platform'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:(.data.rel.local+0x8): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c.o:(.data.rel.local+0x10): multiple definition of `info_arch'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:(.data.rel.local+0x10): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c.o:(.data.rel.local+0x18): multiple definition of `info_language_dialect_default'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:(.data.rel.local+0x18): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdC/CMakeCCompilerId.c.o: In function `main':
CMakeCCompilerId.c:(.text+0x0): multiple definition of `main'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:CMakeCXXCompilerId.cpp:(.text+0x0): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/feature_tests.c.o: In function `main':
feature_tests.c:(.text+0x0): multiple definition of `main'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:CMakeCXXCompilerId.cpp:(.text+0x0): first defined here
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/feature_tests.cxx.o: In function `main':
feature_tests.cxx:(.text+0x0): multiple definition of `main'
CMakeFiles/LineFromPointCloud.dir/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:CMakeCXXCompilerId.cpp:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
src/CMakeFiles/LineFromPointCloud.dir/build.make:265: recipe for target 'src/LineFromPointCloud' failed
make[2]: *** [src/LineFromPointCloud] Error 1
CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/all' failed
make[1]: *** [src/CMakeFiles/LineFromPointCloud.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

test on another machine, the bug is different.
Scanning dependencies of target LineFromPointCloud
[ 20%] Building CXX object src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o
/home/amax/ngrok/opencv/3DLineDetection/src/main.cpp: In function ‘void readDataFromFile(std::__cxx11::string, PointCloud<double>&)’:
/home/amax/ngrok/opencv/3DLineDetection/src/main.cpp:19:35: error: no matching function for call to ‘std::basic_ifstream<char>::basic_ifstream(std::__cxx11::string&)’
  std::ifstream ptReader( filepath );
                                   ^
In file included from /home/amax/ngrok/opencv/3DLineDetection/src/main.cpp:2:0:
/usr/include/c++/5/fstream:495:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
       basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
       ^
/usr/include/c++/5/fstream:495:7: note:   no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const char*’
/usr/include/c++/5/fstream:481:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char; _Traits = std::char_traits<char>]
       basic_ifstream() : __istream_type(), _M_filebuf()
       ^
/usr/include/c++/5/fstream:481:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/5/fstream:455:11: note: candidate: std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)
     class basic_ifstream : public basic_istream<_CharT, _Traits>
           ^
/usr/include/c++/5/fstream:455:11: note:   no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const std::basic_ifstream<char>&’
src/CMakeFiles/LineFromPointCloud.dir/build.make:62: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o' failed
make[2]: *** [src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/all' failed
make[1]: *** [src/CMakeFiles/LineFromPointCloud.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

this was solved by update gcc to 7, but still have bugs.
Scanning dependencies of target LineFromPointCloud
[ 20%] Building CXX object src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o
/home/amax/ngrok/opencv/3DLineDetection/src/main.cpp: In function ‘void readDataFromFile(std::__cxx11::string, PointCloud<double>&)’:
/home/amax/ngrok/opencv/3DLineDetection/src/main.cpp:19:35: error: no matching function for call to ‘std::basic_ifstream<char>::basic_ifstream(std::__cxx11::string&)’
  std::ifstream ptReader( filepath );
                                   ^
In file included from /home/amax/ngrok/opencv/3DLineDetection/src/main.cpp:2:0:
/usr/include/c++/5/fstream:495:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
       basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
       ^
/usr/include/c++/5/fstream:495:7: note:   no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const char*’
/usr/include/c++/5/fstream:481:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char; _Traits = std::char_traits<char>]
       basic_ifstream() : __istream_type(), _M_filebuf()
       ^
/usr/include/c++/5/fstream:481:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/5/fstream:455:11: note: candidate: std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)
     class basic_ifstream : public basic_istream<_CharT, _Traits>
           ^
/usr/include/c++/5/fstream:455:11: note:   no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const std::basic_ifstream<char>&’
src/CMakeFiles/LineFromPointCloud.dir/build.make:62: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o' failed
make[2]: *** [src/CMakeFiles/LineFromPointCloud.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/all' failed
make[1]: *** [src/CMakeFiles/LineFromPointCloud.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

I find this may solved in here, but I cannot solve it, anyone can help me out ?

this was solved by update gcc to 7, but still have bugs.
[ 20%] Linking CXX executable LineFromPointCloud
CMakeFiles/LineFromPointCloud.dir/test.cpp.o: In function `readDataFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, PointCloud<double>&)':
test.cpp:(.text+0x0): multiple definition of `readDataFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, PointCloud<double>&)'
CMakeFiles/LineFromPointCloud.dir/main.cpp.o:main.cpp:(.text+0x0): first defined here
CMakeFiles/LineFromPointCloud.dir/test.cpp.o: In function `writeOutPlanes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<PLANE, std::allocator<PLANE> >&, double)':
test.cpp:(.text+0x27a): multiple definition of `writeOutPlanes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<PLANE, std::allocator<PLANE> >&, double)'
CMakeFiles/LineFromPointCloud.dir/main.cpp.o:main.cpp:(.text+0x27a): first defined here
CMakeFiles/LineFromPointCloud.dir/test.cpp.o: In function `writeOutLines(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<cv::Point3_<double>, std::allocator<cv::Point3_<double> > >, std::allocator<std::vector<cv::Point3_<double>, std::allocator<cv::Point3_<double> > > > >&, double)':
test.cpp:(.text+0x88e): multiple definition of `writeOutLines(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::vector<cv::Point3_<double>, std::allocator<cv::Point3_<double> > >, std::allocator<std::vector<cv::Point3_<double>, std::allocator<cv::Point3_<double> > > > >&, double)'
CMakeFiles/LineFromPointCloud.dir/main.cpp.o:main.cpp:(.text+0x88e): first defined here
CMakeFiles/LineFromPointCloud.dir/test.cpp.o: In function `main':
test.cpp:(.text+0xcf6): multiple definition of `main'
CMakeFiles/LineFromPointCloud.dir/main.cpp.o:main.cpp:(.text+0xcf6): first defined here
collect2: error: ld returned 1 exit status
src/CMakeFiles/LineFromPointCloud.dir/build.make:189: recipe for target 'src/LineFromPointCloud' failed
make[2]: *** [src/LineFromPointCloud] Error 1
CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/LineFromPointCloud.dir/all' failed
make[1]: *** [src/CMakeFiles/LineFromPointCloud.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

hey,have you solved the problem?

I've already run the code, and got the lines.txt and planes.txt, could you please let me know how to visualize them?


Feature request

Feature setBitmapAsSignature() request
Hey guy's you are doing an great job. I'm using this library and came to an point where I'm getting base64 from server as you know we can convert base64 to bitmap but there is no option to set that bitmap inside signature pad

what does the base64 contain?


Occasional AccessDeniedErrors after applying ACL metadata to a soft-deleted stream

Lately I've observed a strange asynchronous behavior of setStreamMetadataRaw. Let me explain my test setup first, then I'll go on and explain the problem.
Test setup

create an ES user with exhaustive group privileges ([ 'test-r', 'test-w', 'test-d', 'test-mr', 'test-mw' ])
connect to the ES with this user
set ACLs on an arbitrary stream (test-1) that match the group privileges above (this gives our user all privileges on this stream)
append an arbitrary event to test-1
soft-delete test-1
try to read from test-1
this (as expected) fails with an AccessDeniedError because the ACLs have been deleted as well
set the exact same ACLs like above again on test-1
try to read from test-1
expectation: reading succeeds for test-1, it's however empty

Problem

in some cases (<10%) the last reading step fails with this error:

(node:30306) UnhandledPromiseRejectionWarning: AccessDeniedError: Read access denied for stream 'test-1'.
    at ReadStreamEventsBackwardOperation.module.exports.ReadStreamEventsBackwardOperation._inspectResponse (/Users/[redacted]/node_modules/node-eventstore-client/lib/dist.js:5409:17)
    at ReadStreamEventsBackwardOperation.module.exports.OperationBase.inspectPackage (/Users/[redacted]/node_modules/node-eventstore-client/lib/dist.js:549:19)
    at EventStoreConnectionLogicHandler.module.exports.EventStoreConnectionLogicHandler._handleTcpPackage (/Users/[redacted]/node_modules/node-eventstore-client/lib/dist.js:3548:38)
    at /Users/[redacted]/node_modules/node-eventstore-client/lib/dist.js:3098:10
    at Immediate._handlers.(anonymous function) (/Users/[redacted]/node_modules/node-eventstore-client/lib/dist.js:3748:7)
    at processImmediate (timers.js:639:17)

if I after this check the ACLs of test-1 (or try to read again) that works perfectly fine

It seems to me that there is some form of asynchronous problem with which setStreamMetadataRaw resolves before the metadata are actually set.

Can you provide some code that reproduce this?
Thanks

Yep, you'll find it here: https://gist.github.com/jonasholtkamp/055de46f83eac8a11f66388d23e63207.

After running the script you provider I get a different behavior.
After soft-deleting the stream, the following read returns a status of streamNotFound.
I don't get an AccessDeniedError.
I'll need the version of node-eventstore-client you are using (do npm ls to get specific version), EventStore, node.js and also your OS info.
Thanks

Try running it repeatedly, please. As I said this behavior only occurs occasionally.

node-eventstore-client: 0.2.6
Eventstore: 4.1.1 (running in Docker 18.09.1)
Node.js: 11.9.0
OS: macOS 10.14.3

As far as I understand your issue is with the second read after setting the ACL on the soft-deleted stream.I'm telling you I'm not having the same behavior for the FIRST read after the soft delete. So in your example I'm not getting into the catch(e) where e.name === 'AccessDeniedError'.

I updated your example https://gist.github.com/nicdex/42457c19294965bdddc80679083f32f5
I added a 1000 loop and I get no error, for each loop I get
Working with stream test-
Read: success
Read: streamNotFound
Read: success

I can't reproduce the issue. I've tried different setup/settings and I always get the same results.
Maybe it could be related to EventStore being under load and somehow the ACL settings are delated, but it's doubtful.
I'll try to add some tests around the setStreamMetadataRaw call, right now there is none, maybe I'll be lucky and will be able to reproduce your issue.
For now, can I ask you why you are soft-deleting and re-using streams? What's your use case?

Thanks for taking the extra effort in investigating the issue. Sad to hear that you aren't able to reproduce this issue.
As to the need of soft-deleting and re-using streams: It is only by soft-deleting (instead of hard-deleting) streams that one is able to re-use streams. Trying to re-use hard-deleted streams results in an error. We use this construct to have easy and cheap duplicate checking in place. The ID part of a stream name (<name>-<id>) is an UUID5 that is based on some data that should not be duplicated. However it may be deleted and is therefore free to be used again.

Hey @nicdex, might be that I forgot an important detail: We're using the following default ACLs for our Eventstore:
      '$r': '$admins',
      '$w': '$admins',
      '$d': '$admins',
      '$mr': '$all',
      '$mw': '$all'
    },
    '$systemStreamAcl': {
      '$r': '$admins',
      '$w': '$admins',
      '$d': '$admins',
      '$mr': '$admins',
      '$mw': '$admins'
    }

With that the user is not by default allowed to write to/read from any stream.
Here is an updated example of my test script that sets the default ACL. With that you should be able to reproduce the behavior I experience. However it may be a general Eventstore issue rather than an issue with node-eventstore-client: https://gist.github.com/jonasholtkamp/a1909ecedad5f16ec4dbbe9f0c8007da.
Thanks for your support!

So I was able to reproduce the issue with the verbose logging on. I can definitively see at the low level of the client that the setAcls operation is completed before the read operation is started. I'm 99% certain that the problem is on the server side. Please open a ticket with EventStore itself https://github.com/EventStore/EventStore/issues

I have done as you asked, thanks for your support @nicdex.


update placeholder guidance

placeholders disappear on typing, not click

You can preview this change here:
Built with commit 368c06fd586aa8e51bb18d1d638a33f45c587f40
https://deploy-preview-808--govuk-design-system-preview.netlify.com


Add constructors for streams

Fixes #719
As discussed in #719, it is currently difficult to unit test streams because there is no way to construct one with a custom/mock implementation of StreamingHandlerConn (or StreamingClientConn for client-side streams). This PR exposes new constructors for the following types:

ServerStream
ServerStreamForClient
ClientStream
ClientStreamForClient
BidiStream
BidiStreamForClient

This allows us to do something along the lines of this (example using mockgen and gomock):
//go:generate $GOBIN/mockgen -destination=stream_mock.go -package=mypackage connectrpc.com/connect StreamingHandlerConn

ctrl := gomock.NewController(t)
mockStreamingHandlerConn := NewMockStreamingHandlerConn(ctrl)
mockStreamingHandlerConn.EXPECT().Send(
    // My expected stream message...
).Return(nil)

// New constructor allows us to create a ServerStream using our mock
stream := connect.NewServerStream[controllerv3.Requirements](mockStreamingHandlerConn)

// call service with mock stream
err := myservice.MyRPC(context.Background(), req, stream)

As requested here, I have also updated the internal code to use these new constructors. One thing I wasn't sure about is whether or not we'd want to expose any other parameters. There are a few cases internally where a stream is constructed with additional fields (such as a maybeInitializer) and not being able to pass one into the constructor leads to code like this:
stream := NewClientStreamForClient[Req, Res](c.newConn(ctx, StreamTypeClient, nil))
stream.initializer = c.config.Initializer
return stream

However, my use case doesn't have a need to pass in any other parameters and it keeps the API nice and clean without. I think the style above is fine for internal code. Happy to discuss this if there is a need for it though.

@pd93 thanks for looking into this issue. Closing for now as we need to discuss the API implementation further before looking at an implementation.


[Feature]  multi-grid sheets

Initial checklist

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Problem
This is a major feature suggestion but sheets should support more than one grid.  Each grid should support its own filtering, freeze and sorting operations . This is similar to rows.com . Grids would grow manually with plus signs next to last row and last column and they could be resized to fit the table you are creating and when printing you  could select which grid would be included in the print.
Currently all spreadsheet apps follow the excel model, one endless grid that can be used unfortunately for only one table. My idea is that grids should complement each other in terms of information . One grid could provide a profile of the subject the other could grow endlessly while the the third could provide analytics. Each grid should have its apparent  name and a distinct one-word-name that should be unique per workbook, in case you decide to move a grid across the workbook. The one-word-name should be used in formulas.  And you should be able to roll up grids or change their order per sheet.
Also you may have to introduce a more relative cell reference, next to the current method of course , such as B-first, B-last , and B @row. Last in particular would be very useful for multi-grid design since users would continually add more rows to grids. For analytics in the third grid, for example, you will have to put something like :  thirdgrid.B4=sum(secondgrid.B3:secondgrid.B-last) for calculating sum, and for average it would be : thridgrid.B6=average(secondgrid.B3:secondgrid.B-last) , and so on.
For compatibility with excel format one grid would be exported as one sheet and you could choose more than one grid to be exported as a workbook. Since you are a startup you should really consider such a major feature.

Thank you for the suggestion. However, please note that Univer is primarily an office suite SDK and, as such, doesn't typically offer fully productized features like this. While Univer supports multiple instances and offers powerful extensibility, allowing you to override existing components and services to implement functionality similar to row.com (as we've demonstrated in previous feasibility studies), it would require a significant development effort.
We don't currently have the resources to provide a more streamlined implementation for developers. Therefore, we'll add this issue to our backlog. We always welcome new ideas and encourage you to submit a pull request if you're interested in contributing a solution.

Thanks. Sheet instances are different from multi-grid sheets .Perhaps in the future you may find the resources to apply this idea.


Cannot install heroku (mac) bin/node : no such file or directory

fork/exec bin/node: no such file or directory
heroku-cli: Installing core plugins (retrying)...
▸    Error installing package.

@nitinsurana Could you please run the following commands an append the output?
export GODE_DEBUG=info
heroku update

I do have same issue. I tried that. Same error.
MacBook-Pro:test1 dmani$ heroku update
heroku-cli: Adding dependencies...
▸    Get https://cli-assets.heroku.com/node/v5.7.0/node-v5.7.0-darwin-x64.tar.gz: x509: certificate signed by unknown authority
done
heroku-cli: Installing core plugins...
▸
▸    fork/exec bin/node: no such file or directory
heroku-cli: Installing core plugins (retrying)...
▸    Error installing package.
▸
▸    Try running again with GODE_DEBUG=info to see more output.
heroku-cli: Adding dependencies...
▸    Get https://cli-assets.heroku.com/node/v5.7.0/node-v5.7.0-darwin-x64.tar.gz: x509: certificate signed by unknown authority
done
heroku-cli: Installing core plugins...
▸
▸    fork/exec bin/node: no such file or directory
heroku-cli: Installing core plugins (retrying)...
▸    Error installing package.
▸
▸    Try running again with GODE_DEBUG=info to see more output.
!    error getting commands pid 80147 exit 1

@dhiwakarmani Sorry for the delayed feedback, but we just shipped a release that should fix your problem.  Could you please run heroku update and verify using heroku version that you have version heroku-cli/4.27.26-693efcb.


[Apple Reminders] Create Reminder add URL field

Extension
https://www.raycast.com/raycast/apple-reminders
Description
The Create Reminder extension currently lacks a field for entering the reminder URL. Please add a file where user can add a URL
Who will benefit from this feature?
All users who include URLs in their reminders
Anything else?
No response

Thanks for the feature request. Unfortunately, there's no support for URLs in Apple's Reminders API, so I'll close this issue as not planned.


Fix netplan VLAN file creation

Issue #, if available:
Description of changes:
Fixes the netplan file creation when using tagged vlan.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


#82 created filter and added to page title and top labels in kifu

A few notes:

this will standardize rank in the single kifu page for title and the players labels on the top
it can be easily added to the list-kifu if we want
the filter is not exactly defensive programming... it might be useful to pull out a list of ranks from the production DB, so we have an idea of what kind of crazy stuff servers use
one obvious example might be for the Korean gup system (I don't know if any server actually uses it)
another thing I didn't consider is non-latin alphabet
I thought about addressing some corner cases like "if contains 'k' and not 'd' and not 'p'" but there might be something like "Provisional 30Kyu" or "Professional Dan" that would not pass (see point 3)
Instead of returning '', if number != null, we could return number[0] + '?'. This is for cases like "18liu" where it will become obvious that it's a 18kyu. This helps only for DDK games of course

So, yeah, it can become more complicated very quickly.

This is perfect. Great use of an Angular filter, too.
Also, your pull request will serve as a good reminder of the standards I should aim for: thanks for the extensive notes.

"it can be easily added to the list-kifu if we want" -> Yup! I can easily do that part, or you can submit it as another pull request. I haven't checked the list-kifu code, but we might want to refactor slightly to set the title before it hits the ng-repeat, where use of filter is somewhat costly.
"the filter is not exactly defensive programming... it might be useful to pull out a list of ranks from the production DB, so we have an idea of what kind of crazy stuff servers use" -> I'm not too concerned about this. I just don't want my UI to display silly things. :smile:
"one obvious example might be for the Korean gup system (I don't know if any server actually uses it)" This is a good thing to keep our eyes out for. Japan's definitely not the only allowed language, here. (Frankly, I've had internal debates about the use of "kifu" itself. Maybe I should have been more generic originally.)
"Instead of returning '', if number != null, we could return number[0] + '?'. This is for cases like "18liu" where it will become obvious that it's a 18kyu. This helps only for DDK games of course" -> I like this idea. If you wanted to go ahead with that, I'd be happy to merge it, too.

Thank you for your pull request!


DE translation

Hi. I have created a translation into German.
Hope everything is correct.
de_strings_xml.zip

Thank you very much @MasterMNB!
Feel free to reach us whenever you can here too.
I'll put it into the project, but feel free to submit PR's here too :)


There must be a better way of putting index pages together

The problem
Right now, the manage-page-order scripts takes several minutes to run. This contributes to #2498 and to general slowing down of things when simply testing a new feature in the docs file.
Suggestions
I don't know if this will be part of #2392 , #1823 or #2542 , but it really slows things quite a bit. Since doing stuff otherwise will involve changing things that are not tested, it's probably not a good idea to do it right now until some of the stuff above is solved, but let's keep it in mind anyway.

But we're talking about a different metadata level about an artifact that we haven't even defined, "collection of files". So I'm kinda lost here.

The documentation of Perl 6 is contained in 360 files in the docs/Language, docs/Program and docs/Type directories. They are not a single document, they are a collection of documents. Hence the word 'collection' (I use 'files' or 'sources' or 'pod files' fairly interchangably).
Not only are the 360 files (a number that is slowly increasing) contained in the same place, but they also contain references to each other.
Now suppose, we were to concatenate all the pod sources into a single Pod file (which is what P2BigPage tries to do), and call the result a manual. Now there would be a single Table of Contents, and a single Index. But such a manual is difficult to manage, particularly if you only want to change one item in one subsection.
It seems to me that we need to consider the whole collection as a single entity, and not just as each file separately. Like an orchard is group of fruit trees. Sometimes it is necessary to look at trees individually, but sometimes, the whole orchard needs to be looked after, eg., a wall is placed around the orchard to protect it, not walls around each tree.
So the 'landing page', which is where someone goes when wanting to see what there is in the Documentation of Perl 6, is a description about the collection of the files.
In fact, the existing documentation system has two files for configuring the collection, (a) type-graph.txt, which contains information about relations between abstract items inside the documentation sources, but also information about how the sources are collected (look at the way operators are gathered), (b) the file  00-POD-CONTROL, which is how the language.html landing page is put together.
All I am suggesting is that we are explicit about where the collection meta data is kept and how it is kept. Then we can test the meta data for completeness, etc.

Your original question was about 'putting index pages together'. I submit that an index page is about the whole collection, and not about any single file. For instance, we could

Yep, but I was hoping the index page would be completely defined by the items that are indexed,
leaving just the appearance issues to be decided.

And the appearance is exactly where I realised that we need meta data about the whole collection, which cannot be contained in the individual source files.

You're talking about something that is close, but not really: a "navigation" page that helps you navigate through a set of (possibly related) pages. Once again, I don't think it's the same thing, so I really need to define what we are talking about.

Perhaps we are talking about different things, but I submit that once we agree to a concept of a collection of source files many of these disagreements will become easier to understand.

Categories are metadata, and as such should be included in the source. If you make document rendering depend on external metadata, all kind of hell might break loose (as it does now).

With respect, I cannot agree. CSS stylesheet are external meta and define how a document is rendered.
The reason so much breaks is because the whole system is not defined, there are no tests, and the whole tool-chain is a haphazard collection of functions.
I agree with you sincerely that we need to define:

the documents as a collection, and where the meta data for the collection is stored.
the structure of each document in the collection, and what meta data is permitted
how aggregates collected from the collection are used (by aggregate, I mean 'Table of Contents', which is gathered from =head elements, and Index which is gathered from X<> elements. Further, the system also has two other aggregate, namely definitions collected from places where sub role method, etc are declared.

Index pages are today generated by Documentable and no longer use this.


Search SDK: Merging all v2.0-preview feature work to master branch

See individual commits for details.
FYI @chaosrealm @seansaleh @Yahnoosh @mhko

No modification for Ruby

No modification for Python

No modification for NodeJS


Android demo - SDD-Mobilenet model download failed

System information
OS Platform and Distribution:Windows 10
TensorFlow installed from:Source
TensorFlow version:master branch
Python version: 2.7.12
Bazel version:NA
CUDA/cuDNN version:NA
GPU model and memory:NA
Describe the problem
Hi,
I'm trying to compile the android demo example project just released the August 11, 2017.
I'm building it with Android Studio and gradlle.
The build fails downloading the SSD-Mobilenet model with this error :
Execution failed for task ':downloadFile'.
> org.apache.http.client.ClientProtocolException: Forbidden

I can download the other models, but not this one.
How can I fix it ?
Thanks

This question is better asked on  StackOverflow since it is not a  bug or feature request. There is also a larger community that reads questions there. Thanks!

It looks like the model archive is available at
http://storage.googleapis.com/download.tensorflow.org/models/**object_detection**/ssd_mobilenet_v1_android_export.zip, while the download-models.gradle script expects it at http://storage.googleapis.com/download.tensorflow.org/models/ssd_mobilenet_v1_android_export.zip.
@jch1 @martinwicke All of our other models (include multibox, which is also for object detection) are just under the models/ dir -- is there a strong argument for keeping this one under models/object_detection?
Besides copying the file, the most straightforward fix may be to just add "object_detect/" to the beginning of the entry in download-models.gradle.

I think in general it would be better to place new models in subfolders, in particular if they have several files. We also shouldn't move downloadable assets around.
I would fix the gradle file, that seems like the simplest solution.

I ran into this just now, and as a temporary fix (since it's blocking anyone from building the Android demos with the top-of-tree code) I've copied the relevant file to the location it's expected. We should also fix the code, but the simplest fix (adding a prefix to the name) failed because it's used as a file name for the destination of the download.

I've fixed this internally using a split to separate the filename from the url -- should be included in the next push.

Perfect !
Thanks.


Build it in windows and use it in other devices

Hi, can you help me to take a build for windows. I took a build and it is working on my system but when I shared it to others it is showing some python modules missing also in the log it is showing the cs file path as the path where the app is build (my system) not the path of the build folder(my friend's system)?
Should i somehow make it to use the python from the build folder or change the path to use it dynamically?

By placing embeddable python in StreamingAssets and using the following initialization script, python can be executed without depending on the system.
https://github.com/shiena/Unity-PythonNet/blob/main/Assets/Scripts/PythonLifeCycle.cs
Please refer to the article below for the steps to build the project.
https://zenn.dev/shiena/articles/unity-python

Yes, I did the same but when I run it in other system it is showing the path of the CS
UnityPython.Proj.Start() (at D:/projects/my_project/Assets/Scripts/Proj/Proj.cs:37) file where it was build.

The priority of PATH was wrong, so please apply the following changes.
https://github.com/shiena/Unity-PythonNet/commit/df3285241b0ea61c93dbdd023e154d7ef75ee365

Are you able to run it directly from the command line?
The command for this project is:
Assets\StreamingAssets\python-3.11.3-embed-amd64\python.exe Assets\StreamingAssets\myproject\plot_random.py

It seems that it will fail if there is a problem with the environment construction.

Yes it is working on my system
`
G:/unity-build/Build/Build-08-07-2023-1157/App_Data/StreamingAssets
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:LogError (object)
PythonLifeCycle:Initialize (string) (at D:/Projects/App/Assets/Scripts/PythonLifeCycle.cs:28)
PythonLifeCycle:PythonInitialize () (at D:/Projects/App/Assets/Scripts/PythonLifeCycle.cs:16)
(Filename: D:/Projects/App/Assets/Scripts/PythonLifeCycle.cs Line: 28)
G:/unity-build/Build/Build-08-07-2023-1157/App_Data/StreamingAssets
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:LogError (object)
PythonLifeCycle:Initialize (string) (at  D:/Projects/App/Assets/Scripts/PythonLifeCycle.cs:28)
PythonInitializer:Start () (at  D:/Projects/App/Assets/Scripts/PythonInitializer.cs:10)
(Filename:  D:/Projects/App/Assets/Scripts/PythonLifeCycle.cs Line: 28)
PythonException: No module named 'typing_extensions'
File "G:\unity-build\Build\Build-08-07-2023-1157\App_Data\StreamingAssets\python-3.10.6-embed-amd64\Lib\site-packages\torch\serialization.py", line 17, in
from typing_extensions import TypeAlias  # Python 3.10+
File "G:\unity-build\Build\Build-08-07-2023-1157\App_Data\StreamingAssets\python-3.10.6-embed-amd64\Lib\site-packages\torch_init_.py", line 1122, in
from .serialization import save, load
File "G:\unity-build\Build\Build-08-07-2023-1157\App_Data\StreamingAssets\python-3.10.6-embed-amd64\Lib\site-packages\code\code.py", line 12, in
import torch
File "G:\unity-build\Build\Build-08-07-2023-1157\App_Data\StreamingAssets\python-3.10.6-embed-amd64\Lib\site-packages\code_init_.py", line 2, in
from code.code import Code # noqa
File "G:\unity-build\Build\Build-08-07-2023-1157\App_Data\StreamingAssets\myproject\translate.py", line 1, in
from pororo import Pororo
at Python.Runtime.PythonException.ThrowLastAsClrException () [0x00025] in <77462c434d854fc6846de1ac899c7833>:0
at Python.Runtime.NewReferenceExtensions.BorrowOrThrow (Python.Runtime.NewReference& reference) [0x0000f] in <77462c434d854fc6846de1ac899c7833>:0
at Python.Runtime.PyModule.Import (System.String name) [0x00015] in <77462c434d854fc6846de1ac899c7833>:0
at Python.Runtime.Py.Import (System.String name) [0x00000] in <77462c434d854fc6846de1ac899c7833>:0
at Translate.Start () [0x000db] in D:\Projects\App\Assets\Scripts\Translate.cs:29
(Filename:  D:/Projects/App/Assets/Scripts/Translate.cs Line: 29)``

The syspath is displayed with the following command.
Are there any differences between your two PCs?
Assets\StreamingAssets\python-3.11.3-embed-amd64\python -c "import sys;print('\n'.join(sys.path))"

Thank you for the support. I managed to fix it based on your suggestion. This is my modified PythonLifeCycle.cs that works on all systems.
using Python.Runtime;
using System;
using UnityEngine;
public static class PythonLifeCycle
{
private const string PythonFolder = "python-3.10.6-embed-amd64";
private const string PythonDll = "python310.dll";
private const string PythonZip = "python310.zip";
private const string PythonProject = "myproject";
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void PythonInitialize()
{
    Application.quitting += PythonShutdown;
    Initialize(PythonProject);
}

private static void PythonShutdown()
{
    Application.quitting -= PythonShutdown;
    Shutdown();
}

public static void Initialize(string appendPythonPath = "")
{
    var pythonHome = $"{Application.streamingAssetsPath}/{PythonFolder}";
    Debug.LogError(Application.streamingAssetsPath);
    var appendPath = string.IsNullOrWhiteSpace(appendPythonPath) ? string.Empty : $"{Application.streamingAssetsPath}/{appendPythonPath}";
    var path1 = $"{pythonHome}/{PythonZip}";
    var path2 = $"{pythonHome}/DLLs";
    var path3 = $"{pythonHome}/Lib";
    var path4 = $"{pythonHome}";
    var path5 = $"{pythonHome}/Lib/site-packages";
    var path6 = $"{pythonHome}/Lib/site-packages/win32";
    var path7 = $"{pythonHome}/Lib/site-packages/win32/lib";
    var path8 = $"{pythonHome}/Lib/site-packages/Pythonwin";

    var pythonPath = string.Join(";",
    $"{path1}",
    $"{path2}",
    $"{path3}",
    $"{path4}",
    $"{path5}",
    $"{path6}",
    $"{path7}",
    $"{path8}",
        $"{appendPath}",
        $"{pythonHome}/Lib/site-packages",
        $"{pythonHome}/{PythonZip}",
        $"{pythonHome}"
    );
    // Debug.LogError(pythonPath);

    var scripts = $"{pythonHome}/Scripts";

    var path = Environment.GetEnvironmentVariable("PATH")?.TrimEnd(';');
    // path = string.IsNullOrEmpty(path) ? $"{pythonHome};{scripts}" : $"{pythonHome};{scripts};{path}";

    path = $"{path1};{path2};{path3};{path4};{path5};{path6};{path7};{path8};";
    // path = $"{pythonHome};{scripts}";

    Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("DYLD_LIBRARY_PATH", $"{pythonHome}/Lib", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONNET_PYDLL", $"{pythonHome}/{PythonDll}", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONPATH", $"{pythonHome}/Lib/site-packages", EnvironmentVariableTarget.Process);

#if UNITY_EDITOR
Environment.SetEnvironmentVariable("PYTHONDONTWRITEBYTECODE", "1", EnvironmentVariableTarget.Process);
#endif
    PythonEngine.PythonHome = pythonHome;
    PythonEngine.PythonPath = pythonPath;

    PythonEngine.Initialize();
}

public static void Shutdown()
{
    PythonEngine.Shutdown();
}

}

Thank you for the support. I managed to fix it based on your suggestion. This is my modified PythonLifeCycle.cs that works on all systems.
using Python.Runtime;
using System;
using UnityEngine;
public static class PythonLifeCycle
{
private const string PythonFolder = "python-3.10.6-embed-amd64";
private const string PythonDll = "python310.dll";
private const string PythonZip = "python310.zip";
private const string PythonProject = "myproject";
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void PythonInitialize()
{
    Application.quitting += PythonShutdown;
    Initialize(PythonProject);
}

private static void PythonShutdown()
{
    Application.quitting -= PythonShutdown;
    Shutdown();
}

public static void Initialize(string appendPythonPath = "")
{
    var pythonHome = $"{Application.streamingAssetsPath}/{PythonFolder}";
    Debug.LogError(Application.streamingAssetsPath);
    var appendPath = string.IsNullOrWhiteSpace(appendPythonPath) ? string.Empty : $"{Application.streamingAssetsPath}/{appendPythonPath}";
    var path1 = $"{pythonHome}/{PythonZip}";
    var path2 = $"{pythonHome}/DLLs";
    var path3 = $"{pythonHome}/Lib";
    var path4 = $"{pythonHome}";
    var path5 = $"{pythonHome}/Lib/site-packages";
    var path6 = $"{pythonHome}/Lib/site-packages/win32";
    var path7 = $"{pythonHome}/Lib/site-packages/win32/lib";
    var path8 = $"{pythonHome}/Lib/site-packages/Pythonwin";

    var pythonPath = string.Join(";",
    $"{path1}",
    $"{path2}",
    $"{path3}",
    $"{path4}",
    $"{path5}",
    $"{path6}",
    $"{path7}",
    $"{path8}",
        $"{appendPath}",
        $"{pythonHome}/Lib/site-packages",
        $"{pythonHome}/{PythonZip}",
        $"{pythonHome}"
    );
    // Debug.LogError(pythonPath);

    var scripts = $"{pythonHome}/Scripts";

    var path = Environment.GetEnvironmentVariable("PATH")?.TrimEnd(';');
    // path = string.IsNullOrEmpty(path) ? $"{pythonHome};{scripts}" : $"{pythonHome};{scripts};{path}";

    path = $"{path1};{path2};{path3};{path4};{path5};{path6};{path7};{path8};";
    // path = $"{pythonHome};{scripts}";

    Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("DYLD_LIBRARY_PATH", $"{pythonHome}/Lib", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONNET_PYDLL", $"{pythonHome}/{PythonDll}", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONPATH", $"{pythonHome}/Lib/site-packages", EnvironmentVariableTarget.Process);

#if UNITY_EDITOR
Environment.SetEnvironmentVariable("PYTHONDONTWRITEBYTECODE", "1", EnvironmentVariableTarget.Process);
#endif
    PythonEngine.PythonHome = pythonHome;
    PythonEngine.PythonPath = pythonPath;

    PythonEngine.Initialize();
}

public static void Shutdown()
{
    PythonEngine.Shutdown();
}

}

Thank you for the support. I managed to fix it based on your suggestion. This is my modified PythonLifeCycle.cs that works on all systems.
using Python.Runtime;
using System;
using UnityEngine;
public static class PythonLifeCycle
{
private const string PythonFolder = "python-3.10.6-embed-amd64";
private const string PythonDll = "python310.dll";
private const string PythonZip = "python310.zip";
private const string PythonProject = "myproject";
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void PythonInitialize()
{
    Application.quitting += PythonShutdown;
    Initialize(PythonProject);
}

private static void PythonShutdown()
{
    Application.quitting -= PythonShutdown;
    Shutdown();
}

public static void Initialize(string appendPythonPath = "")
{
    var pythonHome = $"{Application.streamingAssetsPath}/{PythonFolder}";
    Debug.LogError(Application.streamingAssetsPath);
    var appendPath = string.IsNullOrWhiteSpace(appendPythonPath) ? string.Empty : $"{Application.streamingAssetsPath}/{appendPythonPath}";
    var path1 = $"{pythonHome}/{PythonZip}";
    var path2 = $"{pythonHome}/DLLs";
    var path3 = $"{pythonHome}/Lib";
    var path4 = $"{pythonHome}";
    var path5 = $"{pythonHome}/Lib/site-packages";
    var path6 = $"{pythonHome}/Lib/site-packages/win32";
    var path7 = $"{pythonHome}/Lib/site-packages/win32/lib";
    var path8 = $"{pythonHome}/Lib/site-packages/Pythonwin";

    var pythonPath = string.Join(";",
    $"{path1}",
    $"{path2}",
    $"{path3}",
    $"{path4}",
    $"{path5}",
    $"{path6}",
    $"{path7}",
    $"{path8}",
        $"{appendPath}",
        $"{pythonHome}/Lib/site-packages",
        $"{pythonHome}/{PythonZip}",
        $"{pythonHome}"
    );
    // Debug.LogError(pythonPath);

    var scripts = $"{pythonHome}/Scripts";

    var path = Environment.GetEnvironmentVariable("PATH")?.TrimEnd(';');
    // path = string.IsNullOrEmpty(path) ? $"{pythonHome};{scripts}" : $"{pythonHome};{scripts};{path}";

    path = $"{path1};{path2};{path3};{path4};{path5};{path6};{path7};{path8};";
    // path = $"{pythonHome};{scripts}";

    Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("DYLD_LIBRARY_PATH", $"{pythonHome}/Lib", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONNET_PYDLL", $"{pythonHome}/{PythonDll}", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONPATH", $"{pythonHome}/Lib/site-packages", EnvironmentVariableTarget.Process);

#if UNITY_EDITOR
Environment.SetEnvironmentVariable("PYTHONDONTWRITEBYTECODE", "1", EnvironmentVariableTarget.Process);
#endif
    PythonEngine.PythonHome = pythonHome;
    PythonEngine.PythonPath = pythonPath;

    PythonEngine.Initialize();
}

public static void Shutdown()
{
    PythonEngine.Shutdown();
}

}

The syspath is displayed with the following command. Are there any differences between your two PCs?
Assets\StreamingAssets\python-3.11.3-embed-amd64\python.exe -c "import sys;print('\n'.join(sys.path))"

Thank you for the support. I managed to fix it based on your suggestion. This is my modified PythonLifeCycle.cs that works on all systems.
using Python.Runtime;
using System;
using UnityEngine;
public static class PythonLifeCycle
{
private const string PythonFolder = "python-3.10.6-embed-amd64";
private const string PythonDll = "python310.dll";
private const string PythonZip = "python310.zip";
private const string PythonProject = "myproject";
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void PythonInitialize()
{
    Application.quitting += PythonShutdown;
    Initialize(PythonProject);
}

private static void PythonShutdown()
{
    Application.quitting -= PythonShutdown;
    Shutdown();
}

public static void Initialize(string appendPythonPath = "")
{
    var pythonHome = $"{Application.streamingAssetsPath}/{PythonFolder}";
    Debug.LogError(Application.streamingAssetsPath);
    var appendPath = string.IsNullOrWhiteSpace(appendPythonPath) ? string.Empty : $"{Application.streamingAssetsPath}/{appendPythonPath}";
    var path1 = $"{pythonHome}/{PythonZip}";
    var path2 = $"{pythonHome}/DLLs";
    var path3 = $"{pythonHome}/Lib";
    var path4 = $"{pythonHome}";
    var path5 = $"{pythonHome}/Lib/site-packages";
    var path6 = $"{pythonHome}/Lib/site-packages/win32";
    var path7 = $"{pythonHome}/Lib/site-packages/win32/lib";
    var path8 = $"{pythonHome}/Lib/site-packages/Pythonwin";

    var pythonPath = string.Join(";",
    $"{path1}",
    $"{path2}",
    $"{path3}",
    $"{path4}",
    $"{path5}",
    $"{path6}",
    $"{path7}",
    $"{path8}",
        $"{appendPath}",
        $"{pythonHome}/Lib/site-packages",
        $"{pythonHome}/{PythonZip}",
        $"{pythonHome}"
    );
    // Debug.LogError(pythonPath);

    var scripts = $"{pythonHome}/Scripts";

    var path = Environment.GetEnvironmentVariable("PATH")?.TrimEnd(';');
    // path = string.IsNullOrEmpty(path) ? $"{pythonHome};{scripts}" : $"{pythonHome};{scripts};{path}";

    path = $"{path1};{path2};{path3};{path4};{path5};{path6};{path7};{path8};";
    // path = $"{pythonHome};{scripts}";

    Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("DYLD_LIBRARY_PATH", $"{pythonHome}/Lib", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONNET_PYDLL", $"{pythonHome}/{PythonDll}", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("PYTHONPATH", $"{pythonHome}/Lib/site-packages", EnvironmentVariableTarget.Process);

#if UNITY_EDITOR
Environment.SetEnvironmentVariable("PYTHONDONTWRITEBYTECODE", "1", EnvironmentVariableTarget.Process);
#endif
    PythonEngine.PythonHome = pythonHome;
    PythonEngine.PythonPath = pythonPath;

    PythonEngine.Initialize();
}

public static void Shutdown()
{
    PythonEngine.Shutdown();
}

}


Minimal example for obsSegmentations.json for visualizing polygons in Spatial View

Hi,
I'm trying to visualize polygons (given in a JSON file similar to the example at http://vitessce.io/docs/data-file-types/#obssegmentationsjson) in the Spatial view but am unable to do so. I get a blank screen in the widget (in Jupyter notebook) and get an error message in the status window ("Error while validating undefined.")
Here is the code I use to create this:
vc = VitessceConfig(schema_version="1.0.15", name='Segmentations test config', description='Test config')

dataset = vc.add_dataset(name='Segmentation-json-example').add_file(
                                                                url="path-to-file-on-aws-s3/obsSegmentations-example.json",
                                                                data_type=DataType.OBS_SEGMENTATIONS,
                                                                file_type=ft.OBS_SEGMENTATIONS_JSON,

)

spatial = vc.add_view(cm.SPATIAL, dataset=dataset)
status = vc.add_view(cm.STATUS, dataset=dataset)
lc = vc.add_view(cm.LAYER_CONTROLLER, dataset=dataset)
vc.layout(spatial | (lc / status));
vc.display()

The obsSegmentations-example.json file has cell polygons defined based on the example in the documentation (the first link above):
{
    "cell_1": [
      [6668, 26182],
      [6668, 26296],
      [6873, 26501],
      [6932, 26501],
      [6955, 26478],
      [6955, 26260],
      [6838, 26143],
      [6707, 26143]
    ],
    "cell_2": [
      [5047, 44428],
      [5047, 44553],
      [5065, 44571],
      [5125, 44571],
      [5284, 44412],
      [5284, 44368],
      [5239, 44323],
      [5152, 44323]
    ]
  }

Could you please provide a minimal example of how to use a JSON file to visualize the polygons?

Hi @J-Yash
Can you try removing the data_type parameter in the add_file?
This is a minimal example of how the config would look as JSON
{
  "name": "Codeluppi et al., Nature Methods 2018",
  "description": "Spatial organization of the somatosensory cortex revealed by osmFISH",
  "version": "1.0.15",
  "initStrategy": "auto",
  "datasets": [
    {
      "uid": "codeluppi",
      "name": "Codeluppi",
      "files": [
        {
          "fileType": "obsSegmentations.json",
          "url": "https://s3.amazonaws.com/vitessce-data/0.0.33/main/codeluppi-2018/codeluppi_2018_nature_methods.cells.segmentations.json"
        }
      ]
    }
  ],
  "coordinationSpace": {
    "spatialSegmentationLayer": {
      "A": {
        "opacity": 1,
        "radius": 0,
        "visible": true,
        "stroked": false
      }
    }
  },
  "layout": [
    {
      "component": "layerController",
      "coordinationScopes": {
        "spatialSegmentationLayer": "A"
      },
      "x": 0,
      "y": 1,
      "w": 2,
      "h": 4
    },
    {
      "component": "spatial",
      "coordinationScopes": {
        "spatialSegmentationLayer": "A"
      },
      "x": 2,
      "y": 0,
      "w": 4,
      "h": 4
    }
  ]
}

You may need to add the line
vc.link_views([spatial, lc], ["spatialSegmentationLayer"], [{ "opacity": 1, "radius": 0, "visible": True, "stroked": False }]

Awesome! That worked. Thanks for the quick response!


Persistent state in controllers...

Based on previous discussion w.r.t how we preserve some kind of state from one injection to the next, wondering if we should develop the following...

A prioritisation object. A DDA controller, inside process_scan passes the scan it's processing to this object and it returns the list of tasks. This moves functionality out of the controller (which becomes more of a shell to interact with the environment) and creates a dedicated object that decides what the next action (or set of actions) ought to be.

Why? Well, our controllers are designed to only run once. But we want to preserve some state from one injection to the next. The same prioritisation object could be passed around to multiple, remembering what happened in previous injections, doing alignment etc, and keeping track of exclusion.

See examples (test_controllers_shell.py) in branch iss_180

The codes look sensible, we could go with it.
Some comments below:

In reinforcement learning literatures, something that looks at states and decide what's the next action to take is usually called an 'agent'. We could use that terminology too rather than 'oracle', just to be consistent with what other people use?
In next_tasks we pass in the controller object. I'm guessing it's only because we need access to get_ms1_scan_params and get_ms2_scan_params inside the controller? Don't need to do this now, but I think it would be good to re-open this issue. and move those two methods out elsewhere.
I can guess how it works but it seems that test_controllers_shell.py is missing?

Happy to go with this. It seems somewhat related to #15 / that issue could be addressed at the same time

#15 is for existing codes, right? There will be some code duplications (and also in functionalities) as we keep both the codes for the old-style controllers and the new oracle-/agent-based ones.
I guess eventually we hope to move away from all the old controllers to using the new style.

thanks both -- re the controller -- initially yes, that's why. But actually, maybe it's useful because the agent / oracle can keep track of what they asked each controller to do, which is helpful, even if the scan parameters are accessible elsewhere....

not so sure we need to remove the scan params from the controller object though -- it having scan params is not a bad thing. Perhaps just shouldn't be the only place?

Could you later commit 'test_controllers_shell.py' pls @sdrogers

Created the folowing pull request https://github.com/sdrogers/vimms/pull/183 for all the above.

Shall we close now? Or keep this open for discussion?

Closed


mupx deploy verification failed, by getting wrong version of fibers.node

Seems there are pretty similar problems in other issues (#106 for example).
I get pretty similar problem as many others on deployment:
/bundle/bundle/programs/server/node_modules/fibers/fibers.js:16
		throw new Error('`'+ modPath+ '.node` is missing. Try reinstalling `node-fibe
		      ^
	Error: `/bundle/bundle/programs/server/node_modules/fibers/bin/linux-x64-v8-3.14/fibers.node` is missing. Try reinstalling `node-fibers`?

What I just found - the problem is in version of fibers file. On deployment version node_modules/fibers/bin/linux-x64-v8-4.6/fibers.node is installed while server looks for node_modules/fibers/bin/linux-x64-v8-3.14/fibers.node
When I install the proper version manually - everything starts working. Until next deploy, which again installs wrong version.
Can it somehow be fixed?

i have this problem too for 2 days already. how can we fixed this?

Having same kind of issue. Did you find a workaround ?

Copy missing file manually.

And your version of Meteor I wondered? <IP_ADDRESS>+?

@MasterJames Me, yes. <IP_ADDRESS>

I think the problem steams from incompatible binaries.
The new version you have seemed to fix most fiber problems for people.
Only other thing other threads suggested was to delete the node_modules folder or something like that.
Some clean build is needed. Could be a dependency of a dependency?
The Meteor plan is to allow packages to build but to include all possible binaries in the npm modules.
You might have to look up how to build manually. Update everything possibly related.
Backup first. Then maybe...
I would start fresh with a clean target. Do a simple test with a basic meteor default, then start adding your packages and see which ones might trigger a fibers error.
Then resolve that with the package creator by building the correct binaries for the target platform if that's what's happening.
Anyway I hope this help you find the right solution. Report back your findings and hopefully solution.

@MasterJames thanks for suggestion. Unfortunately I'm very busy now, so have not time to play with plugins to check. Maybe someone else can try and give share results.
My insight here is that fibers.node files path somehow remind me kernel versions. And could it be that mupx or docker (I'm not specialist here) simply picks wrong version. As my server runs on 3.13 kernel (or 3.14 branch if I understand correctly) while file for 4.6 (??) version of fibers is installed.
Could the clue be here?


Log fields for QueryRuntimeStatistics is missing

Post above just specifying what data fields are available for DataPlaneRequests but no for QueryRuntimestatics.
For example QueryRuntimestatistics has following field querytext_s which is not list in fields above. Specifically for my scenario this fields contains following query. I'm having hard time understanding syntax since documents do not have fields specified below at all, so how do you decypher what is happening here?
SELECT *
FROM r1
WHERE (((r1["p1__12"] = 1) AND CONTAINS(r1["p2__19"], "str1__13")) AND (r1.p1__12 = 1))

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

ID: 196c9642-a016-e182-1435-51550b1cdee9
Version Independent ID: fd354372-db8e-1eb8-dfc2-83e1c6c3954c
Content: Diagnostic logging in Azure Cosmos DB
Content Source: articles/cosmos-db/logging.md
Service: cosmos-db
GitHub Login: @SnehaGunda
Microsoft Alias: sngun

@artisticcheese
Thanks for the feedback! We are currently investigating and will update you shortly.

@artisticcheese We show an example output of QueryRuntimestatics logs, but it doesn't clarify how to read the query.
@kanshiG who can clarify what this means. Govind, how do we read the where clause below? what does p1_12 mean?
SELECT *
FROM r1
WHERE (((r1["p1__12"] = 1) AND CONTAINS(r1["p2__19"], "str1__13")) AND (r1.p1__12 = 1))

@SnehaGunda @artisticcheese  Key here is to understand that query can be logged to 2 locations - queryruntimestatistics table in diagnostic log vs storage account. You would pick up the activityid from the diagnostic log and use that activity log to look up the query itself.

@SnehaGunda the parameter values are not logged in exact fashion respecting the PII. Those names are placeholders for the parameters and their values. Key here is for you to get the idea - which query it is. And then use activity id to debug the issue - in terms of why you would make the query with help of client side stats you would have logged via FeedOptions.PopulateQueryMetrics = true.  Or in case you  need more information about how to interpret it (it is documented  https://docs.microsoft.com/en-us/azure/cosmos-db/troubleshoot-query-performance#log-query-metrics ).

If logging to storage account is setup will I be able to get query parameters or they still will be obfuscated?

@artisticcheese The example I have in the doc was taken from the storage account, so they are obfuscated in the storage account as well. As Govind mentioned above, you can use the activity ID and look up the query.

How and where do you look up query based on activity ID?

Diagnosticlog has the activity id for every request in AzureDiagnostics.  https://docs.microsoft.com/en-us/azure/cosmos-db/logging#interpret

AzureDiagnostics  | take 5 // after enabling log analytics and waiting for data to flow
QueryRuntimeStatistics  | take 5 // should show activity id

You can join them too.,...Will post that once I get the time

QueryRuntimeStatistics doesn't exist for @kanshiG. We are having a hard time recognizing the queries

I am currently debugging  Cosmos Db to see why it is using to much RU, and not being able to see the query makes it very difficult.  The only solution I see is logging queries on Client Side for now.
Here is what querytext_s looks like:
SELECT VALUE c
FROM r1 AS c
WHERE (((c.p1__10 = @param1__14) AND (c.p2 = @param2__14)) AND (c.p3__10 <= @param3__14))
ORDER BY c._ts DESC

In an enterprise application with hundreds of queries, this is like looking for a needle in a haystack.
Is there a reason for masking property names in queries?

The primary reason is PII information can be logged as part of the query text.
You can call in support and get the log to actual query text - which is only visible to you, but please remember to close that path once done.
You code would have that pattern and most of those queries should be taking lot of RUs.
Warm Regards
Govind Kanshi

From: ericpopivker<EMAIL_ADDRESS>Sent: Friday, March 5, 2021 6:57 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Govind Kanshi<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Log fields for QueryRuntimeStatistics is missing (#36846)
I am currently debugging Cosmos Db to see why it is using to much RU, and not being able to see the query makes it very difficult. The only solution I see is logging queries on Client Side for now.
Here is what querytext_s looks like:
SELECT VALUE c
FROM r1 AS c
WHERE (((c.p1__10 = @param1__14) AND (c.p2 = @param2__14)) AND (c.p3__10 <= @param3__14))
ORDER BY c._ts DESC
In an enterprise application with hundreds of queries, this is like looking for a needle in a haystack.
Is there a reason for masking property names in queries?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F36846%23issuecomment-791470774&data=04|01|govind.kanshi%40microsoft.com|7943d500a8e8482d57b408d8dfe6f17c|72f988bf86f141af91ab2d7cd011db47|1|0|637505530281536172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=fAdfcNGZ2neEovVJOtwuJzpx67eaUn4%2BkxxbwPfF%2Fig%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFN556K3FS5OOMT646QWEFDTCDWMDANCNFSM4IKYE6XQ&data=04|01|govind.kanshi%40microsoft.com|7943d500a8e8482d57b408d8dfe6f17c|72f988bf86f141af91ab2d7cd011db47|1|0|637505530281536172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=J3HapQQ7xVW82nWkl64OYIMvszzXoCNynJDIPGpOr4g%3D&reserved=0.

@kanshiG
I am not sure what you mean by:
"The primary reason is PII information can be logged as part of the query text."
Can you give an example please.

If your query has name, ssn, credit card or anything that has to be private ssn  == XXXX-XXX-4444 or creditcard == 122333444.
Warm Regards
Govind Kanshi

From: ericpopivker<EMAIL_ADDRESS>Sent: Friday, March 5, 2021 8:57 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Govind Kanshi<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Log fields for QueryRuntimeStatistics is missing (#36846)
@kanshiGhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FkanshiG&data=04|01|govind.kanshi%40microsoft.com|16873f8026854424f3cd08d8dff7be7c|72f988bf86f141af91ab2d7cd011db47|1|0|637505602435201553|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=JiGoESypA6smuuZgrW450DBE9wgojAeYIqECTSfDCK0%3D&reserved=0
I am not sure what you mean by:
"The primary reason is PII information can be logged as part of the query text."
Can you give an example please.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F36846%23issuecomment-791548281&data=04|01|govind.kanshi%40microsoft.com|16873f8026854424f3cd08d8dff7be7c|72f988bf86f141af91ab2d7cd011db47|1|0|637505602435211548|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=PeykyYlwcSjpbPeJu7AmweVy1gLWRchavaPWVey4Fb4%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFN556M6SCBFKX25SIYYS6DTCEEPDANCNFSM4IKYE6XQ&data=04|01|govind.kanshi%40microsoft.com|16873f8026854424f3cd08d8dff7be7c|72f988bf86f141af91ab2d7cd011db47|1|0|637505602435211548|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=ckyo%2Bn9zDbehBLThaMnXZQHm5mSkvMrYbwSx5noG9hw%3D&reserved=0.

@kanshiG
I understand about not exposing sensitive data, but why mask property names?
for ex:
WHERE (((c.p1__10 = @param1__14)
Why p1_10 can't be c.SSN or c.CreditCardNumber.   I am ok with value of param1_14 being masked.

Thanks for the input. It has been under discussion .For now I would request you to go via support request and get full query text
.

From: ericpopivker<EMAIL_ADDRESS>Sent: Saturday, March 6, 2021 12:05:12 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Govind Kanshi<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Log fields for QueryRuntimeStatistics is missing (#36846)
@kanshiGhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FkanshiG&data=04|01|govind.kanshi%40microsoft.com|39fa6cceacb84fc8d40d08d8e076919c|72f988bf86f141af91ab2d7cd011db47|1|0|637506147151425655|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=ymxVSq4c72MHIurExY3Q0BQPPZZBhUOaA5UNry9AAkg%3D&reserved=0
I understand about not exposing sensitive data, but why mask property names?
for ex:
WHERE (((c.p1__10 = @param1__14)
Why p1_10 can't be c.SSN or c.CreditCardNumber. I am ok with value of param1_14 being masked.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F36846%23issuecomment-791892791&data=04|01|govind.kanshi%40microsoft.com|39fa6cceacb84fc8d40d08d8e076919c|72f988bf86f141af91ab2d7cd011db47|1|0|637506147151425655|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=vQcoXDlo8mGaoZr07j5w%2F%2BlYAESbJ023kyytIxLSgz4%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFN556IYRVN6V5PQFPW3WG3TCHO3RANCNFSM4IKYE6XQ&data=04|01|govind.kanshi%40microsoft.com|39fa6cceacb84fc8d40d08d8e076919c|72f988bf86f141af91ab2d7cd011db47|1|0|637506147151435649|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=AfMkC5T7%2BeLJW%2BJEq3bTKug50Ux7nfbNdQ61ZrEah%2B8%3D&reserved=0.


Debug  step over or stepInto not work correctly

Issue Type: Bug
when I debug my code ,press stepover or stepInto not work correctly,Just like I clicked on to the continue.
VS Code version: Code 1.37.0 (036a6b1d3ac84e5ca96a17a44e63a87971f8fcc8, 2019-08-08T01:22:37.660Z)
OS version: Darwin x64 18.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz (6 x 3000)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
8.00GB (0.25GB free)

Process Argv
/Users/mengchi/mergeaircraft -g /Users/mengchi/mergeaircraft/Assets/Scripts/Tmp/GridManager.cs:1

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

unity-code-snippets
kle
1.3.0

csharp
ms-
1.21.0

unity-debug
Uni
2.7.2

/needsMoreInfo
What language do you use? (I suppose it is C#)
Does it happen with any code that you debug in that language or only specific code?
Do you have options like step over library code or other exclusions enabled?

Thank you for your kind reply.I don't know the problem right now, but after I restart my computer, everything is fine.

/needsMoreInfo
What language do you use? (I suppose it is C#)
Does it happen with any code that you debug in that language or only specific code?
Do you have options like step over library code or other exclusions enabled?

Thank you for your kind reply.I don't know the problem right now, but after I restart my computer, everything is fine.


IE10/11 Support

IE11 / IE10 do not support the input event on contenteditable elements. So I refactored ember-cli-medium-editor here to fire change events that work on both IE11/IE10 as well as other browsers (chrome, firefox etc..).
I've tested it out on Chrome, FF, Safari, IE11 and IE10 and all works great. Let me know if you have any feedback. Thanks for putting this together in the first place!

@lukebrenton hey just wanted to check in here. thanks!

Hi - Sorry for the lack of response. I've been away the past few weeks. There are some other changes that we're already using in a project so I just need to make sure that no weird stuff happens!

sounds good. thanks!
On Tue, Nov 8, 2016 at 7:19 AM Luke Brenton<EMAIL_ADDRESS>wrote:

Hi - Sorry for the lack of response. I've been away the past few weeks.
There are some other changes that we're already using in a project so I
just need to make sure that no weird stuff happens!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lukebrenton/ember-cli-medium-editor/pull/15#issuecomment-259122369,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABVIeytmS11K5BkC_D2CDvfitrJrJmFks5q8GjLgaJpZM4KGBEM
.


Code cleanup in _builder needed

#262 and #263 introduced several improvements to the location based caching, but in the process also introduced a lot of repeating code into _builder.py. This code could be cleaned up to share code where it is repeated.

Hi, I am a beginner and would like to help .

Hi @ryuusama09, the best place to start is looking through the contributing guide. After that if you have any specific questions feel free to post them here and I am happy to help you through it.

As an example of what I am thinking, there could be two new functions:
async def _gather_current_weather(
    how: str,
    city_zip: str,
    *,
    state_code: str | None,
    country_code: str | None,
    units: str,
) -> tuple[CurrentWeather, Location]:
    if how == "zip":
        cache = Cache()
        cache_hit = cache.get(city_zip)
        if cache_hit:
            if cache_hit.location:
                location = cache_hit.location
            else:
                location = await get_location_details(
                    how=how, city_zip=city_zip, state=state_code, country=country_code
                )
            if cache_hit.current_weather:
                current_weather = cache_hit.current_weather.current_weather
                return cache_hit.current_weather.current_weather, location
            else:
                url = build_url(
                    forecast_type="current",
                    units=units,
                    lon=location.lon,
                    lat=location.lat,
                )
                current_weather = await get_current_weather(url, how, city_zip)
                return current_weather, location

    location = await get_location_details(
        how=how, city_zip=city_zip, state=state_code, country=country_code
    )

    url = build_url(
        forecast_type="current",
        units=units,
        lon=location.lon,
        lat=location.lat,
    )
    current_weather = await get_current_weather(url, how, city_zip)
    return current_weather, location

async def _gather_one_call_weather(
    how: str,
    city_zip: str,
    *,
    state_code: str | None,
    country_code: str | None,
    units: str,
) -> tuple[OneCallWeather, Location]:
    if how == "zip":
        cache = Cache()
        cache_hit = cache.get(city_zip)
        if cache_hit:
            if cache_hit.location:
                location = cache_hit.location
            else:
                location = await get_location_details(
                    how=how, city_zip=city_zip, state=state_code, country=country_code
                )
            if cache_hit.one_call_weather:
                return cache_hit.one_call_weather.one_call_weather, location
            else:
                url = build_url(
                    forecast_type="daily", units=units, lon=location.lon, lat=location.lat
                )
                weather = await get_one_call_weather(url, how, city_zip)
                return weather, location

    location = await get_location_details(
        how=how, city_zip=city_zip, state=state_code, country=country_code
    )

    url = build_url(forecast_type="daily", units=units, lon=location.lon, lat=location.lat)
    weather = await get_one_call_weather(url, how, city_zip)
    return weather, location

Then show_current, show_daily, and show_hourly could call the appropriate function to get weather and location data:
async def show_daily(
    how: str,
    city_zip: str,
    *,
    state_code: str | None = None,
    country_code: str | None = None,
    units: str = "metric",
    am_pm: bool = False,
    temp_only: bool = False,
    terminal_width: int | None = None,
) -> None:
    if terminal_width:
        console.width = terminal_width

    with console.status("Getting weather..."):
        weather, location = await _gather_one_call_weather(
            how=how,
            city_zip=city_zip,
            state_code=state_code,
            country_code=country_code,
            units=units,
        )
        if not temp_only:
            console.print(daily_all(weather, units, am_pm, location))
        else:
            console.print(_daily_temp_only(weather, units, am_pm, location))

A side effect of this is the prints are only done in one place for each weather type so the print_weather closures can also be removed.

hi @sanders41 ,  This is completely new to me  and I am not so experienced in python as well . Is it fine if I ask you questions multiple times so that I can get a hang of open source ?

Yes, that is no problem at all. I’m happy to help.


add seasonal decomposition

Is your feature request related to a problem? Please describe.
provide a method to produce the seasonal decomposition
Describe the solution you'd like
a visual showing the trend, seasonality, and residual, similar to how its done in R.  Ensure visuals can be modified using Matplotlib, Seaborn or other.
Describe alternatives you've considered
currently we have to use statsmodels to run separate script to produce the decomposition

This seems like a very reasonable feature request. Could you provide an example of the output you're looking for? Maybe the statsmodels snippet?
Thanks!

@logisticregress Can you respond to the question above please?


Junk characters showing in AP name & HTML page

Sometimes when the portal starts the UART connection sends "junk" characters that appear at the end of the AP name and/or in the HTML page. I found that this happens more often when starting the portal quickly after opening the app.
I'm not sure if its some sort of noise/interference happening during the communication between the flipper & esp32.

I would recommend switching to FlipperFormat for the AP name configuration. It would change the format of the file but reading out data is pretty easy after that, you always get a key -> value pair out of each line and no random characters.
Let me know if you need help with it.

The issue is still occuring!


High autonomy to vassal states

Consider converting states with high autonomy in EU4 to separate vassal polities in Vic3 (mimicking Tripolitania and Egypt for the Ottomans at the 1836 start).
The calculation would be done on Vic3 state with values inherited from EU4.
A state would be eligible for secession if:
- OR
|- IS NOT in the same continent as the mother country's capital
|- AND
  |- IS of a different Vic3 culture as the mother country's
  |- Does not have a land connection with the mother country's capital
OR
|- AND
| |- Any province of it was part of a _state_ in EU4
| |- Average autonomy was higher than 50% (scaled by development)
|- AND
  |- NO province of it was part of a _state_ in EU4
  |- Average autonomy was higher than 95% (scaled by development)

Then, all seceeded states in the same Vic3 strategic region would be merged.
The policy of assigning tags for this seceeding states would be:

The namesake of the seceeding state tag if it does not exist on map already (using this configurable. It is possible not all states have one)
The primary tag of the culture if it does not exist on map already (indicated by configurables)
A dynamically generated country

The dynamically generated country would be named through nested locs as such:

State-wide: $[MOTHER COUNTRY TAG]_ADJ$ $[STATE KEY]$ (example: $BRZ_ADJ$ $STATE_NEW_YORK$ = Brazilian New York)
Strategic region-wide: $[MOTHER COUNTRY TAG]_ADJ$ $[REGION KEY]$ (example: $TUR_ADJ$ $region_north_africa$ = Turkish North Africa)

For the dynamically generated countries:

The tag will be F##, with hashes being numbers 00 through 99 (If more than 99 seceeding countries are generated, go with E through A). I'll call β this dynamic number
The tier will be forced to principality
The primary culture will be the one most prevalent in the land they are assigned
The RGB color will be generated by manipulating the mother country's RGB color, as [R+β G B-β] (of course, negatives will be forcibly reduced to 0)
The country history will be copied as from the mother country's

Sidenote: this thing applies only to country that are civilized in Vic3 and considered of kingdom rank of higher

While nominally an interesting idea if taken under CK2/3, in EU4 this will only lead to pain and suffering.
The AI will not uniformly distribute core states, it'll gun for most dev ones. Cutting away 80%+ autonomy territories will cause a godawful patchwork of core and vassal territory.
There is also the issue of diplomatic cost of maintaining a variety of puppets.
I'll leave this issue open but I doubt this is inherently a good idea. On paper, sure, in reality with EU4's AI - probably not.


New gildedrose

You are not supposed to create pull requests to my repository. I close it.

I'm sorry, I made a mistake.


Improve documentation on the datepicker, androidTheme option?

Documentation in question:
https://github.com/VitaliiBlagodir/cordova-plugin-datepicker#androidtheme---android
The instructions in the androidTheme option seem to be vague and very misleading. It says it requires an integer, yet the options are all strings. To find the correct number to use for one of the options, I had to look in the issues. Ended up finding this one https://github.com/VitaliiBlagodir/cordova-plugin-datepicker/issues/21, and went directly to the plugin files to check what the integer that I was looking for is.
It should be easier for developers to set the androidTheme. Ideally, they should not have to go to the plugin files to correctly set that option.

They are constants defined inside plugins.datePicker.ANDROID_THEMES
Just reference that in your javascript code and you'll get the correct integer.

Docs are wrong, the correct is use integer, but the example said strings...
var options = {
	date: new Date(),
	mode: 'date',
	androidTheme: 5,
};

@John-Henrique It does take in an integer, and by all means you can use an integer if you so prefer. The Docs do not imply to use a string, but a constant instead defined by the plugin.
The way to access the constants is by doing this:
var options = {
    ...
    androidTheme: plugins.datePicker.ANDROID_THEMES.THEME_DEVICE_DEFAULT_LIGHT
}

Hope that clears it up!

@SammyIsra when this plugin is installed every time when I click in input type "date", "time" or "datetime-local" is opened a datepicker/timepicker but every time the theme is dark. I understand is necessary call the code, but will be nice if plugin give a default theme for all project and no only when I call code. You agree?
var options = {
	date: new Date(),
	mode: 'date',
	androidTheme: plugins.datePicker.ANDROID_THEMES.THEME_DEVICE_DEFAULT_LIGHT,
};
datePicker.show(options, onSuccess, onError);


repokitteh: bring in review module

Description:
Bring in the review module, allows to:
# ask for review
/review @htuch
# remove reviewer
/unreview @htuch
# remove self as a reviewer
/unreview

Risk Level:
Low
Testing:
In this PR
Docs Changes:
Docs to be added soon.
Release Notes:
None

/rk-bless

/review @htuch

/unreview @htuch

/review @htuch

/rk-unbless


inactive pipeline isn't charged per month

[Enter feedback here]
Other Microsoft document shown below say that "An inactive pipeline is charged at $0.80 per month.".
https://azure.microsoft.com/en-us/pricing/details/data-factory/data-pipeline/

but this document doesn't mention that.
In fact, my team recieved a question from my customer asking if there was a ploblem even though customer's inactive pipeline wasn't charged.
Inactive pipeline doesn't seem to be charged.
Could you confirm and fix it ?

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

ID: 5ee2df95-5904-e9e5-be02-e6d3d4285c80
Version Independent ID: 8c07da4a-448c-4926-32fc-d673d35f8db8
Content: Plan to manage costs for Azure Data Factory - Azure Data Factory
Content Source: articles/data-factory/plan-manage-costs.md
Service: data-factory
Sub-service: pricing
GitHub Login: @ShirleyWangMSFT
Microsoft Alias: shwang

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

@t-htsuchiya : I was reviewing the doc : https://azure.microsoft.com/en-us/pricing/details/data-factory/data-pipeline/ and  to the best of my knowledge inactive pipeline are not charged . @ShirleyWangMSFT , please do us know if its not correct . Also do you know as to who can update the https://azure.microsoft.com/en-us/pricing/details/data-factory/data-pipeline/ ?

@ShirleyWangMSFT Could you please share your insights on customers ask? Thank  you.

@ShaikMaheer-MSFT Please re-assign to Wee Hyong Tok (user name dcstwh)

@ShirleyWangMSFT - As suggested, assigned to Wee Hyong Tok
@dcstwh - Could you please share your insights on customers ask? Thank you.

We will update the documentation.
Thank you for the feedback

#please-close


Change PSM ID with identifier in peak file

Fixes #70.
Addressing issue, we change PSM ID in the output mztab files, which only denotes the order in output file, to PSI standard identifier used in the peak file.

The first line in the Pytest error seems to indicate that there are no PSMs written in the output file:
self = Series([], Name: PSM_ID, dtype: object), key = 0

    def __getitem__(self, key):
        check_deprecated_indexers(key)
        key = com.apply_if_callable(key, self)

        if key is Ellipsis:
            return self

        key_is_scalar = is_scalar(key)
        if isinstance(key, (list, tuple)):
            key = unpack_1tuple(key)

        if is_integer(key) and self.index._should_fallback_to_positional:
>           return self._values[key]
E           IndexError: index 0 is out of bounds for axis 0 with size 0

/opt/hostedtoolcache/Python/3.10.8/x64/lib/python3.10/site-packages/pandas/core/series.py:978: IndexError

Although my approval might have been a bit hasty. We still need to add an extra test: predicting from multiple files. In that case, the different files should be reported as ms_run[x]-location in the mzTab header, and the PSMs should refer to the correct ms_run index. in the spectra_ref column This behavior is not correct yet in the current code.

I agree with @bittremieux!

Ok, I fixed the mapping from PSMs to input files. Can you do a new review before merging @wfondrie?

I reviewed Wout's changes and tests pass locally on a GPU machine - good to merge!


<EMAIL_ADDRESS>getting crashed while start the service

<EMAIL_ADDRESS>getting crashed while start the service

Hey @dassram17,
I had the same problem at Android 8 (API26+). I upgraded my working App from TargetApi 26 to TargetApi 28 (Android 8) and this Plugin didn't work anymore. It always caused a crash as the app started going into Background-Mode.
The Logs showed this error:
    --------- beginning of crash 2020-03-28 11:55:12.456 /? E/AndroidRuntime: FATAL EXCEPTION: main     Process:      android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x62 color=0x00000000 vis=PRIVATE)         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1945)         at android.os.Handler.dispatchMessage(Handler.java:107)         at android.os.Looper.loop(Looper.java:214)         at android.app.ActivityThread.main(ActivityThread.java:7356)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
As it says in the new documentation from Android 8:

Before you can deliver the notification on Android 8.0 and higher, you must register your app's notification channel with the system by passing an instance of NotificationChannel to createNotificationChannel(). So the following code is blocked by a condition on the SDK_INT version

https://developer.android.com/training/notify-user/build-notification
It works now with my adjustments
So the crash is caused, because the notification of this plugin has no channel defined. After I found out about this problem, I created a copy of this plugin. I created a Notification Channel and added it to the notification of this plugin. Now it works find, without crashes!
https://github.com/MaxKicw/background-activity-plugin
Hope it helps!
Not sure how we can merge my fix with this branch. Mabye need some help, If this ist possible :) @pmwisdom
Cheers,
Max

Hey @MaxKicw
I tried to install your plugin but i have hard time doing it. Can you provide which command i should use to install it?
I tried
cordova plugin add https://github.com/MaxKicw/cordova-background-geolocation-services.git --save
but it says:
`Failed to fetch plugin https://github.com/aklepaker/cordova-background-geolocation-services.git via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
CordovaError: Error: npm: Command failed with exit code 1 Error output:
npm ERR! Error while executing:
npm ERR! C:\Program Files\Git\cmd\git.EXE ls-remote -h -t https://github.com/aklepaker/cordova-background-geolocation-services.git
npm ERR!
npm ERR! Logon failed, use ctrl+c to cancel basic credential prompt.
npm ERR! remote: Invalid username or password.
npm ERR! fatal: Authentication failed for 'https://github.com/aklepaker/cordova-background-geolocation-services.git/'
npm ERR!
npm ERR! exited with error code: 128
npm ERR!      C:\Users\Adam\AppData\Roaming\npm-cache_logs\2020-12-24T11_42_04_811Z-debug.log`


I have error, when uploading SVG to FileUpload form.

Package
filament/filament
Package Version
v2.16.56
Laravel Version
v9.43.0
Livewire Version
v2.10.7
PHP Version
v8.1.13
Problem description
I have error, when uploading files to FileUpload form.
Expected behavior

If you click on the link in the console, my SVG will open.
Data and file name are written to the database correctly.

Steps to reproduce
add this form to resource
Forms\Components\FileUpload::make('icon')->image(),

when upload SVG file
Reproduction repository
https://github.com/starcevpro/filament-problem
Relevant log output
No response

Your APP_URL is set wrong.

Thanks, but now I have another problem, I will open a new issue


Executing fabric8:push over a project that previously run fabric8:build and whose image tag contains %t (multimodule project)

Description
When using
              <configuration>
                     <images>
                        <image>
                          <name>%g/%a:%t</name>

on both build execution config and global plugin config (because of multimodule project with centralized onfig), looks like the plugin resolves/reevaluates %t on second call (fabric8:push), so the image cannot be found, because it was generated previously with another timestamp
Info

f-m-p version : 4.3.1
Maven version (mvn -v) :3.6.2

I think this was related to https://github.com/fabric8io/fabric8-maven-plugin/issues/1093 . I won't advise using timestamps as tags

My problem seemed to be a Maven one, if you have a  associated to an execution binded to resources/build goals but not push, the %t is reevaluated

@nightswimmings : Hi, we have migrated the project to https://github.com/eclipse/jkube. Would it be possible for you to migate[0] to JKube and provide feedback. Migration is as easy as running these goals:
mvn org.eclipse.jkube:kubernetes-maven-plugin:migrate

[0] https://www.eclipse.org/jkube/docs/migration-guide/

I would suggest creating a new issue on the Eclipse JKube repository

It is not possible for me now though I'm eager to do it soon! But anyway, it has nothing to do with fabric8. Well, perhaps it could handle it by making the push fail by default if the image has not been generated with expected name or considering the artifact from previous goals regardless actual config.  I might be wrong on the analysis though

ohk, I see. In case you face any issues feel free to reach out to us via these channels:
Github: https://github.com/eclipse/jkube/issues
Gitter: https://gitter.im/eclipse/jkube
Mailing List: https://accounts.eclipse.org/mailing-list/jkube-dev


Plan and implement the replacement counterfactual for wealth quintiles

Best idea yet that avoids a lot of the issues around the FEM causal pathway and the difficulty in predicting wealth or income is to do a 'replacement counterfactual'.
This is where we divide our replenishing population into quintiles based on wealth, then 'replace' or impute the risk behaviour and health status of one of the wealthier quintiles onto the poorest quintile, and simulate the population. We are assuming here that wealth is related to all of these characteristics, and so by changing them to look like the wealthier groups we are effectively intervening on wealth without having to use that explicitly as an input to our transition models (which is complicated given the 'causal pathway' of our model - risk behaviours -> chronic disease & disability -> economic outcomes).
This has to be a cohort simulation as trying to scale this up to the whole population is much much more complex.
First steps:

[x] Divide replenishing population into quintiles based on wealth
[ ] Generate distribution of chronic disease, disability, and risk behaviours for a richer group (median or above)
[ ] Think about IPF for re-weighting the low wealth group to values of the high wealth group

This can be crude at first, just get something running first and improve it later
Will need it to run differently for things like variable type (BMI - continuous, ADLs - ordinal, chronic diseases - binary)

[ ] If IPF is a no go, then research how to do this differently (and talk to Rob)

Have created 3 different replacement scenarios:

risk_quint3: Swapped risk behaviour info from quint 3 (median) onto quint 1 (poorest)
risk_quint4: Swapped risk behaviour info from quint 4 onto quint 1
rdh_quint4: Swapped risk behaviour, disability status, and health status from quint 4 onto quint 1

All three show nice effects in both survival and risk behaviour, to differing levels. See the R document for the code to generate the replaced populations and visualisations of differences in prevalence of things like survival, anydisease, disability, severeCondition etc. (couldn't upload)


Error building qt5 on Windows 10

Hi,
When I tried to run .\vcpkg install qt5, I got this output:
Computing installation plan...
The following packages will be built and installed:
  * freeglut[core]:x86-windows
  * icu[core]:x86-windows
  * jasper[core]:x86-windows
  * libpq[core,openssl,zlib]:x86-windows
  * libwebp[core,nearlossless,simd,unicode]:x86-windows
  * opengl[core]:x86-windows
  * openssl[core]:x86-windows
  * openssl-windows[core]:x86-windows
  * pcre2[core]:x86-windows
    qt5[activeqt,core,declarative,essentials,imageformats,multimedia,networkauth,quickcontrols2,svg,tools]:x86-windows
  * qt5-activeqt[core]:x86-windows
  * qt5-base[core]:x86-windows
  * qt5-declarative[core]:x86-windows
  * qt5-imageformats[core]:x86-windows
  * qt5-multimedia[core]:x86-windows
  * qt5-networkauth[core]:x86-windows
  * qt5-quickcontrols2[core]:x86-windows
  * qt5-svg[core]:x86-windows
  * qt5-tools[core]:x86-windows
  * sqlite3[core]:x86-windows
Additional packages (*) will be modified to complete this operation.
Starting package 1/20: icu:x86-windows
Building package icu[core]:x86-windows...
-- Using cached C:/Users/Anh Tran/Downloads/vcpkg/downloads/icu4c-65_1-src.tgz
-- Using source at C:/Users/Anh Tran/Downloads/vcpkg/buildtrees/icu/src/c-65_1-src-702c9cff96
-- Acquiring MSYS Packages...
-- Acquiring MSYS Packages... OK
-- Configuring x86-windows-rel
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:72 (message):
    Command failed: "C:/Users/Anh Tran/Downloads/vcpkg/downloads/tools/msys2/msys64/usr/bin/bash.exe" --noprofile --norc -c "C:/Users/Anh Tran/Downloads/vcpkg/buildtrees/icu/src/c-65_1-src-702c9cff96/source/runConfigureICU MSYS/MSVC --disable-samples --disable-tests --disable-static --enable-shared --host=i686-pc-mingw32 --disable-debug --enable-release --prefix=C:/Users/Anh Tran/Downloads/vcpkg/packages/icu_x86-windows"
    Working Directory: C:/Users/Anh Tran/Downloads/vcpkg/buildtrees/icu/x86-windows-rel
    Error code: 127
    See logs for more information:
      C:\Users\Anh Tran\Downloads\vcpkg\buildtrees\icu\configure-x86-windows-rel-err.log

Call Stack (most recent call first):
  ports/icu/portfile.cmake:102 (vcpkg_execute_required_process)
  scripts/ports.cmake:90 (include)

Error: Building package icu:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: icu:x86-windows
  Vcpkg version: 2020.02.04-nohash

Additionally, attach any relevant sections from the log files above.

In configure-x86-windows-rel-err.log, I got this one line log:
/usr/bin/bash: C:/Users/Anh: No such file or directory
It seems pretty obvious why this is the error since the actual directory is C:/Users/Anh Tran. Is there any way for me to modify the bash file? The one I found (C:/Users/Anh Tran/Downloads/vcpkg/downloads/tools/msys2/msys64/usr/bin/bash.exe) is in binary.

You should keep vcpkg in a path without spaces. This is especially important for port files using msys2 for build.
Please move your vcpkg folder in C:\, like C:\vcpkg\

Error building qt5 on Windows 10

Please change the title to "Error building icu on Windows 10"
And yeah spaces in paths are a problem and vcpkg should probably warn about that everytime it detects a space in the current vcpkg root or downloads location.

It seems changing the directory of vcpkg solve the problem. Thanks!