Feature/issue 125 cholesky derivative

Summary:
Introduces var specialization of cholesky_decompose
Intended Effect:
Wall-time boost of about about 30% to 50% over currently implemented naive autodiff-through-Eigen version, memory use O(D^2) instead of O(D^3).
How to Verify:
./runTests.py test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
runs two gradient tests comparing results to finite diff.
Side Effects:
None.
Documentation:
Included in code.
Reviewer Suggestions:
Anyone

drops the mic, quits
On Thursday, July 30, 2015, Rob Trangucci<EMAIL_ADDRESS>wrote:

Summary:
Introduces var specialization of cholesky_decompose
Intended Effect:
Wall-time boost of about about 30% to 50% over currently implemented naive
autodiff-through-Eigen version, memory use O(D^2) instead of O(D^3).
How to Verify:
./runTests.py test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
runs two gradient tests comparing results to finite diff.
Side Effects:
None.
Documentation:
Included in code.
Reviewer Suggestions:
Anyone
You can view, comment on, or merge this pull request online at:
https://github.com/stan-dev/math/pull/135
Commit Summary

b f/i-125 first cut at cholesky derivative structure
b f/i-125 analytic cholesky derivative works
b f/i-125 wall-clock about as fast as Eigen, with 1/10th
b f/i-125 sparse Eigen version, much slower than scalars
b f/i-125 fastest implementation currently
b f/i-125 cholesky-derivative nearly complete for _test.hpp
b f/i-125 indexing fixed
b f/i-125 cleaned up file
b f/i-125 separate gradient rev tests from higher-order tests
b f/i-125 documentation and speedup, tests
b f/i-125 more doc
Merge branch 'develop' into feature/issue-125-cholesky-derivative

File Changes

A stan/math/rev/mat/fun/cholesky_decompose.hpp
https://github.com/stan-dev/math/pull/135/files#diff-0 (170)
M test/unit/math/mix/mat/fun/cholesky_decompose_test.cpp
https://github.com/stan-dev/math/pull/135/files#diff-1 (45)
M test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
https://github.com/stan-dev/math/pull/135/files#diff-2 (133)

Patch Links:

https://github.com/stan-dev/math/pull/135.patch
https://github.com/stan-dev/math/pull/135.diff

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135.

Ha, just wait, it'll fail unit tests and/or cpplint soon.
Rob

On Jul 30, 2015, at 7:10 PM, Jonah Gabry<EMAIL_ADDRESS>wrote:
drops the mic, quits
On Thursday, July 30, 2015, Rob Trangucci<EMAIL_ADDRESS>wrote:

Summary:
Introduces var specialization of cholesky_decompose
Intended Effect:
Wall-time boost of about about 30% to 50% over currently implemented naive
autodiff-through-Eigen version, memory use O(D^2) instead of O(D^3).
How to Verify:
./runTests.py test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
runs two gradient tests comparing results to finite diff.
Side Effects:
None.
Documentation:
Included in code.
Reviewer Suggestions:
Anyone
You can view, comment on, or merge this pull request online at:
https://github.com/stan-dev/math/pull/135
Commit Summary

b f/i-125 first cut at cholesky derivative structure
b f/i-125 analytic cholesky derivative works
b f/i-125 wall-clock about as fast as Eigen, with 1/10th
b f/i-125 sparse Eigen version, much slower than scalars
b f/i-125 fastest implementation currently
b f/i-125 cholesky-derivative nearly complete for _test.hpp
b f/i-125 indexing fixed
b f/i-125 cleaned up file
b f/i-125 separate gradient rev tests from higher-order tests
b f/i-125 documentation and speedup, tests
b f/i-125 more doc
Merge branch 'develop' into feature/issue-125-cholesky-derivative

File Changes

A stan/math/rev/mat/fun/cholesky_decompose.hpp
https://github.com/stan-dev/math/pull/135/files#diff-0 (170)
M test/unit/math/mix/mat/fun/cholesky_decompose_test.cpp
https://github.com/stan-dev/math/pull/135/files#diff-1 (45)
M test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
https://github.com/stan-dev/math/pull/135/files#diff-2 (133)

Patch Links:

https://github.com/stan-dev/math/pull/135.patch
https://github.com/stan-dev/math/pull/135.diff

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135.

—
Reply to this email directly or view it on GitHub.

Rob's not quitting Stan, he's just changing day jobs :-)
I do love those memory numbers.
I'd also say Ben or Marcus should be reviewing this one,
but I think they already weighed in on the linear algebra side.

Bob

On Jul 30, 2015, at 7:10 PM, Jonah Gabry<EMAIL_ADDRESS>wrote:
drops the mic, quits
On Thursday, July 30, 2015, Rob Trangucci<EMAIL_ADDRESS>wrote:

Summary:
Introduces var specialization of cholesky_decompose
Intended Effect:
Wall-time boost of about about 30% to 50% over currently implemented naive
autodiff-through-Eigen version, memory use O(D^2) instead of O(D^3).
How to Verify:
./runTests.py test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
runs two gradient tests comparing results to finite diff.
Side Effects:
None.
Documentation:
Included in code.
Reviewer Suggestions:
Anyone
You can view, comment on, or merge this pull request online at:
https://github.com/stan-dev/math/pull/135
Commit Summary

b f/i-125 first cut at cholesky derivative structure
b f/i-125 analytic cholesky derivative works
b f/i-125 wall-clock about as fast as Eigen, with 1/10th
b f/i-125 sparse Eigen version, much slower than scalars
b f/i-125 fastest implementation currently
b f/i-125 cholesky-derivative nearly complete for _test.hpp
b f/i-125 indexing fixed
b f/i-125 cleaned up file
b f/i-125 separate gradient rev tests from higher-order tests
b f/i-125 documentation and speedup, tests
b f/i-125 more doc
Merge branch 'develop' into feature/issue-125-cholesky-derivative

File Changes

A stan/math/rev/mat/fun/cholesky_decompose.hpp
https://github.com/stan-dev/math/pull/135/files#diff-0 (170)
M test/unit/math/mix/mat/fun/cholesky_decompose_test.cpp
https://github.com/stan-dev/math/pull/135/files#diff-1 (45)
M test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp
https://github.com/stan-dev/math/pull/135/files#diff-2 (133)

Patch Links:

https://github.com/stan-dev/math/pull/135.patch
https://github.com/stan-dev/math/pull/135.diff

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135.

—
Reply to this email directly or view it on GitHub.

@syclik ? The error on travis says
test/prob/generate_tests.cpp:9:10: fatal error: 'boost/algorithm/string.hpp'
      file not found
#include <boost/algorithm/string.hpp>

I'll take a look tonight.
On Sunday, August 2, 2015, Rob Trangucci<EMAIL_ADDRESS>wrote:

@syclik https://github.com/syclik ? The error on travis says
test/prob/generate_tests.cpp:9:10: fatal error: 'boost/algorithm/string.hpp'
file not found
#include <boost/algorithm/string.hpp>
—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-127076511.

Thanks Daniel
Rob
On Sun, Aug 2, 2015 at 7:42 PM, Daniel Lee<EMAIL_ADDRESS>wrote:

I'll take a look tonight.
On Sunday, August 2, 2015, Rob Trangucci<EMAIL_ADDRESS>wrote:

@syclik https://github.com/syclik ? The error on travis says
test/prob/generate_tests.cpp:9:10: fatal error:
'boost/algorithm/string.hpp'
file not found
#include <boost/algorithm/string.hpp>
—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-127076511.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-127084282.

@bob-carpenter @syclik I think this is probably ready for code review whenever you're ready. Thanks guys.

Can you get Marcus or Ben to review it?

On Aug 3, 2015, at 10:05 PM, Rob Trangucci<EMAIL_ADDRESS>wrote:
@bob-carpenter @syclik I think this is probably ready for code review whenever you're ready. Thanks guys.
—
Reply to this email directly or view it on GitHub.

@bgoodri Would you be able to take a look at this? @bob-carpenter I had @mbrubake look at my code, it sounded like he thought the code was up to snuff from a C++-optimization standpoint. That's actually why I wanted you to look at it too, because I thought you'd have a good perspective on memory allocation, etc.

I had separately given Rob my feedback and suggestions on the vari implementation so I don't really have much to add there.
One thing though which is missing is a gradient test which doesn't use the constrained transformation.  The tricky thing about getting the (autodiff) gradients of something like Cholesky correct is how to properly handle the symmetry when propagating the derivatives.  For instance, it's common for the gradient of the upper or lower triangular portion to be zero when it shouldn't be or to be off by a factor of 2.  @rtrangucci can you add tests which don't use cov_matrix_constrain and instead look at the FD and AD gradients wrt the full matrix?

I'm not sure if it is best to have .coeffRef() on both the left-hand side and the right-hand side of the assignment. If you look at something like the bottom of http://eigen.tuxfamily.org/dox/EigenSolver_8h_source.html , they do .coeffRef() on the left and .coef() on the right.

A reference on the right avoids copying the var.  From a quick glance at what @bgoodri referenced, it looks like the Eigen examples are all scalars.
I wish all of our code got this much scrutiny!  Development would slow down, but it'd be great for code quality.

Ok. That makes sense.
On Aug 5, 2015 1:41 AM, "Bob Carpenter"<EMAIL_ADDRESS>wrote:

A reference on the right avoids copying the var. From a quick glance at
what @bgoodri referenced, it looks like the Eigen examples are all scalars.
I wish all of our code got this much scrutiny! Development would slow
down, but it'd be great for code quality.
—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-127867909.

sorry -- I took the back-seat on this one. what's left to do on this pull request?

No worries, I need to add the tests that Marcus asked for, and address Bob's comments. On my end, all I need to do at add Marcus's tests, I've already taken care of Bob's comments.
Rob

On Aug 11, 2015, at 10:18 PM, Daniel Lee<EMAIL_ADDRESS>wrote:
sorry -- I took the back-seat on this one. what's left to do on this pull request?
—
Reply to this email directly or view it on GitHub.

@mbrubake I added another gradient test, test_gradients_simple, that should take care of your comment above about gradient tests that don't rely on the cov_matrix_constrain

Yikes, this is a new error after merging the newest develop. I'll investigate.

with -fsanitize=address -g -O0
test/unit/math/rev/mat/fun/cholesky_decompose_test --gtest_output="xml:test/unit/math/rev/mat/fun/cholesky_decompose_test.xml"
Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
 In gdb,
(gdb) run
Starting program: /opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 3 tests from AgradRevMatrix
[ RUN      ] AgradRevMatrix.mat_cholesky
[       OK ] AgradRevMatrix.mat_cholesky (0 ms)
[ RUN      ] AgradRevMatrix.exception_mat_cholesky
[       OK ] AgradRevMatrix.exception_mat_cholesky (0 ms)
[ RUN      ] AgradRevMatrix.mat_cholesky_1st_deriv
*** Error in `/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test': double free or corruption (out): 0x000000000072f6c0 ***

Program received signal SIGABRT, Aborted.
0x00007ffff6fb9107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff6fb9107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6fba4e8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff6ff7214 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff6ffc9ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff6ffd6f6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x000000000040bcf5 in Eigen::internal::aligned_free (ptr=0x72f6c0) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:243
#6  0x000000000041d75a in Eigen::internal::conditional_aligned_free<true> (ptr=0x72f6c0) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:317
#7  0x0000000000417628 in Eigen::internal::conditional_aligned_delete_auto<stan::math::var, true> (ptr=0x72f6c0, size=81) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:445
#8  0x0000000000410dc9 in Eigen::DenseStorage<stan::math::var, -1, -1, -1, 0>::~DenseStorage (this=0x7fffffffd860, __in_chrg=<optimized out>)
    at lib/eigen_3.2.4/Eigen/src/Core/DenseStorage.h:236
#9  0x000000000040e7f8 in Eigen::PlainObjectBase<Eigen::Matrix<stan::math::var, -1, -1, 0, -1, -1> >::~PlainObjectBase (this=0x7fffffffd860, __in_chrg=<optimized out>)
    at lib/eigen_3.2.4/Eigen/src/Core/PlainObjectBase.h:88
#10 0x000000000040e814 in Eigen::Matrix<stan::math::var, -1, -1, 0, -1, -1>::~Matrix (this=0x7fffffffd860, __in_chrg=<optimized out>) at lib/eigen_3.2.4/Eigen/src/Core/Matrix.h:127
#11 0x0000000000419bd8 in chol_functor::operator()<stan::math::var> (this=0x728af0, x=...) at test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:46
#12 0x0000000000412b01 in stan::math::gradient<chol_functor> (f=..., x=..., fx=@0x727f70: 3.7989516472387148e+131, grad_fx=...) at ./stan/math/rev/mat/functor/gradient.hpp:54
#13 0x0000000000408527 in test_gradients (size=9) at test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:115
#14 0x000000000040a78c in AgradRevMatrix_mat_cholesky_1st_deriv_Test::TestBody (this=0x7272e0) at test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:247
#15 0x000000000048c8a0 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (object=0x7272e0, method=&virtual testing::Test::TestBody(),
    location=0x4b205b "the test body") at lib/gtest_1.7.0/src/gtest.cc:2078
#16 0x00000000004880c2 in testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=0x7272e0, method=&virtual testing::Test::TestBody(),
    location=0x4b205b "the test body") at lib/gtest_1.7.0/src/gtest.cc:2114
#17 0x000000000046f1de in testing::Test::Run (this=0x7272e0) at lib/gtest_1.7.0/src/gtest.cc:2151
#18 0x000000000046f9ee in testing::TestInfo::Run (this=0x727300) at lib/gtest_1.7.0/src/gtest.cc:2326
#19 0x0000000000470095 in testing::TestCase::Run (this=0x727070) at lib/gtest_1.7.0/src/gtest.cc:2444
#20 0x0000000000476999 in testing::internal::UnitTestImpl::RunAllTests (this=0x726d50) at lib/gtest_1.7.0/src/gtest.cc:4315
#21 0x000000000048dcaa in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x726d50,
    method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x4766f2 <testing::internal::UnitTestImpl::RunAllTests()>,
    location=0x4b28f0 "auxiliary test code (environments or event listeners)") at lib/gtest_1.7.0/src/gtest.cc:2078
#22 0x0000000000488ea2 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x726d50,
    method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl * const)) 0x4766f2 <testing::internal::UnitTestImpl::RunAllTests()>,
    location=0x4b28f0 "auxiliary test code (environments or event listeners)") at lib/gtest_1.7.0/src/gtest.cc:2114
#23 0x00000000004756eb in testing::UnitTest::Run (this=0x704020 <testing::UnitTest::GetInstance()::instance>) at lib/gtest_1.7.0/src/gtest.cc:3926
#24 0x000000000040561d in RUN_ALL_TESTS () at lib/gtest_1.7.0/include/gtest/gtest.h:2288
#25 0x00000000004055b7 in main (argc=1, argv=0x7fffffffe018) at lib/gtest_1.7.0/src/gtest_main.cc:37

Was there a version of this working that we can revert to for the
next release?  It doesn't need to be optimally efficient, but it does
need to pass tests before we can put it in.

Bob

On Aug 21, 2015, at 4:21 PM, bgoodri<EMAIL_ADDRESS>wrote:
But the test actually survives the previous problem and aborts later on a double free. In gdb,
(gdb) run
Starting program: /opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 3 tests from AgradRevMatrix
[ RUN      ] AgradRevMatrix.mat_cholesky
[       OK ] AgradRevMatrix.mat_cholesky (0 ms)
[ RUN      ] AgradRevMatrix.exception_mat_cholesky
[       OK ] AgradRevMatrix.exception_mat_cholesky (0 ms)
[ RUN      ] AgradRevMatrix.mat_cholesky_1st_deriv
*** Error in `/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test': double free or corruption (out): 0x000000000072f6c0 ***
Program received signal SIGABRT, Aborted.
0x00007ffff6fb9107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff6fb9107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff6fba4e8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff6ff7214 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff6ffc9ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff6ffd6f6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x000000000040bcf5 in Eigen::internal::aligned_free (ptr=0x72f6c0) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:243
#6  0x000000000041d75a in Eigen::internal::conditional_aligned_free (ptr=0x72f6c0) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:317
#7  0x0000000000417628 in Eigen::internal::conditional_aligned_delete_auto<stan::math::var, true> (ptr=0x72f6c0, size=81) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:445
#8  0x0000000000410dc9 in Eigen::DenseStorage<stan::math::var, -1, -1, -1, 0>::~DenseStorage (this=0x7fffffffd860, __in_chrg=)
at lib/eigen_3.2.4/Eigen/src/Core/DenseStorage.h:236
#9  0x000000000040e7f8 in Eigen::PlainObjectBase<Eigen::Matrix<stan::math::var, -1, -1, 0, -1, -1> >::~PlainObjectBase (this=0x7fffffffd860, __in_chrg=)
at lib/eigen_3.2.4/Eigen/src/Core/PlainObjectBase.h:88
#10 0x000000000040e814 in Eigen::Matrix<stan::math::var, -1, -1, 0, -1, -1>::~Matrix (this=0x7fffffffd860, __in_chrg=) at lib/eigen_3.2.4/Eigen/src/Core/Matrix.h:127
#11 0x0000000000419bd8 in chol_functor::operator()stan::math::var (this=0x728af0, x=...) at test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:46
#12 0x0000000000412b01 in stan::math::gradient<chol_functor> (f=..., x=..., fx=@0x727f70: 3.7989516472387148e+131, grad_fx=...) at ./stan/math/rev/mat/functor/gradient.hpp:54
#13 0x0000000000408527 in test_gradients (size=9) at test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:115
#14 0x000000000040a78c in AgradRevMatrix_mat_cholesky_1st_deriv_Test::TestBody (this=0x7272e0) at test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:247
#15 0x000000000048c8a0 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (object=0x7272e0, method=&virtual testing::Test::TestBody(),
location=0x4b205b "the test body") at lib/gtest_1.7.0/src/gtest.cc:2078
#16 0x00000000004880c2 in testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=0x7272e0, method=&virtual testing::Test::TestBody(),
location=0x4b205b "the test body") at lib/gtest_1.7.0/src/gtest.cc:2114
#17 0x000000000046f1de in testing::Test::Run (this=0x7272e0) at lib/gtest_1.7.0/src/gtest.cc:2151
#18 0x000000000046f9ee in testing::TestInfo::Run (this=0x727300) at lib/gtest_1.7.0/src/gtest.cc:2326
#19 0x0000000000470095 in testing::TestCase::Run (this=0x727070) at lib/gtest_1.7.0/src/gtest.cc:2444
#20 0x0000000000476999 in testing::internal::UnitTestImpl::RunAllTests (this=0x726d50) at lib/gtest_1.7.0/src/gtest.cc:4315
#21 0x000000000048dcaa in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x726d50,
method=(bool (testing::internal::UnitTestImpl::)(testing::internal::UnitTestImpl * const)) 0x4766f2 testing::internal::UnitTestImpl::RunAllTests(),
location=0x4b28f0 "auxiliary test code (environments or event listeners)") at lib/gtest_1.7.0/src/gtest.cc:2078
#22 0x0000000000488ea2 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x726d50,
method=(bool (testing::internal::UnitTestImpl::)(testing::internal::UnitTestImpl * const)) 0x4766f2 testing::internal::UnitTestImpl::RunAllTests(),
location=0x4b28f0 "auxiliary test code (environments or event listeners)") at lib/gtest_1.7.0/src/gtest.cc:2114
#23 0x00000000004756eb in testing::UnitTest::Run (this=0x704020 testing::UnitTest::GetInstance()::instance) at lib/gtest_1.7.0/src/gtest.cc:3926
#24 0x000000000040561d in RUN_ALL_TESTS () at lib/gtest_1.7.0/include/gtest/gtest.h:2288
#25 0x00000000004055b7 in main (argc=1, argv=0x7fffffffe018) at lib/gtest_1.7.0/src/gtest_main.cc:37
—
Reply to this email directly or view it on GitHub.

I tried to git bisect it and as usual, didn't make much headway due to
intermediate commits being broken (some of which being commits previously
in develop that got merged into this branch).
On Fri, Aug 21, 2015 at 10:45 PM, Bob Carpenter<EMAIL_ADDRESS>wrote:

Was there a version of this working that we can revert to for the
next release? It doesn't need to be optimally efficient, but it does
need to pass tests before we can put it in.

Bob

On Aug 21, 2015, at 4:21 PM, bgoodri<EMAIL_ADDRESS>wrote:
But the test actually survives the previous problem and aborts later on
a double free. In gdb,
(gdb) run
Starting program:
/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test

[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".
Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 3 tests from AgradRevMatrix
[ RUN ] AgradRevMatrix.mat_cholesky
[ OK ] AgradRevMatrix.mat_cholesky (0 ms)
[ RUN ] AgradRevMatrix.exception_mat_cholesky
[ OK ] AgradRevMatrix.exception_mat_cholesky (0 ms)
[ RUN ] AgradRevMatrix.mat_cholesky_1st_deriv
*** Error in
`/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test':
double free or corruption (out): 0x000000000072f6c0 ***
Program received signal SIGABRT, Aborted.
0x00007ffff6fb9107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff6fb9107 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff6fba4e8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6ff7214 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ffff6ffc9ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x00007ffff6ffd6f6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#5 0x000000000040bcf5 in Eigen::internal::aligned_free (ptr=0x72f6c0) at
lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:243
#6 0x000000000041d75a in Eigen::internal::conditional_aligned_free
(ptr=0x72f6c0) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:317
#7 0x0000000000417628 in
Eigen::internal::conditional_aligned_delete_auto<stan::math::var, true>
(ptr=0x72f6c0, size=81) at lib/eigen_3.2.4/Eigen/src/Core/util/Memory.h:445
#8 0x0000000000410dc9 in Eigen::DenseStorage<stan::math::var, -1, -1,
-1, 0>::~DenseStorage (this=0x7fffffffd860, __in_chrg=)
at lib/eigen_3.2.4/Eigen/src/Core/DenseStorage.h:236
#9 0x000000000040e7f8 in
Eigen::PlainObjectBase<Eigen::Matrix<stan::math::var, -1, -1, 0, -1, -1>
::~PlainObjectBase (this=0x7fffffffd860, __in_chrg=)
at lib/eigen_3.2.4/Eigen/src/Core/PlainObjectBase.h:88
#10 0x000000000040e814 in Eigen::Matrix<stan::math::var, -1, -1, 0, -1,
-1>::~Matrix (this=0x7fffffffd860, __in_chrg=) at
lib/eigen_3.2.4/Eigen/src/Core/Matrix.h:127
#11 0x0000000000419bd8 in chol_functor::operator()stan::math::var
(this=0x728af0, x=...) at
test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:46
#12 0x0000000000412b01 in stan::math::gradient<chol_functor> (f=...,
x=..., fx=@0x727f70: 3.7989516472387148e+131, grad_fx=...) at
./stan/math/rev/mat/functor/gradient.hpp:54
#13 0x0000000000408527 in test_gradients (size=9) at
test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:115
#14 0x000000000040a78c in
AgradRevMatrix_mat_cholesky_1st_deriv_Test::TestBody (this=0x7272e0) at
test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:247
#15 0x000000000048c8a0 in
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
void> (object=0x7272e0, method=&virtual testing::Test::TestBody(),
location=0x4b205b "the test body") at lib/gtest_1.7.0/src/gtest.cc:2078
#16 0x00000000004880c2 in
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>
(object=0x7272e0, method=&virtual testing::Test::TestBody(),
location=0x4b205b "the test body") at lib/gtest_1.7.0/src/gtest.cc:2114
#17 0x000000000046f1de in testing::Test::Run (this=0x7272e0) at
lib/gtest_1.7.0/src/gtest.cc:2151
#18 0x000000000046f9ee in testing::TestInfo::Run (this=0x727300) at
lib/gtest_1.7.0/src/gtest.cc:2326
#19 0x0000000000470095 in testing::TestCase::Run (this=0x727070) at
lib/gtest_1.7.0/src/gtest.cc:2444
#20 0x0000000000476999 in testing::internal::UnitTestImpl::RunAllTests
(this=0x726d50) at lib/gtest_1.7.0/src/gtest.cc:4315
#21 0x000000000048dcaa in
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool> (object=0x726d50,
method=(bool
(testing::internal::UnitTestImpl::)(testing::internal::UnitTestImpl *
const)) 0x4766f2 testing::internal::UnitTestImpl::RunAllTests(),
location=0x4b28f0 "auxiliary test code (environments or event
listeners)") at lib/gtest_1.7.0/src/gtest.cc:2078
#22 0x0000000000488ea2 in
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool> (object=0x726d50,
method=(bool
(testing::internal::UnitTestImpl::)(testing::internal::UnitTestImpl *
const)) 0x4766f2 testing::internal::UnitTestImpl::RunAllTests(),
location=0x4b28f0 "auxiliary test code (environments or event
listeners)") at lib/gtest_1.7.0/src/gtest.cc:2114
#23 0x00000000004756eb in testing::UnitTest::Run (this=0x704020
testing::UnitTest::GetInstance()::instance) at
lib/gtest_1.7.0/src/gtest.cc:3926
#24 0x000000000040561d in RUN_ALL_TESTS () at
lib/gtest_1.7.0/include/gtest/gtest.h:2288
#25 0x00000000004055b7 in main (argc=1, argv=0x7fffffffe018) at
lib/gtest_1.7.0/src/gtest_main.cc:37

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-133628391.

I think we're just going to all have to stare at this until we figure out the memory problem. The -fsanitize=address thing points to a heap-buffer-overflow at line 155 of cholesky_decompose.hpp, which is the last line of the inner loop here
      for (size_type j = 0; j < L.cols(); ++j) {
        for (size_type i = j; i <= L.cols(); ++i) { # should this be i < L.cols(); ?
          accum_i += i;
          size_t pos = j + accum_i;
          L.coeffRef(i, j).vi_ = baseVari->variRefL_[pos];
        }

which seems to suggest that pos gets too big. I put in print statement one line prior to that and got just before it blows up
pos = 0 should be at most 2
pos = 1 should be at most 2
pos = 3 should be at most 2
pos = 2 should be at most 2
pos = 4 should be at most 2

which seems like an odd way of counting up to something that is too big. Then I changed the inner loop to continue only until i < L.cols(); and then I got
pos = 0 should be at most 2
pos = 1 should be at most 2
pos = 2 should be at most 2

which causes the test to pass so I am going to push that.
But if I leave -fsanitize=address in then I hit a different error (now a stack-buffer-overflow)
==11240==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffeddbc2cb8 at pc 0x0000004170ce bp 0x7ffeddbc2a40 sp 0x7ffeddbc2a38
READ of size 8 at 0x7ffeddbc2cb8 thread T0
    #0 0x4170cd in stan::math::value_of(stan::math::var const&) (/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test+0x4170cd)
    #1 0x40e9ea in var_dot<Eigen::Block<const Eigen::Matrix<stan::math::var, -1, -1>, 1, -1, false>, Eigen::Block<const Eigen::Matrix<stan::math::var, -1, -1>, -1, 1, true> > stan/math/rev/mat/fun/dot_product.hpp:68
    #2 0x40e5b1 in dot_product_vari<Eigen::Block<const Eigen::Matrix<stan::math::var, -1, -1>, 1, -1, false>, Eigen::Block<const Eigen::Matrix<stan::math::var, -1, -1>, -1, 1, true> > stan/math/rev/mat/fun/dot_product.hpp:165
    #3 0x42149a in boost::enable_if_c<boost::is_same<stan::math::var, stan::math::var>::value||boost::is_same<stan::math::var, stan::math::var>::value, Eigen::Matrix<stan::math::var, -1, -1, ((Eigen::._123)0)|((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)1) : ((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)0) : ((Eigen::._123)0))), -1, -1> >::type stan::math::multiply<stan::math::var, -1, -1, stan::math::var, -1, -1>(Eigen::Matrix<stan::math::var, -1, -1, ((Eigen::._123)0)|((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)1) : ((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)0) : ((Eigen::._123)0))), -1, -1> const&, Eigen::Matrix<stan::math::var, -1, -1, ((Eigen::._123)0)|((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)1) : ((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)0) : ((Eigen::._123)0))), -1, -1> const&) (/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test+0x42149a)
    #4 0x40d52b in AgradRevMatrix_mat_cholesky_Test::TestBody() test/unit/math/rev/mat/fun/cholesky_decompose_test.cpp:213
    #5 0x4ca643 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) lib/gtest_1.7.0/src/gtest.cc:2078
    #6 0x4c35c1 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) lib/gtest_1.7.0/src/gtest.cc:2114
    #7 0x49eb25 in testing::Test::Run() lib/gtest_1.7.0/src/gtest.cc:2151
    #8 0x49f719 in testing::TestInfo::Run() lib/gtest_1.7.0/src/gtest.cc:2326
    #9 0x4a001d in testing::TestCase::Run() lib/gtest_1.7.0/src/gtest.cc:2444
    #10 0x4a9f9c in testing::internal::UnitTestImpl::RunAllTests() lib/gtest_1.7.0/src/gtest.cc:4315
    #11 0x4cc934 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) lib/gtest_1.7.0/src/gtest.cc:2078
    #12 0x4c4d11 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) lib/gtest_1.7.0/src/gtest.cc:2114
    #13 0x4a7dee in testing::UnitTest::Run() lib/gtest_1.7.0/src/gtest.cc:3926
    #14 0x40614a in RUN_ALL_TESTS() lib/gtest_1.7.0/include/gtest/gtest.h:2288
    #15 0x4060a6 in main lib/gtest_1.7.0/src/gtest_main.cc:37
    #16 0x7ff30690ab44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b44)
    #17 0x405fa8  (/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test+0x405fa8)

Address 0x7ffeddbc2cb8 is located in stack of thread T0 at offset 104 in frame
    #0 0x421277 in boost::enable_if_c<boost::is_same<stan::math::var, stan::math::var>::value||boost::is_same<stan::math::var, stan::math::var>::value, Eigen::Matrix<stan::math::var, -1, -1, ((Eigen::._123)0)|((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)1) : ((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)0) : ((Eigen::._123)0))), -1, -1> >::type stan::math::multiply<stan::math::var, -1, -1, stan::math::var, -1, -1>(Eigen::Matrix<stan::math::var, -1, -1, ((Eigen::._123)0)|((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)1) : ((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)0) : ((Eigen::._123)0))), -1, -1> const&, Eigen::Matrix<stan::math::var, -1, -1, ((Eigen::._123)0)|((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)1) : ((((-1)==(1))&&((-1)!=(1)))?((Eigen::._123)0) : ((Eigen::._123)0))), -1, -1> const&) (/opt/stan/lib/stan_math_2.7.0/test/unit/math/rev/mat/fun/cholesky_decompose_test+0x421277)

  This frame has 2 object(s):
    [32, 72) 'crow'
    [128, 168) 'ccol' <== Memory access at offset 104 underflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow ??:0 stan::math::value_of(stan::math::var const&)
Shadow bytes around the buggy address:
  0x10005bb70540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10005bb70550: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 f4 f4
  0x10005bb70560: f2 f2 f2 f2 00 00 f4 f4 f3 f3 f3 f3 00 00 00 00
  0x10005bb70570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10005bb70580: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00
=>0x10005bb70590: 00 00 00 f4 f4 f4 f2[f2]f2 f2 00 00 00 00 00 f4
  0x10005bb705a0: f4 f4 f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
  0x10005bb705b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10005bb705c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
  0x10005bb705d0: f1 f1 00 f4 f4 f4 f2 f2 f2 f2 00 f4 f4 f4 f2 f2
  0x10005bb705e0: f2 f2 00 f4 f4 f4 f2 f2 f2 f2 00 f4 f4 f4 f2 f2
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
==11240==ABORTING
test/unit/math/rev/mat/fun/cholesky_decompose_test --gtest_output="xml:test/unit/math/rev/mat/fun/cholesky_decompose_test.xml" failed

This failing test in test/unit/math/mix/mat/fun/mdivide_right_spd_test.cpp is crappy and I don't think it really has anything to do with the PR. The test is expecting an uninitialized matrix to fail the positive definiteness test, but it comes up as
6.92261e-310            0 1.11469e-316
6.92261e-310 1.10892e-316 1.11469e-316
           0 1.10892e-316  1.1147e-316

which is perhaps technically positive definite if it is considered symmetric. Anyway, we should set its elements to zero explicitly but on a different PR.

@bgoodri Let me try committing a version of the code that doesn't respect the memory locality of the input and output matrices. I don't have gdb though, Ben; would you be able to run the -fsanitize=address flag?

It looks fixed by 3f4f9660db9d841eed13920b6036d6f80bb3d096 . Why are we going backwards?

I misinterpreted; I thought there was still a problem after the commit. You  can nuke my latest commit
Rob

On Aug 22, 2015, at 12:12 PM, bgoodri<EMAIL_ADDRESS>wrote:
It looks fixed by 3f4f966 . Why are we going backwards?
—
Reply to this email directly or view it on GitHub.

@bgoodri Isn't it a bad sign that test/unit/math/mix/mat/fun/mdivide_right_spd_test.cpp fails under 3f4f966 but doesn't fail under 14815b3 ?

A test based on undefined behavior has no grounds to EXPECT_THROW or expect anything else. Moreover, the function it ostensibly tests is neither exposed nor used internally. Furthermore, the unused function should never be used because it is yet another embarrassing case where we do two Cholesky factorizations in order to check whether it is safe to do a Cholesky factorization. The checks arguably yield the wrong result because Ax = b has an infinite number of solutions when A is a zero matrix and b is a zero vector. The ultimate Cholesky factorization of A doesn't utilize Rob's cholesky_decompose and thus is going to be twice as slow and consume an order of magnitude more RAM. And if we cared about the 15th decimal place, then it would be better to do a LDLT Cholesky factorization of A than an LLT.
It isn't worth holding up this PR over, but we should eliminate or fix the test.

Agreed about the test being wrong.  And thanks for fixing.
I just merged the fix into math.

Bob

On Aug 23, 2015, at 9:48 AM, bgoodri<EMAIL_ADDRESS>wrote:
A test based on undefined behavior has no grounds to EXPECT_THROW or expect anything else. Moreover, the function it ostensibly tests is neither exposed nor used internally. Furthermore, the unused function should never be used because it is yet another embarrassing case where we do two Cholesky factorizations in order to check whether it is safe to do a Cholesky factorization. The checks arguably yield the wrong result because Ax = b has an infinite number of solutions when A is a zero matrix and b is a zero vector. The ultimate Cholesky factorization of A doesn't utilize Rob's cholesky_decompose and thus is going to be twice as slow and consume an order of magnitude more RAM. And if we cared about the 15th decimal place, then it would be better to do a LDLT Cholesky factorization of A than an LLT.
It isn't worth holding up this PR over, but we should eliminate or fix the test.
—
Reply to this email directly or view it on GitHub.

@syclik @bgoodri What's the best path forward with this branch? I can git revert my last commit, or just reset --hard. Either is fine by me, but I'm not sure what the protocol is.

I would say to git pull develop into the cholesky branch and then
git revert 14815b3
Ben
On Tue, Aug 25, 2015 at 12:22 AM, Rob Trangucci<EMAIL_ADDRESS>wrote:

@syclik https://github.com/syclik @bgoodri https://github.com/bgoodri
What's the best path forward with this branch? I can git revert my last
commit, or just reset --hard. Either is fine by me, but I'm not sure what
the protocol is.
—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134470077.

Cool, will do this afternoon so we can this merged.
Rob

On Aug 25, 2015, at 3:03 AM, bgoodri<EMAIL_ADDRESS>wrote:
I would say to git pull develop into the cholesky branch and then
git revert 14815b3
Ben
On Tue, Aug 25, 2015 at 12:22 AM, Rob Trangucci<EMAIL_ADDRESS>wrote:

@syclik https://github.com/syclik @bgoodri https://github.com/bgoodri
What's the best path forward with this branch? I can git revert my last
commit, or just reset --hard. Either is fine by me, but I'm not sure what
the protocol is.
—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134470077.

—
Reply to this email directly or view it on GitHub.

@bgoodri ok'ed this at the meeting today.

Is that ok that it's not the memory locality preserving commit?? I thought we wanted to revert to Ben's last commit and then merge...
Rob

On Aug 25, 2015, at 11:20 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
Merged #135.
—
Reply to this email directly or view it on GitHub.

should I revert this pull request?
On Tue, Aug 25, 2015 at 11:33 AM, Rob Trangucci<EMAIL_ADDRESS>wrote:

Is that ok that it's not the memory locality preserving commit?? I thought
we wanted to revert to Ben's last commit and then merge...
Rob

On Aug 25, 2015, at 11:20 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
Merged #135.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134629494.

Yes, you should revert the pull request, revert my last commit on the PR and then merge the branch into develop. Or I can do it later today. Either way.
Rob

On Aug 25, 2015, at 11:53 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
should I revert this pull request?
On Tue, Aug 25, 2015 at 11:33 AM, Rob Trangucci<EMAIL_ADDRESS>wrote:

Is that ok that it's not the memory locality preserving commit?? I thought
we wanted to revert to Ben's last commit and then merge...
Rob

On Aug 25, 2015, at 11:20 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
Merged #135.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134629494.

—
Reply to this email directly or view it on GitHub.

fuck. might have to revert the revert.
On Tue, Aug 25, 2015 at 12:00 PM, Rob Trangucci<EMAIL_ADDRESS>wrote:

Yes, you should revert the pull request, revert my last commit on the PR
and then merge the branch into develop. Or I can do it later today. Either
way.
Rob

On Aug 25, 2015, at 11:53 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
should I revert this pull request?
On Tue, Aug 25, 2015 at 11:33 AM, Rob Trangucci <
<EMAIL_ADDRESS>wrote:

Is that ok that it's not the memory locality preserving commit?? I
thought
we wanted to revert to Ben's last commit and then merge...
Rob

On Aug 25, 2015, at 11:20 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
Merged #135.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134629494.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134648319.

I got it.
On Tue, Aug 25, 2015 at 12:04 PM, Daniel Lee<EMAIL_ADDRESS>wrote:

fuck. might have to revert the revert.
On Tue, Aug 25, 2015 at 12:00 PM, Rob Trangucci<EMAIL_ADDRESS>wrote:

Yes, you should revert the pull request, revert my last commit on the PR
and then merge the branch into develop. Or I can do it later today. Either
way.
Rob

On Aug 25, 2015, at 11:53 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
should I revert this pull request?
On Tue, Aug 25, 2015 at 11:33 AM, Rob Trangucci <
<EMAIL_ADDRESS>wrote:

Is that ok that it's not the memory locality preserving commit?? I
thought
we wanted to revert to Ben's last commit and then merge...
Rob

On Aug 25, 2015, at 11:20 AM, Daniel Lee<EMAIL_ADDRESS>wrote:
Merged #135.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134629494.

—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/math/pull/135#issuecomment-134648319.

it's a new pull request: #156


Fixed the "vlaams brabant" reference and fixed fips csv for Belgium

Firstly I fixed the correct name of Vlaams Brabant in the python script (Though I didn't get to that work and so was unable to use it). It was also wrong in the fips-10-4 repo , made a pull request there aswell.
Then I created my own list of correct regionIDs for the csv file, and replaced them there. Now we have full province localisation instread of just the general region for Belgium.

I've made the necessary changes to dataset and geoname2fips.py but new geoip csv files changed some country name and added/renamed some region/province that I need to investigate, to be able to produce a new cvs


Analytics should collect usage data to track base performance and visitor stats

@SarahWat has the rights to add the GA tag. She will add the below tag into website or will give access to us to do it.
@skylark1848 @gazdagergo

Thank you to @ricardomiron who helped get this up yesterday!
Can you check that it's pulling the right info now to GA, @gazdagergo & @PelinSmines?

Data flow is broken again.

This was set up again with Monster Insights. Analytics seems to collect data only from the Heroku instance, so the fix is not straightforward with the current structure. We are looking into it.

AC

logging into GA you can see the live data

AC update, let's wait to see if it is working for some more time


Improve error message for features that require ENABLE_POWER_USER_MODE set to True

Is your feature request related to a problem? Please describe.
When wanting to use @resolve/ other power user features, power user mode must be enabled.
It is easy to mistake .enable_dynamic_execution(allow_experimental_mode=True) as a way to enable this.
Error:
File "C:\codebase\venv\lib\site-packages\hamilton\function_modifiers\delayed.py", line 130, in resolve
    if not config[settings.ENABLE_POWER_USER_MODE]:
KeyError: 'hamilton.enable_power_user_mode'

Describe the solution you'd like
Error(
"@{power_user_feature} needs to be enabled via the driver config.\n"
"Try the following to enable it."
".with_config({settings.ENABLE_POWER_USER_MODE:True})"
)

Describe alternatives you've considered
I could have read the docs better to find this existing solution.
from hamilton import settings
.with_config({settings.ENABLE_POWER_USER_MODE:True})

Additional context
Add any other context or screenshots about the feature request here.

I think we may want to consider deprecating this requirement -- feels like people naturally self-select for resolve and we don't need as many guard-rails...


Question: Timeline for making Linker RTM and supporting non-self-contained apps

It has been a year now since the linker trimming optimisation has been announced as an experimental feature but to me it seems that the work on it has halted. Is this true? What is the future timeline for it?

@RussKeldorph @sbomer

@jeffschwMSFT

Thanks for following up @bergmeister we are in the middle of conducting customer calldowns to ensure we have all the right experiences prioritized.  If you are interested in sharing your thoughts you can take a look at our online survey and provide your contact info.
https://blogs.msdn.microsoft.com/dotnet/2018/07/11/il-linker-help-us-build-the-best-experience/
cc @sbomer

@jeffschwMSFT is there any update on the approximate timeline/plans?
Do we need this tracking work item?

This will align with .NET Core 3.0 timeframe.


Data not populating in the website

Dear Dev,
Thank you for the website, but as of today morning the data is not showing up on the website.
Thank you.

Works now.


Is there any solution to reduce the usage of GPU mem to run ROME(wikibio and convsent) and MEND(in all datasets)-A40(48G)

When i try to reproduces the report results in paper, I encounter the OOM error
my device is A40*2(48G Each GPU)
following is my command
'
python run_knowedit_llama2.py     --editing_method=ROME     --hparams_dir=../hparams/ROME/llama-7b     --data_dir=./data/KnowEdit/benchmark/wikibio/test-all.ar.json     --datatype='wikibio'   --ds_size=10
python run_convsent_llama2.py  --hparams_dir ../hparams/ROME/llama-7b.yaml  --editing_method ROME  --data_dir ./data/KnowEdit/benchmark/convsent   --ds_size=10
'
even in ds_size=10, ROME run out of my memory(in wikibio and consent)
MEND usage is 46G and only available in one GPU, but my A40 has 48G mem

Hello, the ROEM method's easyedit supports model parallelism. You can set model_parallel: true in the hyperparameters, which will reduce the memory usage on a single card. The MEND method does not support model parallelism, so unfortunately, I don't have a good way to assist you with that. I'm sorry.

Thank you! and I have set 'model_parallel: true' and 'device: 0,1' in ROME experiments . The OOM problem still exist.
only for wikibio and convsent...others work very well

Because the text length of wikibio and convsent is longer, it leads to larger memory usage. I may not have particularly good suggestions to help you solve the problem.

Okay. thank you very much


make a rscg with Omit and Pick

https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys

https://github.com/ignatandrei/RSCG_Examples/pull/166

https://github.com/ignatandrei/RSCG_UtilityTypes


The auto scale on Full HD needs more attention.

After moving by 1 pixel, it added black line:

The text on right side begin more fatty then on the left.

You can see it on the first screenshot too.

(And it's not the re-console problem)

Change the Interface Resolution slider, there is nothing I can do other than change this and give presets with the Auto Resolution option active


Don't write partial results for dropped facts to regular output

this is pretty boring. Just writing the results when we drop facts to the drop log rather than normal output.
e.g.
line 2: bar|salary|100|1989-12-18
        ^~~~ entity bar had too many salary facts, they have been dropped starting from here
bar|newest_salary|5
total: 1 facts for bar were dropped.

line 4: foo|salary|10|1989-12-18
        ^~~~ entity foo had too many salary facts, they have been dropped starting from here
foo|newest_salary|0
total: 3 facts for foo were dropped.

line 6: foooo|salary|40|1989-12-20
        ^~~~~~ entity foooo had too many salary facts, they have been dropped starting from here
foooo|newest_salary|20
total: 2 facts for foooo were dropped.

this is great. looks like all the information you could want. does it work with dense too?

It only works with dense PSV in the sense that dense facts are considered as one whole struct, i.e. it can't count the dense fields separately

oh right, that sounds like the only reasonable thing for dense

shall I merge this? It has a dropping test for both sparse/dense psv by the way.

Yeah go for it 👍


add hashes

see bottom of https://code.visualstudio.com/download  & https://code.visualstudio.com/insiders/

See https://github.com/atom/atom.io/issues/57


Vulkan <IP_ADDRESS>

Hi @realitix , does the possibility exist to update the wrapper to the latest Vulkan version?
Thank you

Hello @ompadu.
Yes indeed there is no problem to update it.
You just have to update the files in vulkan_include folder in the generator and then launch generate.py.
I will do it when I have time but you can do it if you can't wait.
Thanks

I don't mind updating it for myself.
Can it be done on windows? Last time I took a look at generate.py it seemed that it used a Linux utility.

I tried to update it as well.
But got an error :
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified```


Print which host is being built

When doing remote builds with flakes, sometimes it's not obvious which host is being built. --flake . might build the wrong host. The fix for this is usually just to use --flake .#host, however, if you nixos-rebuild switch, it might have already switched to the wrong configuration.
In the past, before using flake-utils-plus, i just had builtins.trace "building ${name}" <actual builder>, which did the job.
Even though I think this might be a good idea, others may disagree. So it would be nice to either be able just opt-in to this, or just be able to setup a default builder, and not have to define a builder for each host.

I am not sure what is the solution here. @noonien what do you think is the correct way of implementing it?

I've currently removed the builtins.trace from my nix files, and print which host is being built in my own deploy script. But I believe fufexan's solution might be good enough, perhaps as an opt-out default?

I like it. I plan on using a single flake for about 10 servers. I'm sure I'll mess things up sooner or later, at least this will help me catch mistakes early.


Terraform replicated data flow with partial transformations

https://github.com/lui91/airflow_ingestion/commit/267480853c279e0d5a59431189a7e9154ec01385


some languages tweaks

Please describe the changes in your PR. If it is addressing an issue, please reference that as well.

Just use a dictionary instead of match to make things a bit shorter and move it outside of the classes.
Fix default language code if no language was provided. That is, if None was passed we couldn't set it to Language.EN but en or en-US or whatever.
Update PlayHT engine (should actually be Play3.0-mini.
Update PlayHT language code
Use language in PlayHT, it was disabled and the values were not working (i.e. ENGLISH was not valid).
Update the voice that supports voice engine 2.0 in the example.
Instead of checking 78 size messages, make sure we only discard RIFF header

@aconchillo I just helped out and made those small changes. This one looks good now, so I'll merge it. Thanks for the fixes! 🙌


feat: Automated tests for PRs only on changed files and/or the the affected member state folder

Issue Description
Currently, automated tests run on the entire repository, making it hard(er) to identify if a specific PR introduces new errors.
Proposed Solution
Automated tests should run either:

only on changed files (see e.g. https://github.com/marketplace/actions/get-all-changed-files )
or on the country-folder(s) affected by the PR, which in turn can be derived from the affected files

I believe this to be less ideal for PRs, but as a separate run config that uses an input variable that specifies the folder to run on it might be useful to verify the state of an entire country at once.

@bhavin-qryptal I'm tagging you in case you are interested in tackling this and/or have some input on the issue

Thank you @daniel-eder for tagging me. Internally, we have been thinking about this issue as well.
Today's change I have submitted is to handle the very same problem you have highlighted. Hope it helps going forward.
Details:

Build would be GREEN as long as there ZERO unknown errors. Currently the build should turn GREEN and that means all the known issues are identified.
Going forward, if you could reject any new pull request if the build becomes RED, we would stop introducing new errors and governance becomes easier.
Also, if we encourage each contributing member to run this test in their local branch before requesting for a pull request, it will help them discover issues much more earlier and they would stop introducing new errors.
With this, over a period of time the list of errors in the main repo should go down substantially and eventually becomes ZERO.
If the process outlined above is possible, we may find not much extra benefits to have additional logic for country specific segregation. Kindly opine.

Alternate option:

The current test script does support a couple of flags (country flag and filename flag), which enables country specific run OR test file specific run.
It is a matter of configuring the CI pipeline to invoke the test script with appropriate country flags.
Are you looking to run this workflow on demand manually with country code as parameter OR invoking it on some particular event automatically? (As I understand, currently you are invoking tests manually. Is that correct?)

Just now I have submitted a pull request (https://github.com/eu-digital-green-certificates/dgc-testdata/pull/193 ), which would enable specifying a country code if anyone desires to run tests for a given country only. By default it would run tests for all countries including common folder using parameter value '*'.

@bhavin-qryptal thanks again for the PR. I think the process with known issues that you set up is a workable way to consider the existing issues in the test data. I'll make a note to re-enable it on PRs - we'll just need to test first if our known issues are up to date (which I haven't gotten around to yet)

Checked & re-enabled to run on PR in #194
I'll close this - might revisit automatically filling the -c flag based on affected folder in the future, but for now the known issues offer a good solution to show only new issues a contribution may introduce. Thank you!

Checked & re-enabled to run on PR in #194

Verification on PR was passing wrong parameter to the test script. This is fixed in https://github.com/eu-digital-green-certificates/dgc-testdata/pull/197
@daniel-eder , Please help approve and merge Verification on PR was passing wrong parameter to the test script. This is fixed in https://github.com/eu-digital-green-certificates/dgc-testdata/pull/197


feat: Allow to remove repository in /etc/apt/sources.list

Allow to remove repository in /etc/apt/sources.list (which has certainly distribution repositories)
Add apt_clean_sources_list (set to false by default) to empty /etc/apt/sources.list (certainly filled with distribution Internet repositories which can be problematic in a strict-firewalled environment ).

reviewed


docs(class-notes)📝: Update wording in lesson 3 questioning notes

Clarify instructions and terminology to improve comprehension.
Replace vague phrases with more direct and guiding language.
Introduce terms like 'anti-patterns' and 'qualifiers' for clarity.

🚀 Deployed on https://deploy-preview-43--cbcgb-com-sgbs-training.netlify.app

🚀 Deployed on https://deploy-preview-43--cbcgb-com-sgbs-training.netlify.app


Fix leshan demo client incorrect initialization of object 3442,

resources 120, 1120 #1352
updated public class LwM2mTestObject,
public static final Long INITIAL_INTEGER_VALUE = 1024l;

where is it getting this email address from?  It's not the one I am using
Anonymous<EMAIL_ADDRESS>


Applying kmf.median_survival_time to subgroups

I have a dataset with several subgroups and I want to run the kmf.median_survival_time_ function on them in order to get the median for each individual group.
I previously got their survival functions by using code similar to below:
annual_filtered_types = df_filtrd_a.sort_values(by = [var_of_interest])[var_of_interest].unique()

t = df_filtrd_a['age']
e = df_filtrd_a['is_churned']

for i, annual_filtered_types in enumerate(annual_filtered_types):
  ax = plt.subplot(2, 2, i + 1)
  ix = df_filtrd_a[var_of_interest] == annual_filtered_types
  kmf.fit(t[ix], e[ix], label = annual_filtered_types)
  kmf.plot_survival_function(ax = ax, legend = False)
  plt.title(annual_filtered_types)
  plt.xlim(0, 100)
plt.tight_layout()

This gives me the survival function plots of the different subgroups. I now want to get the median survival time of each of those groups. I tried using the code below but it seems to be doing it incorrectly. Is there a better way to get the median of those subgroups? Or can median_survival_time_ take some arguments?
for i, annual_filtered_types in enumerate(annual_filtered_types):
    ix = df_filtrd_a[var_of_interest] == annual_filtered_types
    print("The median survival time for", annual_filtered_types, "is:", kmf_a.median_survival_time_)

Hi @wangarikiarie,
What was wrong with the code you posted?
for i, annual_filtered_types in enumerate(annual_filtered_types):
    ix = df_filtrd_a[var_of_interest] == annual_filtered_types
    print("The median survival time for", annual_filtered_types, "is:", kmf.median_survival_time_)

(corrected kmf_a to kmf). That should work - were you seeing an error or output that didn't make sense?

@CamDavidsonPilon yes - the output repeated the same median for each of the subgroups for example:
The median survival time for group1 is: 35.0
The median survival time for group2 is: 35.0
The median survival time for group3 is: 35.0
The median survival time for group4 is: 35.0
The median survival time for group5 is: 35.0

It seems like it's not applying the median function to the subgroups. So I was wondering if there was a way to do this

Yes! That makes sense. And this worked. Thank you so much.


Change location in ansiweatherrc.example

Hello, my name is Thomas and i am not used to github and cmd that much i need this nice tool for a project. I just need to change the default settings specifically the location. I open the ansiweatherrc.example with nano and type location:Corfu,GR and then save it. When i run the command ansiweather it just displays the default location again and not mine. Am i doing something wrong? (I just need to change the default settings in order not to use location -l command).
Thank you!

Please read the instructions in the configuration section.
The easiest way is to rename the example configuration file to .ansiweatherrc and put it in your home directory.


Remove immutable js

As part of reducing the number of dependencies the project has, immutable js is to be removed.
With the app switching to TypeScript, continuing to use immutable js presents many typing problems.

Resolved in #44


Feature request: Pool API

As a client I want to have a pool API, to automate my earnings

Hi! Sorry for late response.
What exactly you mean by "pool API"? Do you mean syrup pools?
If you mean "liquidity pools API" - you can make all the chain calls outside of this SDK.
This SDK is focused on trading and helper classes for various trading-related things like Trade, Price, Currency, etc.
But we are currently building another API for PancakeSwap farms and pools, you'll be able to use that to automate farm & pool harvesting, etc. Although you'd still need to write your own call for on chain calls, but that API at least would provide you easy-to-consume data about your stakings.
Keep an eye on our twitter, we'll probably announce it in March 🙂

@Chef-Cheems Is the new SDK you mentioned above ready?


Demo improvements

Add animation to Voxel editor demo to make it feel less choppy
Fix index page link to WebRTC demo

Direct link to voxel demo: https://driftdb-demos-git-paul-dis-779-driftdb-dem-55f5a3-drifting-corp.vercel.app/voxel
Direct link to index: https://driftdb-demos-git-paul-dis-779-driftdb-dem-55f5a3-drifting-corp.vercel.app/

Here's an idea for doing the transitions in a slightly different way: https://github.com/drifting-in-space/driftdb/pull/81
Thoughts?


# [Choice] Go version: 1, 1.15, 1.14

Hi @Aminadad27 ,
Every six months a new Go version is released, and each version is retro compatible. This means that you should always download the latest version.
If you have further questions, feel free to reach out on the Golang forums or Stack Overflow.
If you have specific documentation feedback, feel free to create an issue on the related document and specify which changes you would like to see.


IP search and language fails until any number is entered in IP field and saved

The IP search feature is a very nice but it doesn't work a 100% in my environment.
These are my steps:
1.install the "google home notify" from palette
2. restart node-red server
3. add a gh-n node to a flow, open config and press search
I see this in the console:
vendor.js:5 GET http://<IP_ADDRESS>:1880/languages 404 (Not Found)
vendor.js:5 GET http://<IP_ADDRESS>:1880/ipaddresses 404 (Not Found)
The search doesn't show any results,
4. save and restart, still no search result
5. enter anything ('1' e.g.) in the IP and Save
6. Now the search result is available Also the languages are listed.
Node-RED version: v0.17.5
Node.js  version: v6.11.2
Linux 3.2.40 arm LE

There is a problem where the GET commands are not returning anything the first time they are called.
I will look into this but I can't promise a fix anytime soon.

Yup, no languages can be chosen.  She sounds like she's drunk! Any way of forcing US english?


Add an alternative to {% if true %}

Because it looks ugly as heck. :)
Maybe something like:
{% do %}
...
{% end %}

instead of:
{% if true %}
...
{% end %}

Hehe, waj told me the same, he suggested begin / end :)

begin end looks good.
But could you explain to me what is this at all? I don't see an example in docs.

+1 for begin end


[FLINK-15254][sql cli][module] modules in SQL CLI yaml should preserve order

What is the purpose of the change
currently the module map is a hash map in sql cli, which doesn't preserve module loading order from yaml.
fix it by always using a linked hash map
Brief change log

always using a linked hash map in sql cli to handle module order
added UT

Verifying this change
This change added tests and can be verified as follows: EnvironmentTest.testModuleOrder
Does this pull request potentially affect one of the following parts:
n/a
Documentation
n/a

@xuefuz @lirui-apache @JingsongLi @zjuwangg

LGTM. Thanks for your quick fix.

@xuefuz @zjuwangg thanks, merging


Plugin with path: saleor.plugins.webhook.plugin.WebhookPlugin doesn't exist

When I try to run the saleor core stable version,
I got below error
Plugin with path: saleor.plugins.webhook.plugin.WebhookPlugin doesn't exist

@KalaiSquareark Hey. Please provide more details. What are you trying to achieve? Is it local dev?

Yes it was in Development environment, I have tried to run the Saleor outside the Docker container. I have fixed it by running inside the pipenv..


flutter: remove dependencies and add path

flutter support desktop and web, which is not depend on android sdk and jdk.
According to official guide, the recommended way to set up android develop environment is using android studio.
Using shim for flutter.bat will cause error of vscode extension unable to find flutter.bat.

Sorry for my mistake,leaving a trailing comma.

@zoritle there seem to be conflicts.
I have made some suggested changes for suggests.
Could you create 2 new PRs, one for env and another for changes from depend to suggest?
Thank you!!!


Docker wrong host

Describe the bug
While creating a new strapi project using strapi docker image, the host is set to "localhost" instead of "<IP_ADDRESS>". This makes the strapi to bind to <IP_ADDRESS> instead of automatically get IP address for Docker Container. It causes Strapi to be often inaccessible.
Steps to reproduce the behaviour

Create new Docker Strapi project
Run app

Expected behaviour
Strapi should use host <IP_ADDRESS> to get automatically generated by Docker IP Address.
Screenshots
Code snippets
By default, config/.../server.json should have "host":"<IP_ADDRESS>" when using Docker image.
System

Node.js version: any
NPM version: any
Strapi version: 19.5 beta
Database: MongoDB
Operating system: MacOS

Hi, this was already fixed in the latest release :)


Add benchmarks for fs2.

Based on a project reference for now, in lieu of a public build.

[info] Benchmark                     Mode  Cnt      Score     Error  Units
[info] InMemoryBenchmark.sumInts0I  thrpt   20  12822.590 ± 684.651  ops/s
[info] InMemoryBenchmark.sumInts1S  thrpt   20     56.040 ±   4.181  ops/s
[info] InMemoryBenchmark.sumInts2Z  thrpt   20    231.306 ±   3.359  ops/s
[info] InMemoryBenchmark.sumInts3P  thrpt   20     39.904 ±  10.093  ops/s
[info] InMemoryBenchmark.sumInts4C  thrpt   20  10541.663 ± 158.187  ops/s
[info] InMemoryBenchmark.sumInts5F  thrpt   20  12058.018 ± 183.254  ops/s

[info] Benchmark                        Mode  Cnt     Score     Error  Units
[info] StreamingBenchmark.takeLongs0I  thrpt   20   917.403 ±  22.926  ops/s
[info] StreamingBenchmark.takeLongs1S  thrpt   20    42.803 ±   5.481  ops/s
[info] StreamingBenchmark.takeLongs2Z  thrpt   20   119.958 ±  19.221  ops/s
[info] StreamingBenchmark.takeLongs3P  thrpt   20     1.327 ±   0.215  ops/s
[info] StreamingBenchmark.takeLongs4C  thrpt   20  2665.824 ± 106.650  ops/s
[info] StreamingBenchmark.takeLongs5F  thrpt   20    61.115 ±  10.978  ops/s

Thanks! The failure on the one build was some spurious internal JVM thing, so I've just restarted it and will merge when green.
One question: is there a reason you're using the topic/redesign branch rather than the snapshot in Sonatype?

Current coverage is 94.02%

Merging #57 into master will decrease coverage by -1.05% as of 26d4629

@@            master     #57   diff @@
======================================
  Files           17      17
  Stmts          447     452     +5
  Branches        37      37
  Methods          0       0
======================================
  Hit            425     425
  Partial          0       0
- Missed          22      27     +5

Review entire Coverage Diff as of 26d4629

Powered by Codecov. Updated on successful CI builds.

Oh!  Last time I checked, there was no public snapshot.  That should work just as well.


x/net/context: flaky TestLayersTimeout on windows

It sometimes fails on both windows/386 and windows/amd64 regardless of go version.
https://build.golang.org/log/441ed9b623cebefcdf96c9f3ecde1161777250bb
https://build.golang.org/log/03be465eace4fc1d48978761b1e7a7b1a0a6bb58
https://build.golang.org/log/bd1c8741979da65dd2d9f3215251d2171c9871a1
https://build.golang.org/log/8d69aab579d02c38dcf9225e942b3c3df5639e5b

Fixed in https://github.com/golang/net/commit/96feaeba77cf39602ef031d22746c121afb100a7


aposPrefix in loginBase.html

I'm using nginx to proxy and leveraging the prefix capability in apostrophe. When working through the login, I kept getting an error that wasn't seeming to respect the apos.prefix I've set.
It looks like the apostrophe-login module loginBase.html is using an aposPrefix variable.
<form action="{% block action %}{{ aposPrefix }}/login{% endblock %}" method="post">
Is this meant to be a separate variable that I need to set in the app.js in addition to the apos.prefix variable?

It's a bug! Left over from 0.5 and inadequately tested. Try
apostrophe.prefix? Pull request welcome.
On Aug 24, 2017 6:21 PM, "thecb4"<EMAIL_ADDRESS>wrote:

I'm using nginx to proxy and leveraging the prefix capability in
apostrophe. When working through the login, I kept getting an error that
wasn't seeming to respect the apos.prefix I've set.
It looks like the apostrophe-login module loginBase.html is using an
aposPrefix variable.

Is this meant to be a separate variable that I need to set in the app.js
in addition to the apos.prefix variable?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe/issues/984, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB9fcYAju2rm0QPIvwuX9ZyCBYcnODpks5sbiGjgaJpZM4PCHiD
.


Should it be called thermal_speed or thermal_velocity?

Wiki uses both https://www.wikiwand.com/en/articles/Thermal_velocity .
Maybe we could alias this


Adding podAnnotations for tests #50

Descriptive description goes here.
Tasks:

[x] I've made changes
[x] I've bumped chart's version in Chart.yaml
[x] I've added changes to charts CHANGELOG.md
[x] I've run helm-docs
[ ] I've run 'helm-tool schema | jq . > values.schema.json'

Related to #50

I think this doesn't necessarily do what you want. If it's the same annotation, and you ignore checks for test pod, you're now also ignoring checks on Gotenberg pod which maybe are valuable.
So I see 2 options:

Add separate values entry
Add kube-score annotations to test pod in the chart itself.

I think the 1st option is more universal.

Combined with #49

Thank you @MaikuMori !


misc(cli): features

add default name for metadata file
descriptors are now properly outputed when "save descriptors is selected"
when no key flag is passed to the cli in non-interactive mode, all descriptors will be codegened.

Thanks @ryanleecode !


icenet_plot_sie_error seems to have internally broken function call

IceNet version: 0.2.2

Description
Running the command, there seems to be a mapping error if no threshold is supplied from the CLI
What I Did
icenet_plot_sie_error -r "125,190,170,235" -e -b       -o sie_error.test.png       north results/predict/lanc23.2023-02-18_north.nc 2022-02-18
...
Traceback (most recent call last):
  File "/data/hpcdata/users/jambyr/miniconda3/envs/icenet/bin/icenet_plot_sie_error", line 8, in <module>
    sys.exit(sie_error())
  File "/data/hpcdata/users/jambyr/miniconda3/envs/icenet-new/lib/python3.8/site-packages/icenet/plotting/forecast.py", line 1305, in sie_error
    plot_sea_ice_extent_error(masks=masks,
  File "/data/hpcdata/users/jambyr/miniconda3/envs/icenet-new/lib/python3.8/site-packages/icenet/plotting/forecast.py", line 286, in plot_sea_ice_extent_error
    forecast_sie_error = compute_sea_ice_extent_error(masks=masks,
TypeError: compute_sea_ice_extent_error() missing 1 required positional argument: 'threshold'

@rchan26 I think this might have been introduced, potentially, when we had to merge overlapped changes into 0.2.2?


added a nuget tool class

Added a nuget tool class that retrieves the nuget executable
Requires zopaUK/bozo#28

:+1:


Vsphere e2e tests

Issue #, if available:
The change adds Adot packages test for Vsphere provider. While the update flow was covered for Adot packages in Vsphere, simple flow for Adot packages were missing in our E2E tets.
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

We have these tests running for other providers and saw we were missing it for Vsphere. We can definitely discuss if we want to have these or not but that would be a different discussion, since we have more tests than these lot running related to Adot across providers.?


Azure config starter

Description
Add Spring Cloud Azure Config Starter

Codecov Report

Merging #313 into azure-config will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff               @@
##             azure-config     #313   +/-   ##
===============================================
  Coverage           50.97%   50.97%
  Complexity            267      267
===============================================
  Files                  98       98
  Lines                1230     1230
  Branches               50       50
===============================================
  Hits                  627      627
  Misses                572      572
  Partials               31       31

Continue to review full report at Codecov.

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


Update loading.py

Fixed special issue when referenceSystem is present metadata, but is not a real referenceSystem.

Thank you very much for the fix @paalped! 🙌


Disabling the cookie encoding feature

I have a use case where I am making a small service whose purpose is to set a particular cookie, which is obviously mangled by the time it comes out via the Zappa middleware.
I thought perhaps it could be possible to disable that feature in cases where we know we are only sending the one cookie.
I might have a go at proposing this in a pull request, but wanted to raise an issue in case there was any useful discussion that would help me. I'm not 100% clear on the reason for the cookie hack as it is (are we limited to one response header value per header name?) I'm also not 100% clear on whether it's possible to read the settings from within the middleware.

This should be medium-doable with a toggle. Gotta make sure there is test coverage for it though.

From what I can see so far, I can prove the concept of adding a boolean to the zappa_settings.json that is used by the handler to decide whether to use the middleware or not. It looks like the middleware only does the cookie thing, but I suppose if it did more later, the config could be passed into the middleware constructor.

Ah, that makes sense.

How's this coming, @avengerpenguin  :) ?

We no longer use the cookie-encoding hack.


Quick fix for failing account linking

Code can't find client id and secret. Since it's predetermined just hardcode it so you can move on with your life and continue learning.

I signed it!

I do appreciate the change, though I am a bit curious why the code will sometimes fail. Fixing that would be more useful, although if we can't figure it out then let's merge in this patch.

I cannot understand these changes too.
It will accept any clientId/secretId without check.


is-reveal-open class deleted if you call second reveal from other one with MotionUI

Open any Reveal subwindow (.is-reveal-open added to <body>).
Login link in example below.
Click link or button in this Reveal window to open other Reveal window.
Forgot your password? link in example below.
MotionUI features must be added:
Foundation.Reveal.defaults.animationIn = "slide-in-left";  Foundation.Reveal.defaults.animationOut = "slide-out-left";

What did you expect to happen?
<body class="is-reveal-open">
What happened instead?
<body class="">
Result: vertical scroll appear.
CodePen

Thanks for the bug report and repro case!  Will take a look.

@kball Tried your solution. It doesn't work.

Resolved in #9295


pnetcdf.h not found during installation

Downloaded version:
wget https://downloads.unidata.ucar.edu/netcdf-c/4.9.2/netcdf-c-4.9.2.tar.gz

CMake commandline:
cmake
-D CMAKE_INSTALL_PREFIX=/work2/00434/eijkhout/netcdf/installation-pnetcdf-4.9.2-stampede3-gcc13-impi
-D CMAKE_COLOR_DIAGNOSTICS=OFF
-D CMAKE_VERBOSE_MAKEFILE=ON
-D BUILD_SHARED_LIBS=ON
-D ENABLE_PNETCDF=ON
-D ENABLE_PARALLEL4=ON
-D ENABLE_PARALLEL_TESTS=OFF
-D ENABLE_NETCDF_4=ON
-D ENABLE_DAP=OFF
                     /work2/00434/eijkhout/netcdf/netcdf-4.9.2/

Error during installation:
[  1%] Building C object libdispatch/CMakeFiles/dispatch.dir/derror.c.o
cd /work2/00434/eijkhout/netcdf/build-4.9.2-stampede3-gcc13-impi/libdispatch && /opt/intel/oneapi/mpi/2021.11/bin/mpicc -DCURL_STATICLIB=1 -DENABLE_SET_LOG_LEVEL -DH5_BUILT_AS_DYNAMIC_LIB -DHAVE_CON
FIG_H -DRELAX_COORD_BOUND -I/work2/00434/eijkhout/netcdf/build-4.9.2-stampede3-gcc13-impi/include -I/work2/00434/eijkhout/netcdf/netcdf-4.9.2/include -I/work2/00434/eijkhout/netcdf/netcdf-4.9.2/oc2
-I/work2/00434/eijkhout/netcdf/netcdf-4.9.2/libsrc -I/opt/apps/gcc13/impi21/phdf5/1.14.3/include -I/usr/include/libxml2 -I/work2/00434/eijkhout/netcdf/build-4.9.2-stampede3-gcc13-impi -I/work2/00434
/eijkhout/netcdf/netcdf-4.9.2/libdispatch/../libnczarr -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g -Wall -Wconversion -fPIC -fno-diagnostics-color -MD -MT libdispatch/CMakeFiles/dispatch.dir/der
ror.c.o -MF CMakeFiles/dispatch.dir/derror.c.o.d -o CMakeFiles/dispatch.dir/derror.c.o -c /work2/00434/eijkhout/netcdf/netcdf-4.9.2/libdispatch/derror.c
/work2/00434/eijkhout/netcdf/netcdf-4.9.2/libdispatch/derror.c:13:10: fatal error: pnetcdf.h: No such file or directory
   13 | #include <pnetcdf.h>  /* for ncmpi_strerror() */
      |          ^~~~~~~~~~~
compilation terminated.

And indeed I can not find that file anywhere in the tarball.

Thanks. I'm not finding instructions on how to specify the paths for pnetcdf in https://docs.unidata.ucar.edu/nug/current/getting_and_building_netcdf.html#netCDF-CMake
I put the pnetcdf.pc file on the PKG_CONFIG_PATH, but Cmake reports:
-- Cannot find PnetCDF library. Disabling PnetCDF support.

Looks like I can't reopen so I made a new ticket.


docs: normalize plugin API documentation

Motivation
Make the configuration less confusing. I've answered a few questions on Discord because the user didn't know how to configure the sitemap plugin.
Have you read the Contributing Guidelines on pull requests?
Yes

I'll make another component to autogen the plugin/preset tabs to reduce code duplication

👍 looks convenient thanks
Similarly, I'm not 100% sure the package aliases system was a good idea, I've already seen someone get confused by preset "classic" vs the full name, as many places of the doc show different things 😅 we can't have tabs for everything

We just had the alias shown in one place to minimize confusion. Luckily I haven't had to explain this system to anyone


core: models: add nested endpoints to models

I managed to understand why it breaks: https://github.com/Linaro/squad-client/blob/master/squad_client/manage.py#L45
When calling ./manage.py test, it does an initial call to SquadApi.configure with default data, which is not what we want for tests. I'll create a PR to changed that, then you can rebase your PR against it


Delete encrypted_command.rb

Summary

Other Information

 Quality gate: Passed
 Everything looks good
Details

 Quality gate: Passed
 Everything looks good
Details


Fetch ftxui from conan.

Conan is already used to fetch all the other dependencies. Fetching all dependencies in a similar manner (conan) reduces the complexity of using the project.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@69ccbc8). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #6   +/-   ##
=======================================
  Coverage        ?   11.90%
=======================================
  Files           ?        3
  Lines           ?      210
  Branches        ?      125
=======================================
  Hits            ?       25
  Misses          ?      183
  Partials        ?        2

Flag
Coverage Δ

Linux
6.17% <0.00%> (?)

Windows
11.23% <0.00%> (?)

macOS
∅ <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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

I was just about to ask about using Conan fully. FetchContent seems like a tool from before Conan/VCPKG and while it might be adequate for header-only libraries using a fully-featured package manager seems more like a 'best practice' than fetching stuff.

FetchContent seems like a tool from before Conan/VCPKG and while it might be adequate for header-only libraries using a fully-featured package manager seems more like a 'best practice' than fetching stuff.

Interestingly, the idea of making projects "FetchContent-able" is really more modern, almost as a response to conan and vcpkg


What is difference between Deit and ViT models here? They looks like the same?

I have not found any difference between vit_base_patch16_224 and deit_base_patch16_224 in ViT_LRP.py? What makes they differerent?

Hi @szubing, thanks for your interest!
The two models use the same architecture but were trained differently. DeiT uses knowledge distillation while ViT uses plain supervision for training. I recommend reading the papers to understand the differences.


Change Xcode developmentRegion to 'en' and CFBundleDevelopmentRegion to DEVELOPMENT_LANGUAGE

Description

Fix "Migrate “English.lproj” (Deprecated)" Xcode warning by updating Xcode project template developmentRegion from "English" to ISO 639-1 two-letter "en".
Update CFBundleDevelopmentRegion plist values to DEVELOPMENT_LANGUAGE instead of hardcoding "en" to match Xcode's New Project empty project plist.

Related Issues
Fixes https://github.com/flutter/flutter/issues/34290.
Tests
Updated examples, integration tests, and manual test .pbxproj and plist files.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

This only updates the template.  Existing projects and plists will not be migrated.

Hello to all, I can't find any documentation on how can I set the DEVELOPMENT_LANGUAGE value.
Where can I set this variable?

Hello to all, I can't find any documentation on how can I set the DEVELOPMENT_LANGUAGE value.
Where can I set this variable?

This pull request was closed in June 2019, please file a new issue and fill out the template.


community[minor]: Implement Doctran async execution

Description
The DoctranTextTranslator has an async transform function that was not implemented because the doctran library uses a sync version of the execute method.

I implemented the DoctranTextTranslator.atransform_documents() method using asyncio.to_thread to run the function in a separate thread.
I updated the example in the Notebook with the new async version.
The performance improvements can be appreciated when a big document is divided into multiple chunks.

Relates to:

Issue #14645: https://github.com/langchain-ai/langchain/issues/14645
Issue #14437: https://github.com/langchain-ai/langchain/issues/14437
https://github.com/langchain-ai/langchain/pull/15264

@gopetracca looks good overall.
Jupyter notebooks are async by default, so this snippet:
# We need nest_asyncio to run async code in the Notebook
import asyncio

import nest_asyncio

nest_asyncio.apply()

is not correct.
Would you mind removing it -- we generally want to avoid recommending nest_asyncio to users since it does monkey patching of the asyncio library and is not maintained anymore

Hi @eyurtsev, thank you for your review. I modified the Jupyter notebook, and removed nest_asyncio and replaced with this:
import asyncio

loop = asyncio.get_event_loop()
task = loop.create_task(qa_translator.atransform_documents(documents))
result = await asyncio.gather(task)
print(result[0][0].page_content)

If you prefer, I can completely remove the Jupyter example and roll back to the previous version, so the PR will only include the async functionality. Let me know what you think.

@gopetracca jupyter notebook already runs within an async event loop.
You can use an await keyword directly.
result =  await qa_translator.atransform_documents(documents)
print(result[0][0].page_content)

@eyurtsev, thanks again for the review. I pushed the fixes.

Hi @eyurtsev, there was a lint issue with the modified notebook. I updated it.

Hi @eyurtsev, thanks for reviewing this.
asyncio.to_thread is available from Python 3.9+, so to support Python3.8, I implemented it as a private method within the class as recommended here.
If you prefer, I could wrap everything in a try/except block to catch the exception that will only be triggered on Python 3.8, and use the private method only in that case, but I think this way is cleaner.


Upgrade the cert-manager to v0.14.0

What this PR does / why we need it:
Upgrade the cert-manager to v0.14.0
Release note: https://cert-manager.io/docs/release-notes/release-notes-0.14
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Documentation:

Does this PR introduce a user-facing change?:

NONE

/lgtm


python3Packages.total-connect-client: 2022.3 -> 2022.5

Description of changes
https://github.com/craigjmidwinter/total-connect-client/releases/tag/2022.5

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 172042 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.totalconnect
python310Packages.total-connect-client
python39Packages.total-connect-client


Cannot download the text or top image for Chinese news

 Issue by bq-chen
Mon Feb 11 18:55:59 2019
Originally opened as https://github.com/codelucas/newspaper/issues/676

I've tried a Chinese news link, but I get nothing as top_image or even the text of the news. Could you please guide what might have gone wrong and how to fix it? Does your api actually work for Chinese news?
>>> from newspaper import Article
>>> url = "https://www.toutiaoabc.com/index.php?app=news&act=view&nid=697665"
>>> article = Article(url)
>>> article.top_image
''
>>> article.text
''
>>> article
<newspaper.article.Article object at 0x106b90978>
>>> article.publish_date
''

https://www.toutiaoabc.com/index.php?app=news&act=view&nid=1191487


Latest Spark sample app breaks the CI test-cases

Describe the bug
Latest Spark sample app breaks some of the CI test-cases. The run is linked here
Steps to reproduce
Include sample_app_image = "public.ecr.aws/aws-otel-test/aws-otel-java-spark:latest" in testcases that use the spark sample app
What did you expect to see?
The test-case passing
What did you see instead?
The validator fails to verify the data

This is a testcase that is using the problematic image: https://github.com/aws-observability/aws-otel-test-framework/blob/622aadadd3faaf5fadf2f3272bfd6358f48d48e8/terraform/testcases/otlp_http_exporter_trace_mock/parameters.tfvars

This testcase uses the referenced image:
https://github.com/aws-observability/aws-otel-test-framework/blob/terraform/terraform/testcases/otlp_http_exporter_metric_mock/parameters.tfvars
https://github.com/aws-observability/aws-otel-collector/actions/runs/3070344837/jobs/5006504847
It was used in this CI run that was fully successful 16 days ago. I suspect that whatever was the problem with the image, it got solved.

Latest CI run looks successful for the usage of the spark app and is failing on something else it seems.

I do not think all collector tests are using the same version of the spark sample app.

I tried to find an instance where the latest image was not used but I could not find. Do you have the link for one?

I double checked and all test cases are using the latest version of the spark java sample app, which is updated here: https://github.com/aws-observability/aws-otel-java-instrumentation/blob/main/.github/workflows/main-build.yml#L52

Here are two different testcases using two different sample apps.

otlp_mock
otlp_metric

When sample_app_image is defined it overrides sample_app. When only sample_app is defined it defines in image stored in a private ECR repo otel-test/sample-apps/spark-latest. This causes problems because the private ECR images are not managed by CI/CD. This also causes more issues when different image versions/manifests are used in different regions.


Bash caused windows blue screen

I ran this script on a fresh install of bash:
sudo apt-get update
sudo apt-get upgrade

sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
sudo pip install numpy
sudo apt-get install python-matplotlib

wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz
sudo su
mkdir /opt/jdk
tar -zxf jdk-8u5-linux-x64.tar.gz -C /opt/jdk
ls /opt/jdk
update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_05/bin/java 100
update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_05/bin/javac 100

Then I ran this script:
sudo apt-get update
sudo apt-get upgrade

sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
sudo pip install numpy
sudo apt-get install python-matplotlib

wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz
sudo mkdir /opt/jdk
sudo tar -zxf jdk-8u5-linux-x64.tar.gz -C /opt/jdk
sudo ls /opt/jdk
sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_05/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_05/bin/javac 100

I do not know if this is reproducible
It could have something to do with sudo su then later running a sudo command? but I am not sure at all.
I ran the second script again after the computer restarted and did not experience any blue screen

Thanks for reporting this, I tried your script locally and I'm not seeing a bugcheck either.  Can you share which build number you are using?

Build number 14342.rs1_release.160506-1708
On May 13, 2016 1:50 PM, "Ben Hillis"<EMAIL_ADDRESS>wrote:

Thanks for reporting this, I tried your script locally and I'm not seeing
a bugcheck either. Can you share which build number you are using?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/BashOnWindows/issues/356#issuecomment-219128949

@dtracers Thanks! Do you happen to have a C:\Windows\MEMORY.DMP file on your machine?  If so could you upload it somewhere and send me the link so I can take a look?
Thanks!

I could not find that file.  Would it get deleted or removed in certain cases?

@dtracers I think you can use bluescreenview to get  the dump file from previous bluescreens. http://www.nirsoft.net/utils/blue_screen_view.html

We've fixed a couple of bugchecks recently and I suspect yours was caused by one of the bugs.  Marking this as fixinbound.

Okay thank you!
It has not happened since so I would say it is fairly stable!
Thanks for the great very very useful product!!
On Jun 17, 2016 1:03 PM, "Ben Hillis"<EMAIL_ADDRESS>wrote:

We've fixed a couple of bugchecks recently and I suspect yours was caused
by one of the bugs. Marking this as fixinbound.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BashOnWindows/issues/356#issuecomment-226854295,
or mute the thread
https://github.com/notifications/unsubscribe/AB2CDAA3hr3SLuzcTuHT-b5rl42Vt19zks5qMu9qgaJpZM4IeLbv
.

@dtracers Thank you (and the rest of this great GitHub community) for the help!

This bluescreen is fixed in build 14376.  Please let us know if you see any bluescreen in this build, thanks!

I've been having this issue for the last month or so, especially when using compilers. My most recent crashes have happened using mlton, but it's also happened using racket, Javac, and gcc.

@ktrinanm any chance that you could provide a repro?

Do you just need a picture of the crash? I have this: https://drive.google.com/file/d/0B6ZXWVT-c9FYTGdMSi1fVTZjUnM/view?usp=drivesdk

@ktrinanm Take a look at our contributing.md. Specifically, it would help if you could provide detailed steps necessary for us to reproduce this issue internally.

oh gotcha. My bash did just update, so I'll see if that changed anything.
Specifically, I have been using mlton compiler from '$apt-get mlton' then '$mlton standml.sml' It crashes directly afterwards.

@ktrinanm Could you share standml.sml?

It's only a few lines, but here it is


Usability for Tag Generator

Overview
User Testing usability for Tag Generator
Action Items

[ ] Objectives (Joyce and Shipra)
[x] Build Tag Generator Prototype (Ken)
[ ] Methodology
[x] Agree on Tools for Testing and Notes Capture (Maze has analytics display for reporting)
[ ] Recruitment for Personas
[ ] Test (Need dates)
[ ] Synthesis and Recommendation + Team Share Out

Resources/Instructions
Please put resources in Google Drive Folder

Closing issue. Duplicate of #19


Create "RandomElement" method

We should have an extension method with returns a random element from the sequence.
See http://stackoverflow.com/questions/648196/random-row-from-linq/648240#648240 for sample code.

Originally reported on Google Code with ID 20
Reported by @jskeet on 2009-03-15 18:08:59

Closing because there's been no activity on this issue for nearly 7 years.


BENCH: split spatial benchmark imports

As the different parts were added at different times, it's better to
import them separately so that only specific benchmarks stop working for
old scipy versions.

I wrote some of the benchmarks involved and have been working with @pv on asv itself. The changes look sensible to me so merging.


[be] support new mark join

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall


lets init static failed when moving the uncompressed files

When I follow the documentation: https://docs.let.sh/, and try to deploy the static site, this issue occurs to me.

We should use another way to move files across different devices.
Related codes:
https://github.com/let-sh/cli/blob/87ce54b0344e297723e971adf5a1a75c35504a5f/cmd/init.go#L81-L87
I am very pleased to contribute to fix this issue, fell free to assign this issue on me

Looking forward to your contribution!


Adds prop-setting

This adds a new method to ARComponentViewController that sets the props of the rootView if the view is loaded, or sets the initialProps for the rootView if it hasn't been loaded yet. I don't see any Objective-C tests for Emission so I didn't add any, but something to think about longer term.
This is useful for when we want to switch tabs on the home component controller when the app is launching (for example, from a push notification).

Yeah, cool, this makes sense to me 👍