timeseries that can handle strings

This fix allows the libxdf package to support strings (issue # 19).  I also cleaned up "case 3" in the load_xdf file.  part is required to support strings, but a lot of it is just reducing repetitive code.
Note that string support requires C++17 for std::variant

Hi, thank you very much for the PR.
This PR is quite large; for historical reason, this library currently does not have unit tests, hence a large change like this is quite risky.
Is it possible to split this into multiple smaller PRs? This would make review much easier and much less risky.
Thank you very much in advance.

Please also address the CI run issues above; seems only the ubuntu run finished successfully.
Thank you very much!

I looked through the details of the CI run issues, and I think they are running older versions of C++ that cannot handle std::variant.  Both machines I have been using to develop/test this are M-series Macs, and it compiles just fine on both of them - but I verified that both used compilers with C++17 (or later) first.
This is my first experience with a PR, and I'm not entirely sure what the CI process consists of.  (Apologies for your needing to deal with an amateur.)
If I'm reading the run issues right, the two options are either (1) try again with a newer compiler or (2) use a template instead of std::variant.  Let me know your thoughts.  I'm happy to assist in any way I can (just realize that I'm learning on the job here).

I only have a general comment on the structure of these changes (since my C++ is very limited these days). The PR is quite large mainly because it simplifies control flow by removing or summarizing redundant parts. Would it be clearer if the overall structure remained the same and only the string-related parts were adjusted? This would probably also make it easier to review.
Also, some changes don't follow the library's four-space indentation style. Please make sure that each block is indented by four spaces (a few are only indented by two).

Out of curiosity, can you check to see if this works now that it's running C++20? My C++ is very limited, and while I understand that a template solution is better than what I've done, it's not something I have the bandwidth to figure out right now, unfortunately.

Hello, I just tried running CI again and seems there are some compiling errors. Would you mind helping taking a look?
Once it compiles I'd be happy to approve the change; we can figure out template and other improvements in the future.
Thank you very much.

Before merging this PR, would it be possible to test the library with the XDF files available here:
https://osf.io/uc7wn/
There are several XDF files in the corresponding folder, which should work with the current release. Since we don't have unit tests, we should at least make sure that we do not introduce regressions that lead to errors loading these files.

I can look into the errors tomorrow and check to make sure it works on the test cases.  Thanks!

I believe this should be working now.
Let me know if there are still issues - I did test the various files from https://osf.io/uc7wn/, with the only issue being the one noticed in PR#26.

I should also add - I am about 99% sure that event_map is no longer being used in this version.  I have not removed that code, but it may be extraneous at this point.

Thank you; I was traveling in the last few days and will take a closer look this week.

Sorry for the delay; looks great! Thank you very much for your contribution.

@Yida-Lin xdf.pro should have been updated to include c++17 instead of c++11 – could you please push a hotfix?

Also, I now get errors when building SigViewer with these changes:

src/file_handling_impl/xdf_reader.cpp:341:26: error: non-const lvalue reference to type 'vector<std::variant<int, float, double, long long, std::string>, allocator<std::variant<int, float, double, long long, std::string>>>' cannot bind to a value of unrelated type 'vector<float, allocator<float>>'
  341 |                 row.swap(nothing);
      |                          ^~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:716:72: note: passing argument to parameter here
  716 |   _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void swap(vector&)
      |                                                                        ^
src/file_handling_impl/xdf_reader.cpp:359:27: error: assigning to 'float' from incompatible type 'value_type' (aka 'std::variant<int, float, double, long long, std::string>')
  359 |                     *pt = row[i];
      |                           ^~~~~~
src/file_handling_impl/xdf_reader.cpp:369:89: error: invalid operands to binary expression ('value_type' (aka 'std::variant<int, float, double, long long, std::string>') and 'value_type')
  369 |                             *(pt + interpolation) = row[i] + interpolation * ((row[i+1] - row[i])) / (interval + 1);
      |                                                                                ~~~~~~~~ ^ ~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qmargins.h:159:34: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QMargins' for 1st argument
  159 | Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept
      |                                  ^         ~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qmargins.h:177:34: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QMargins' for 1st argument
  177 | Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &lhs, int rhs) noexcept
      |                                  ^         ~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qmargins.h:391:35: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QMarginsF' for 1st argument
  391 | Q_DECL_CONSTEXPR inline QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept
      |                                   ^         ~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qmargins.h:409:35: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QMarginsF' for 1st argument
  409 | Q_DECL_CONSTEXPR inline QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept
      |                                   ^         ~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qsize.h:184:37: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QSize' for 1st argument
  184 | Q_DECL_CONSTEXPR inline const QSize operator-(const QSize &s1, const QSize &s2) noexcept
      |                                     ^         ~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qsize.h:359:38: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QSizeF' for 1st argument
  359 | Q_DECL_CONSTEXPR inline const QSizeF operator-(const QSizeF &s1, const QSizeF &s2) noexcept
      |                                      ^         ~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qpoint.h:174:38: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QPoint' for 1st argument
  174 | Q_DECL_CONSTEXPR inline const QPoint operator-(const QPoint &p1, const QPoint &p2)
      |                                      ^         ~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qpoint.h:375:39: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QPointF' for 1st argument
  375 | Q_DECL_CONSTEXPR inline const QPointF operator-(const QPointF &p1, const QPointF &p2)
      |                                       ^         ~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qrect.h:476:31: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QRect' for 1st argument
  476 | Q_DECL_CONSTEXPR inline QRect operator-(const QRect &lhs, const QMargins &rhs) noexcept
      |                               ^         ~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qrect.h:889:32: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QRectF' for 1st argument
  889 | Q_DECL_CONSTEXPR inline QRectF operator-(const QRectF &lhs, const QMarginsF &rhs) noexcept
      |                                ^         ~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtGui.framework/Headers/qtransform.h:417:19: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::variant<int, float, double, long long, std::string>') to 'const QTransform' for 1st argument
  417 | inline QTransform operator -(const QTransform &a, qreal n)
      |                   ^          ~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/reverse_iterator.h:288:1: note: candidate template ignored: could not match 'reverse_iterator' against 'variant'
  288 | operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
      | ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/move_iterator.h:304:1: note: candidate template ignored: could not match 'move_iterator' against 'variant'
  304 | operator-(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -> decltype(__x.base() - __y.base()) {
      | ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/wrap_iter.h:182:5: note: candidate template ignored: could not match '__wrap_iter' against 'variant'
  182 |     operator-(const __wrap_iter<_Iter1>& __x,
      |     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ios/fpos.h:60:40: note: candidate template ignored: could not match 'fpos' against 'variant'
   60 | inline _LIBCPP_HIDE_FROM_ABI streamoff operator-(const fpos<_StateT>& __x, const fpos<_StateT>& __y) {
      |                                        ^
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qsharedpointer_impl.h:847:63: note: candidate template ignored: could not match 'QSharedPointer' against 'variant'
  847 | Q_INLINE_TEMPLATE typename QSharedPointer<T>::difference_type operator-(const QSharedPointer<T> &ptr1, const QSharedPointer<X> &ptr2)
      |                                                               ^
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qsharedpointer_impl.h:852:63: note: candidate template ignored: could not match 'QSharedPointer' against 'variant'
  852 | Q_INLINE_TEMPLATE typename QSharedPointer<T>::difference_type operator-(const QSharedPointer<T> &ptr1, X *ptr2)
      |                                                               ^
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qsharedpointer_impl.h:857:63: note: candidate template ignored: could not match 'T *' against 'value_type' (aka 'std::variant<int, float, double, long long, std::string>')
  857 | Q_INLINE_TEMPLATE typename QSharedPointer<X>::difference_type operator-(T *ptr1, const QSharedPointer<X> &ptr2)
      |                                                               ^
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qpoint.h:395:39: note: candidate function not viable: requires single argument 'p', but 2 arguments were provided
  395 | Q_DECL_CONSTEXPR inline const QPointF operator-(const QPointF &p)
      |                                       ^         ~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qpoint.h:198:38: note: candidate function not viable: requires single argument 'p', but 2 arguments were provided
  198 | Q_DECL_CONSTEXPR inline const QPoint operator-(const QPoint &p)
      |                                      ^         ~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qmargins.h:476:35: note: candidate function not viable: requires single argument 'margins', but 2 arguments were provided
  476 | Q_DECL_CONSTEXPR inline QMarginsF operator-(const QMarginsF &margins) noexcept
      |                                   ^         ~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qmargins.h:272:34: note: candidate function not viable: requires single argument 'margins', but 2 arguments were provided
  272 | Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &margins) noexcept
      |                                  ^         ~~~~~~~~~~~~~~~~~~~~~~~
src/file_handling_impl/xdf_reader.cpp:378:26: error: non-const lvalue reference to type 'vector<std::variant<int, float, double, long long, std::string>, allocator<std::variant<int, float, double, long long, std::string>>>' cannot bind to a value of unrelated type 'vector<float, allocator<float>>'
  378 |                 row.swap(nothing);
      |                          ^~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:716:72: note: passing argument to parameter here
  716 |   _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void swap(vector&)
      |                                                                        ^
In file included from src/file_handling_impl/xdf_reader.cpp:7:
In file included from src/file_handling_impl/xdf_reader.h:10:
In file included from src/file_handling/file_signal_reader.h:8:
In file included from src/file_handling/basic_header.h:9:
In file included from src/base/signal_channel.h:12:
In file included from /opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/QString:1:
In file included from /opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qstring.h:49:
In file included from /opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qchar.h:43:
In file included from /opt/homebrew/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qglobal.h:142:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/algorithm:1794:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy.h:40:19: error: assigning to 'float' from incompatible type 'std::variant<int, float, double, long long, std::string>'
   40 |       *__result = *__first;
      |                   ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy_move_common.h:109:19: note: in instantiation of function template specialization 'std::__copy_loop<std::_ClassicAlgPolicy>::operator()<std::variant<int, float, double, long long, std::string> *, std::variant<int, float, double, long long, std::string> *, float *>' requested here
  109 |   auto __result = _Algorithm()(std::move(__range.first), std::move(__range.second), std::__unwrap_iter(__out_first));
      |                   ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy_move_common.h:133:15: note: in instantiation of function template specialization 'std::__unwrap_and_dispatch<std::__overload<std::__copy_loop<std::_ClassicAlgPolicy>, std::__copy_trivial>, std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, float *, 0>' requested here
  133 |   return std::__unwrap_and_dispatch<_Algorithm>(std::move(__first), std::move(__last), std::move(__out_first));
      |               ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy.h:111:15: note: in instantiation of function template specialization 'std::__dispatch_copy_or_move<std::_ClassicAlgPolicy, std::__copy_loop<std::_ClassicAlgPolicy>, std::__copy_trivial, std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, float *>' requested here
  111 |   return std::__dispatch_copy_or_move<_AlgPolicy, __copy_loop<_AlgPolicy>, __copy_trivial>(
      |               ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy.h:118:15: note: in instantiation of function template specialization 'std::__copy<std::_ClassicAlgPolicy, std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, float *>' requested here
  118 |   return std::__copy<_ClassicAlgPolicy>(__first, __last, __result).second;
      |               ^
src/file_handling_impl/xdf_reader.cpp:334:22: note: in instantiation of function template specialization 'std::copy<std::__wrap_iter<std::variant<int, float, double, long long, std::string> *>, float *>' requested here
  334 |                 std::copy(row.begin(), row.end(), raw_data->begin() + startingPosition);
      |                      ^
5 errors generated.
make: *** [tmp/release/xdf_reader.o] Error 1

It seems related to the std::variant change. Do you have time to look?

Hi @cbrnr , sorry about that; for changing C++11 to a higher version in xdf.pro, I created https://github.com/xdf-modules/libxdf/pull/44. Please take a look when convenient.
For the std::variant change, let me take a closer look this week and see if I can update it to using template.

Thanks @Yida-Lin, I think templates would indeed be a preferable solution here.

Hi, sorry it took a while, I am looking into addressing @cbrnr 's issue above with compiling with SigViewer.
But I just realized an issue: why did we want to store strings in time_series anyways? Prior to this PR, libxdf actually already supported string, but it was stored in eventMap, i.e. it is not a time series, but a string event.
Because SigViewer  relies on the eventMap to render those string events, even if I fix the compiling issue, I think it will not work correctly anymore.
If we just want to fix #19 , then I think the fix should be on eventMap instead. This way we also don't need std::variant.
Sorry I overlooked this earlier, would appreciate some clarifications. Thanks! @melissakey

If I understood correctly, #19 was not complaining about libxdf not supporting strings, but rather the dimension is incorrect (only reading N instead of M x N).

Yes, that's exactly right.

Thanks @cbrnr . If that's the case, unfortunately we'd need to revert this PR. The fix should be applied to the usage with regard to eventMap instead.
Please let me know if I misunderstood anything; otherwise I will apply the revert and the new fix some time this week. Thanks!

I would think so, yes, because this PR also explicitly mentioned to fix #19 (which BTW is still open). Can you confirm @melissakey?

The challenge with eventMap goes beyond reading N instead of M x N.  The eventMap object is designed for stream-agnostic data such as notes.  In fact, in the demonstrations of LSL, multiple notes were produced that belong in a 1-channel, stream-agnostic location.  eventMap is perfect for that, and if all the strings were notes, the original code would work fine.
In addition to those notes, I also have M x N streams coming from a cognitive task where some of the fields are strings.  In the current version of the output, the cog task produces 4 streams, each with a different number of columns, 2 of which contain strings.  In each of these streams, both M and N are stream-specific, which means that eventMap, as currently conceived, is not appropriate - partially because of the M X N issue, but mostly because it's not stream-specific.
For this task, there is no scenario in which we can remove strings altogether.  One of the fields will contain a randomly generated list of numbers/letters where the length is determined by the difficulty of the task.  More generally, we pair a lot of cognitive assessment data containing a mixture of strings and numeric data with physiological data that is typically numeric.
Looking at the test case from #19, it's not clear whether that string data should be treated as stream-agnostic event data requiring multiple fields (e.g. appropriate to eventMap, but with more flexibility) or a stream (more similar to what I have).
I don't know much about the interface with SigViewer, so I'm not entirely sure what to say on that account.  How would it/should it handle Pandas DataFrames with mixed-type data?

I see. Thanks @melissakey .
So how about this: looks to me that Stream contains an M x N matrix, but it also has a stream.info.channel_format, which means all items inside the M x N matrix are of the same type, right? I guess we could add a template <typename T> to Stream to generalize the use case, and get rid of eventMap (which would require updating the SigViewer code but it shouldn't be too complicated).
Let me know what you think, cc @cbrnr

I trust your expertise @Yida-Lin! If SigViewer needs to be updated, it would be great if you could do that too!


einx.where auto moving float / int type inputs to correct device

Hey Florian! Thank you again for einx; it continues to be very useful :pray:
So I ran into a small gotcha recently, best explained in a short code snippet
import torch
import einx

attn_similarities = torch.randn((2, 8, 1024, 1024)).cuda()
key_padding_mask = torch.randint(0, 1, (2, 1024)).bool().cuda()

# pytorch where

pytorch_masked = torch.where(
    einx.rearrange('b j -> b 1 1 j', key_padding_mask),
    attn_similarities,
    0.
)

# einx where

masked = einx.where(
    'b j, b h i j, -> b h i j',
    key_padding_mask,
    attn_similarities,
    0.
)

# fails since 0. does not get moved to the correct device

there are workarounds of course, so i'll leave this up to you whether you'd like to make it more aligned with pytorch's behavior!

Hey Phil, it looks like Pytorch auto-moves regular floats/ints to GPU, but not if one converts them to a torch.Tensor first (which is done in einx to get a tensor object for the 0.). I tried a couple of ways to fix this, but am not happy with how they turned out.
I'll keep the issue open for now, and will let you know when I have a solution.

@fferflo yup, not a high priority issue!

Just under lightspeed this time, but floats/ ints should be handled correctly with v0.2.1. In your example, the 0. argument is now forwarded directly to torch.where:
>>> print(einx.where('b j, b h i j, -> b h i j', key_padding_mask, attn_similarities, 0., graph=True))
import torch
def op0(i0, i1, i2):
    x0 = torch.reshape(i0, (2, 1, 1, 1024))
    x1 = torch.where(x0, i1, i2)
    return x1

Thanks for bringing it up!

@fferflo works perfectly, thank you Florian! 🙏


fix(compiler-dom): should bail hoisted on break content with innerHTM…

…L (eg.tables related tags)
fix #https://github.com/vitejs/vite/issues/226
Bug Reson
Look like it's caused by innerHtml error with table related tags.
Sloution  DOMParser(Fail)
 const div = "

"
    const doc = new DOMParser().parseFromString(div, "text/html")
    console.log(doc.body.innerHTML)
    console.log(div)
    console.log(div.trim() === document.body.innerHTML.trim())
    console.log(div.length, document.body.innerHTML.length)

// run result

false
136 4023

I think can be parse by DOMParser, but it meet error for normal case.This is brower test result. And other run result in jest jsdom.

https://github.com/vuejs/vue-next/pull/1286
Todo: This pr is used the value of context.parent is error.This above pr implement it correctly.

context.parent is only usable during the normal transform phase. Static hoisting phase is a post-transform so context.parent is not accurate in this case.

No need to bail on p because anything can be placed inside p can be placed in div. Also colspan is not an element.

It should be enough to just check each root hoisted node for bail. The only case where it would produce unexpected result is when the user has authored invalid HTML in the first place. We can add a dev only check to ensure all stringified HTML structure is valid.


Tracing redux dispatch (plain redux and react-redux)

I observed difference on sequence of some actions when using plain redux and react-redux. See this example (plain):
let flag = true;
let i = 0;
const render = () => {
  console.log("before", i++);
  if (flag) {
    flag = false;
    store.dispatch({ type: "INCREMENT" });
    console.log("set", i++);
  }
  console.log("proceeding", i++);
};

store.subscribe(render);
render();

Output is
before 0
before 1
proceeding 2
set 3
proceeding 4

This matched my intuition namely as soon as first time dispatch was called inside if, you can see new render was immediately called: "before 0" followed by "before 1" instead of "before 0" followed by "set 1". Then it printed "proceeding 2" because flag was already reset. And last two lines are from first render which were pending from first render. In total 2 render calls.
My issue is I can't seem to reproduce same sequence of calls when I use redux with react and connected component. I have similar setup like this (in render):
   console.log("before", this.i++)
   if(this.flag){

       this.flag=false;
       this.props.dispatch(setDetailsItem(null))

       console.log("set", this.i++)

    }
    console.log("proceeding", this.i++)

Output
before 0
set 1
proceeding 2
before 3
proceeding 4
before 5
proceeding 6

Namely in react as soon as first dispatch happened, you can see the code proceeded (instead of immediately calling a new render as in previous case) and printed "set 1" (after "before 0"). Only afterwards new render was called and since flag was already changed now  we never see "set".
Does someone have explanation why this difference with redux when using react and when not using it? Also in react case does it mean, the components get notified about change in state asynchronously? Otherwise how did it manage to update state and then proceed with old render like I showed - and only afterwards call a new render?

Yes, in general, React-Redux asks React to trigger an update (via a setState() call).  It's then up to React to decide when to actually execute that re-render and update.  So, components are notified synchronously, but may be re-rendered asynchronously.


Remote GAMBLR (outside GSC) is now a thing. Testers wanted!

This was tested on my laptop using the test_remote.R script bundled with GAMBLR. The snakefile to allow the user to sync the required files is also provided. I haven't made a yml file for that environment yet.
Pull Request Checklists
Important: When opening a pull request, keep only the applicable checklist and delete all other sections.
Checklist for all PRs
Required

[ ] I tested the new code for my use case (please provide a reproducible example of how you tested the new functionality)

[ ] I ensured all dplyr functions that commonly conflict with other packages are fully qualified.

This can be checked and addressed by running check_functions.pl and responding to the prompts. Test your code after you do this.

[ ] I generated the documentation and checked for errors relating to the new function (e.g. devtools::document()) and added NAMESPACE and all other modified files in the root directory and under man.

Optional but preferred with PRs

[ ] I updated and/or successfully knitted a vignette that relies on the modified code (which ones?)

Checklist for New Functions
Required

[ ] I documented my function using ROxygen style.)

[ ] All parameters for the function are described in the documentation and the function has a decriptive title.

Example:
#' Use GISTIC2.0 scores output to reproduce maftools::chromoplot with more flexibility
#'
#' @param scores output file scores.gistic from the run of GISTIC2.0
#' @param genes_to_label optional. Provide a data frame of genes to label (if mutated). The first 3 columns must contain chromosome, start, and end coordinates. Another required column must contain gene names and be named `gene`. (truncated for example)
#' @param cutoff optional. Used to determine which regions to color as aberrant. Must be float in the range [0-1]. (truncated for example)

[ ] My function uses a library that isn't already a dependency of GAMBLR and I made the package aware of this dependency using the function documentation import statment.

Example:
#' @return nothing
#' @export
#' @import tidyverse ggrepel

Checklist for changes to existing code

[ ] I added/removed arguments to a function and updated documentation for all changed/new arguments

[ ] I tested the new code for compatability with existing functionality in the Master branch (please provide a reprex of how you tested the original functionality)

This now has a patch for cBIoportal (portal.R) that fixes some issues caused by recent updates.


Fixed Install Issue

This change fixed the following issue https://issues.shopware.com/issues/SW-25364

1. Why is this change necessary?
This changes fixed the install fatal error
2. What does this change do, exactly?
3. Describe each step to reproduce the issue or behaviour.

Download Shopware 5 CE from https://en.shopware.com/download/
Start install
Without this patch a fatal error occurs.

4. Please link to the relevant issues (if any).
https://issues.shopware.com/issues/SW-25364
5. Which documentation changes (if any) need to be made because of this PR?
none
6. Checklist

[ ] I have written tests and verified that they fail without my change
[ ] I have squashed any insignificant commits
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[ ] I have read the contribution requirements and fulfil them.

This is not a fix. It could introduce a new security issue. Cause the shop owner can fill the mysql credentials and a second user could finish the installation with creating an admin user.
The issue here is, that your session is away before you complete the setup

Hey @nasirkhan,
as @shyim already said, this change would introduce a new security issue and thus we cannot import your Pull Request.
Thank you anyway for your Pull Request and your efforts! 💙
We're closing this Pull Request for the reasons mentioned above.


Add later extension

Description

Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

I tried this, but when using Later - Read It Later, I ended up with this error (was using Arc at the time)
09:59:59.189 Error: Command failed: osascript -e
0:9: execution error: Variablen undefined er ikke defineret. (-2753)

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess.emit (node:domain:488:12)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {
  code: 1,
  killed: false,
  signal: null,
  cmd: 'osascript -e  ',
  stdout: '',
  stderr: '0:9: execution error: Variablen undefined er ikke defineret. (-2753)\n'
}

Do you have any idea what might be causing this?

Thank you for your finding. There are some details I want you to provide:

Arc version code
Did your Arc open or not while using Later - Read It Later Command
Did this problem appear in other browsers likeMicrosoft Edge, Chrome?

Yes, it also happens with Chrome (and Arc of course), both in the newest versions. I'm having the browser in front before running the command.
Nothing changed besides the error in the console

I was able to do some more testing:

The error is occurring because I use Velja as middleware for the browser. Maybe we should let the user set their preferred browser in preferences instead?

use useForm in the form for adding new entries since it comes with validation and haldling of states 🙂

The delete action should maybe have style={Action.Style.Destructive} and a confirmAlert?

I was able to do some more testing:

The error is occurring because I use Velja as middleware for the browser. Maybe we should let the user set their preferred browser in preferences instead?
use useForm in the form for adding new entries since it comes with validation and haldling of states 🙂
The delete action should maybe have style={Action.Style.Destructive} and a confirmAlert?

I think if I got the user's default browser, saving links and opening links would be intuitive and out of the box. Appending a preference view for choosing a default browser is another good solution, I will make a tradeoff about that. Thank you for advising.


Insert parameters in params DSL from Map

Hi guys, this is probably more a question than a bug. Imagine I have this function:
    override fun get(endpoint: String, params: MutableMap<String, Any>?): Response {

        val response = httpGet {
            host = "https://url-for-my-web-service"
            path = endpoint
            param {
                "token" to token
            }
        }
        return  response;
    }

I need to merge the parameters I get from params and the token parameter. However I do not know how to manipulate the param DSL to do that. Is it possible in the current version?

Hi @THeK3nger , thanks for your question.
I suggest you could try this technique:
override fun get(endpoint: String, params: MutableMap<String, Any>?): Response {

        val response = httpGet {
            host = "https://url-for-my-web-service"
            path = endpoint
            param {
                params?.forEach { (k, v) ->
                    k to v.toString()
                }
                "token" to token
            }
        }
        return  response
    }

So for each entity from params map you will call infix to function from ParamContext.
Please let me know if it will solve your problem

Thank you @rybalkinsd . This solution seems to work fine! :)


How to add a svg/gif icon in loadingInner

Hi;
I would like to add an icon in loadingInner, but even the default icon didnt work correctly in my project. Otherwise the animation is working good (fade-in fade-out ...). I added the class="animsition" to the  but since the loading take a time I want to display a loading icon.
I tried to add

but the default icon appear after the loading of the page as an image in the center of the screen ! How can I do please to handle this ? This is my code :

$Ja(".animsition").animsition({
inClass: 'fade-in-left-sm',
outClass: 'fade-out-left-sm',
inDuration: 1500,
outDuration: 800,
linkElement: 'a:not([target="_blank"]):not([href^=#])',
loading: true,
loadingParentElement: 'body', //animsition wrapper element
loadingClass: 'animsition-loading',
loadingInner: '',
timeout: false,
timeoutCountdown: 5000,
onLoadEvent: true,
browser: [ 'animation-duration', '-webkit-animation-duration'],
overlay : false,
overlayClass : 'animsition-overlay-slide',
overlayParentElement : 'body',
transition: function(url){ window.location.href = url; }
});

I too would like to know this. It doesnt spin true on center, it looks as if the chosen image is being swung around, outside the svg file. That being said, this is a lovely looking plugin, nice work

I am also looking for same.


init

Changelog entry
test doc for prometheus iface
...
Changelog category

Documentation (changelog entry is not required)

Additional information
...

@sourcecd, do you intend to finish this PR?


wip: dynamic input field in progress [desired roles modal]

@sifatul vaiya please review this pr in the meantime i'll finish desired roles modal form


firestore/CMakeLists.txt: add dbghelp and bcrypt libraries to ADDITIONAL_LIBS on windows

Fixes #146

Hmm I can't merge with the workflow failures. Do you want to force it in, @jonsimantov ?


Account data too small for instruction  error when deploying program with anchor deploy

Hi, I'm new to Anchor and by following some working tutorials from beta.solpg.io I made local project and got it working and building fine. But when this code is present while deploying i get error saying that Deploying program failed: RPC response error -32002: Transaction simulation failed: Error processing Instruction 0: account data too small for instruction.
Im on latest builds for avm and anchor-cli.
Can someone point out the issue with this code?
#[derive(Accounts)]
#[instruction()]
pub struct CreatePost<'info> {
    #[account(
        init,
        seeds = [POST_SEED, authority.key().as_ref(), &[user_account.last_post_id as u8].as_ref()],
        bump,
        payer = authority,
        space = 2377 + 8
    )]
    pub post_account: Account<'info, PostAccount>,

    #[account(mut,seeds = [USER_SEED, authority.key().as_ref()], bump, has_one = authority)]
    pub user_account: Account<'info, UserAccount>,

    #[account(mut)]
    pub authority: Signer<'info>,

    pub system_program: Program<'info, System>,
}

#[account]
#[derive(Default, InitSpace)]
pub struct PostAccount {
    pub id: u8, // 1
    #[max_len(256)]
    pub title: String, // 4 + 256
    #[max_len(2048)]
    pub content: String, // 4 + 2048
    pub user: Pubkey, // 32
    pub authority: Pubkey, // 32
}

This program can be built locally but not deployed but on beta.solpg.io it builds, tests are passing and it deploys. I even connected from frontend to that program and interact with it.

Why is it not deploying from cli I have no idea and I really need some help if anyone know the answer from their experiences that would be great.
thank you!

Skill issue.
When we deploy our program once and we want to redeploy it because we did more stuff to it it will throw this error.
Solution for me was to just generate new keys for program id and new name. Now it builds, deploys as before.
I think that is self explanatory now when I know that information. Correct me if I'm wrong.


AdonisJS Integration

Helloooo
I think I'm not the only one who want Fedify in AdonisJS ! It should be possible because AdonisJS supports custom middleware and, since the V6, the ESM packages !
But I don't have any ideas to solve the problem : how to implement ?
A person on the discord of AdoniJS tells me :
So the middleware will return a response, and works with the raw request, which I think is possible to get from Adonis' Request class
But I tryed and, obviously it doesn't work. I think integreate Fedify in AdonisJS should be an advance because Adonis has a big community instead of the others web frameworks x)
Anyone have an idea to integreate ?

Since I'm new to AdonisJS, I'll have to take a look at it. I'll play around with it a bit and let you know.

That might actually be me being quoted there. I am looking at hacking on this, but I'm wanted to make the API work in an "adonis-like" manner with loaders and such for endpoints/resolvers


Small fixes to wasm + new validate package

This change is

Reviewed 5 of 6 files at r1.
Review status: 5 of 6 files reviewed at latest revision, 1 unresolved discussion.

wasm/section.go, line 631 at r1 (raw file):

	Locals         []LocalEntry
	Code           []byte
	MaxDepth       int // the maximum stack depth that can be reached while executing this body

why don't we need those anymore?

Comments from Reviewable

Review status: 5 of 6 files reviewed at latest revision, 1 unresolved discussion.

wasm/section.go, line 631 at r1 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
why don't we need those anymore?

These fields aren't actually specified in the wasm spec for function_body: https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#function-bodies
I had added these fields for execution purposes, so that they can be used to correctly allocate the stack and local var vector/array. To keep the API design consistent, I have moved them to the disasm package, as they are better suited to that.

Comments from Reviewable

LGTM.
except the commit messages aren't following our convention :)
they should be of the form:
package: short description

More detailed description if needed.

also, I would split 1075803 into the part that is really related to buf and the part about the correct Stringer implementation.
(we shouldn't probably squash that PR into just one big commit and keep the granularity as it is)

Reviewed 1 of 6 files at r1, 1 of 2 files at r2.
Review status: 5 of 6 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 1 of 2 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

also, I would split 1075803 into the part that is really related to buf and the part about the correct Stringer implementation.

Done.

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable

Review status: 6 of 11 files reviewed at latest revision, 17 unresolved discussions.

validate/error.go, line 1 at r3 (raw file):

package validate

please add a license header.

validate/error.go, line 11 at r3 (raw file):

)

type ValidateError struct {

from a user's perspective, this type is called validate.ValidateError.
why not just call it Error. it would remove some stuttering: validate.Error.

validate/error.go, line 12 at r3 (raw file):

Offset   int
please document of what that Offset is (bytes, ...) and into what.

validate/error.go, line 21 at r3 (raw file):

}

var ErrStackUnderflow = errors.New("stack underflow")

s/stack underflow/validate: stack underflow/

validate/error.go, line 52 at r3 (raw file):

type InvalidTypeError struct {
	Expected wasm.ValueType

to match what is usually done in tests, I would rename Expected into Wanted.
and put Got before Wanted.

validate/error.go, line 57 at r3 (raw file):

func (e InvalidTypeError) Error() string {
	return fmt.Sprintf("invalid type: wanted %s, got %s", e.Expected.String(), e.Got.String())

no need to explicitly call .String(), let fmt.Sprintf use the Stringer interface. do this instead:
return fmt.Sprintf("invalid type. got %s, want %s", e.Got, e.Expected)

validate/operand.go, line 1 at r3 (raw file):

package validate

please add a license header.

validate/validate.go, line 1 at r3 (raw file):

package validate

please add a license header.

validate/validate.go, line 44 at r3 (raw file):

	for {
		curPc := vm.pc()

it's not clear to me why we do this.
is it a debugging leftover ?

validate/validate.go, line 47 at r3 (raw file):

		_ = curPc
		op, err := vm.codeReader.ReadByte()
		if err == io.EOF {

you should also probably return that error (and possibly "decorate" it) if that error is not nil (and not io.EOF.)

validate/validate.go, line 301 at r3 (raw file):

			}

			// remaining checks are done dynamically

could you note in the comment what are these remaining checks?

validate/validate.go, line 323 at r3 (raw file):

			}

			// last 2 poppoed values should be of the same type

typo: poppoed

validate/validate.go, line 338 at r3 (raw file):

}

func VerifyModule(module *wasm.Module) error {

please document this exported method.

validate/vm.go, line 1 at r3 (raw file):

package validate

please add a license header.

validate/vm.go, line 19 at r3 (raw file):

	origLength int // the original length of the bytecode stream

	codeReader *bytes.Reader

I would just call it code.

validate/vm.go, line 47 at r3 (raw file):

func (vm *mockVM) fetchUint32() (i uint32, err error) {
	err = binary.Read(vm.codeReader, binary.LittleEndian, &i)

that's fine for the moment (we don't really know the perf bottlenecks) but please put a TODO to use the direct, reflection-less binary.LittleEndian.Uint32 method.

validate/vm.go, line 52 at r3 (raw file):

func (vm *mockVM) fetchUint64() (i uint64, err error) {
	err = binary.Read(vm.codeReader, binary.LittleEndian, &i)

that's fine for the moment (we don't really know the perf bottlenecks) but please put a TODO to use the direct, reflection-less binary.LittleEndian.Uint64 method.

Comments from Reviewable

Review status: 6 of 11 files reviewed at latest revision, 17 unresolved discussions.

validate/error.go, line 1 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
please add a license header.

Done.

validate/error.go, line 11 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
from a user's perspective, this type is called validate.ValidateError.
why not just call it Error. it would remove some stuttering: validate.Error.

Done.

validate/error.go, line 21 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
s/stack underflow/validate: stack underflow/

Done.

validate/error.go, line 52 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
to match what is usually done in tests, I would rename Expected into Wanted.
and put Got before Wanted.

Done.

validate/error.go, line 57 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
no need to explicitly call .String(), let fmt.Sprintf use the Stringer interface. do this instead:
return fmt.Sprintf("invalid type. got %s, want %s", e.Got, e.Expected)

Done.

validate/operand.go, line 1 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
please add a license header.

Done.

validate/validate.go, line 1 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
please add a license header.

Done.

validate/validate.go, line 44 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
it's not clear to me why we do this.
is it a debugging leftover ?

Yep, forgot to remove it.

validate/validate.go, line 47 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
you should also probably return that error (and possibly "decorate" it) if that error is not nil (and not io.EOF.)

Yep, although error decoration is already done inside the loop in VerifyModule.

validate/validate.go, line 301 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
could you note in the comment what are these remaining checks?

Done.

validate/validate.go, line 323 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
typo: poppoed

Done.

validate/validate.go, line 338 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
please document this exported method.

Done.

validate/vm.go, line 1 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
please add a license header.

Done.

validate/vm.go, line 19 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
I would just call it code.

Done.

validate/vm.go, line 47 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
that's fine for the moment (we don't really know the perf bottlenecks) but please put a TODO to use the direct, reflection-less binary.LittleEndian.Uint32 method.

Done.

validate/vm.go, line 52 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
that's fine for the moment (we don't really know the perf bottlenecks) but please put a TODO to use the direct, reflection-less binary.LittleEndian.Uint64 method.

Done.

Comments from Reviewable

Review status: 6 of 11 files reviewed at latest revision, 17 unresolved discussions.

validate/error.go, line 12 at r3 (raw file):
Previously, sbinet (Sebastien Binet) wrote…

Offset   int
please document of what that Offset is (bytes, ...) and into what.

Done.

Comments from Reviewable

Review status: 6 of 11 files reviewed at latest revision, 1 unresolved discussion.

validate/validate.go, line 287 at r4 (raw file):

			// Since this is possible only during program execution, we only
			// perform the static check for the function index mentioned
			// in the bytecode stream, that

the suspense is unbearable :)

Comments from Reviewable

Reviewed 1 of 5 files at r3, 3 of 4 files at r4.
Review status: 10 of 11 files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

 (now you just have to squash the validate-related commits together with a commit message validate: new package and some blurb explaining what it does)

Reviewed 1 of 1 files at r5.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion, all commit checks successful.

validate/validate.go, line 287 at r4 (raw file):
Previously, sbinet (Sebastien Binet) wrote…
the suspense is unbearable :)

oops, fixed.

Comments from Reviewable

thanks!


Please Help

Why is there no Arabic translation download?
Can you help with something?
File name should be "A Centaur's Life S01E01"
And not the title of the episode because it is too big and I want to withdraw large amounts of anime
Is it possible to add that the file is in mkv format and not ts
I would be very grateful to help with that

Arabic translation is available via the ar-ME locale, so if you want arabic subtitles use --subtitle ar-ME and for audio --audio --ar-ME. If the language is not available even if you're doing this, the anime is probably not available in this language.
For other files than .ts you can use the --output flag, in your case --output "{series_name} S{season_number}E{episode_number}.mkv". Note that you need ffmpeg installed to convert the video in any other format than .ts.
So an example command you may want to use is crunchyroll-go download --output "{series_name} S{season_number}E{episode_number}.mkv" https://www.crunchyroll.com/a-centaurs-life

thank you my friend
I want to make a small request. Is it possible to convert the translation
style into my own style instead of the default style
في الأحد، 16 يناير 2022 في 7:26 م تمت كتابة ما يلي بواسطة ByteDream <
@.***>:

Arabic translation is available via the ar-ME locale, so if you want
arabic subtitles use --subtitle ar-ME and for audio --audio --ar-ME. If
the language is not available even if you're doing this, the anime is
probably not available in this language.
For other files than .ts you can use the --output flag, in your case --output
"{series_name} S{season_number}E{episode_number}.mkv". Note that you need
ffmpeg https://ffmpeg.org/ installed to convert the video in any other
format than .ts.
So an example command you may want to use is crunchyroll-go download
--output "{series_name} S{season_number}E{episode_number}.mkv"
https://www.crunchyroll.com/a-centaurs-life
—
Reply to this email directly, view it on GitHub
https://github.com/ByteDream/crunchyroll-go/issues/13#issuecomment-1013917507,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASURGVPR7YSEI2YQR42TTQ3UWL5TPANCNFSM5MBVT2NA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Translation in other languages would be too much work and bloat up the project


Update README.md

changed the code to match the instructions and compile.
Contribution Type
( Sample App | Dashboard | Monitor | Script | Bugfix | Etc. )
Description
(Tell us about what you're adding)
Value Add / Motivation
(The thing you're adding is probably great -- tell us why!)
Sources
(If applicable. E.g, "The original source code for the sample app I'm adding can be found here: https://github.com/someorg/somerepo" )
Testing Strategy
(Tell us about how you tested your proposed changes. Screenshots of results are great additions!)

This looks good to me!


HMR update issues on Ubuntu

Cach is disabled
Describe the bug
After installing Vite, everything goes fine, But after 1 minute I can't see the result in the browser, And sometimes I've to save the file multiple time to see the result in the browser
Reproduction
repo link pnpm i + pnpm run dev
System Info

vite ^1.0.0-beta.11

Operating System:
Distributor ID:Ubuntu
Description:	Ubuntu 20.04 LTS
Release:	20.04
Codename:	focal

Node v13.2.0

npm 6.13.1 - pnpm 5.4.0

vue ^3.0.0-beta.20

@vue/compiler-sfc ^3.0.0-beta.20

I think this is most likely related to chokidar + Ubuntu having issues watching file changes. It's gonna be hard to reproduce though.

Same thing with debian buster @ chromeOs crostini container, vite rc3

I am having weirdest hmr issues with vite 1.0.0-rc.4. Using Kubuntu 20.04.
When I change classes on <router-link class="..."> the site is not updated automatically. I have to manually refresh the page. But when I change classes on other elements div and others, it works fine.

I have an update on this. The issue arises when I update props on components but not when I update attributes on the document elements (div, span, ...).

The issue fixed in "vite": "^2.0.0-beta.12"

The issue fixed in "vite": "^2.0.0-beta.12"

@moghaazi thanks for the update! Closing this one now.

@moghaazi thanks for the update! Closing this one now.


CARDS-1306/CARDS-1353: Add support for sections that stick to the bottom (footer section) of the page when scrolling

To test, use Footer Sections Test questionnaire available in the test run mode.

no more header setting?

I split 1306 into 2 subtasks, one for header and one for footer. This PR is for subtask 1353 - footer.
As I commented in the original PR #724 which is now closed, support for headers was buggy and will be reimplemented in a separate PR. There's no reason to hold merging the support for footers because of the buggy headers.

Preview in designer does not resemble the look of the form. In the Radio form, I marked the last section to stick to the bottom. When I preview I only see this:

Meanwhile the actual form looks like this:
https://user-images.githubusercontent.com/23243244/129834313-3e40f5f6-e223-498b-a84e-93a80d9cadfb.mp4

Just like with headers, footer sections have an overlap issue with pagination controls. Turning the pagination on for the footers questionnaire will make the footer question hidden until the bottom of the page is reached. Not a blocker, though, we could merge as is and add support for that use case later.

Right, forgot to account for pagination. It can easily be implemented in a similar way as the header sections stay under the resource header in PR #740. Please review #740, and if all looks good I can add similar support for pagination.

@Marta - please check this video. Look what is happening at the top.

https://user-images.githubusercontent.com/23243244/129970539-2f2f51fd-dc46-43e0-8b78-3172b792e6cb.mp4

Just like with headers, footer sections have an overlap issue with pagination controls. Turning the pagination on for the footers questionnaire will make the footer question hidden until the bottom of the page is reached. Not a blocker, though, we could merge as is and add support for that use case later.

Right, forgot to account for pagination. It can easily be implemented in a similar way as the header sections stay under the resource header in PR #740. Please review #740, and if all looks good I can add similar support for pagination.

Added the fix for footer sections on paginated forms to PR #740 (commit bd224fac) because it relies on some changes that are already in that branch.

@marta - please check this video. Look what is happening at the top.

@sashaandjic I can't find the right browser window height to replicate this, but thanks to the video I think I know what's going on and I'm hoping commit 088917c takes care of it.

I made the video with the same setup. Chrome zoom 75%.
Notice how when landing on the paginated page with footer setting the top and the bottom of the page is hidden
https://user-images.githubusercontent.com/23243244/129995904-7971da21-722d-4331-a412-58bda3013b18.mp4

I made the video with the same setup. Chrome zoom 75%.
Notice how when landing on the paginated page with footer setting the top and the bottom of the page is hidden

The bottom issue is the same as what @sdumitriu reported, and I pushed a fix for it to the #740 PR instead of this one because the fix needed some code that was already in #740. Please test it there.
The top issue i would say it's not a priority, and not worth holding the PR for. Realistically, large sections shouldn't be set as footers.


docs(plugins) IgnorePlugin new syntax and options

Describes changes merged in webpack/webpack#7827
small reformat

Thanks!


Add way of creating a rpc::Client without performing a health check

In the ibc-rs crate, we need to create a rpc::Client in a non-async context in order to store it for later use within a struct, and having rpc::Client::new perform an async health check on creation makes this impossible without spawning an executor, and executing the task returned by new.
I would suggest renaming the existing method to new_healthy and adding a plain new method which does not perform a health check.

resolved in #169


Horusec analysis report an "error" on pipelines

What happened:
Horusec reports "error" in pipeline analysis, but we didn't found one.
What you expected to happen:
Horusec report "error" only if it exists.
How to reproduce it (as minimally and precisely as possible):
I'm not sure how to reproduce it, but you can check it on https://github.com/ZupIT/beagle-docs/runs/5422976461 (or see Logging below)
Anything else we need to know?:
Please, check out the logging on https://github.com/ZupIT/beagle-docs/runs/5422976461 (or see Logging below)
Environment:

Horusec version (use horusec version): v2.7.1
Operating System: github action, Ubuntu 20.04 LTS
Network plugin / Tool and version (if this is a network-related / tool bug):
Others:

Logging

==================================================================================

HORUSEC ENDED THE ANALYSIS WITH STATUS OF "error" AND WITH THE FOLLOWING RESULTS:

==================================================================================

Analysis StartedAt: [202](https://github.com/ZupIT/beagle-docs/runs/5422976461?check_suite_focus=true#step:4:202)2-03-04 13:38:36
Analysis FinishedAt: 2022-03-04 13:38:52

==================================================================================

time="2022-03-04T13:38:52Z" level=warning msg="{HORUSEC_CLI} No authorization token was found, your code it is not going to be sent to horusec. Please enter a token with the -a flag to configure and save your analysis"

time="2022-03-04T13:38:52Z" level=warning msg="YOUR ANALYSIS HAD FINISHED WITHOUT ANY VULNERABILITY!"

time="2022-03-04T13:38:52Z" level=warning msg="{HORUSEC_CLI} Horusec not show info vulnerabilities in this analysis, to see info vulnerabilities add option \"--information-severity=true\". For more details use (horusec start --help) command."

==================================================================================

time="2022-03-04T13:38:52Z" level=warning msg="{HORUSEC_CLI} During execution we found some problems:"

time="2022-03-04T13:38:52Z" level=warning msg="Error while running tool NpmAudit: {HORUSEC_CLI} Error It looks like your project doesn't have a package-lock.json file. If you use NPM to handle your dependencies, it would be a good idea to commit it so horusec can check for vulnerabilities"
time="2022-03-04T13:38:52Z" level=warning msg=" Error while running tool YarnAudit: {HORUSEC_CLI} Error It looks like your project doesn't have a yarn.lock file. If you use Yarn to handle your dependencies, it would be a good idea to commit it so horusec can check for vulnerabilities"

Hi, @adrianovieira.
The pull request #1013 fixes the problem.
Thanks for the feedback!!

Pull request merged, it will be available on the next release.
I will be closing this issue. Thank you very much for the contribution!


Don't overwrite the config directory

Description: Fixes a bug where a non-default config directory path was being overwritten by the default config directory path.
Related issue (if applicable): fixes #2566
Closes #2566
The else seems to have been an error and was overwriting a non-default config directory with the default location.

Thanks! I'll put it out as a hotfix tonight.


Add Travis-ci when library is three months old

To follow rules from Travis on free usage for opensource projects.

19th of August.


I need to customize TextField's toolbar options view' somehow, but I just can't find a way to do it. There seems to be nothing except for boolean values that will turn some of them on and off.
Look at this screenshot
Preview
I need to replace the texts with icons. The problem is that those text must be in Russian, and Russian words are even longer than the English, so they won't fit the screen at all.
Is there any way to do it? (even a hacky way will do)
Here's the doc's stuff
> $ flutter doctor
> Doctor summary (to see all details, run flutter doctor -v):
> [√] Flutter (Channel dev, v1.10.0, on Microsoft Windows [Version 6.1.7601], locale ru-RU)
> [√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
> [√] Android Studio (version 3.5)
> [!] IntelliJ IDEA Ultimate Edition (version 2018.1)
>     X Flutter plugin not installed; this adds Flutter specific functionality.
>     X Dart plugin not installed; this adds Dart specific functionality.
> [√] IntelliJ IDEA Ultimate Edition (version 2019.1)
> [!] VS Code (version 1.38.1)
>     X Flutter extension not installed; install from
>       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
> [√] Connected device (1 available)
>
> ! Doctor found issues in 2 categories.

TextField is based on a low-level EditableText widget for which you can provide your own TextSelectionControls implementation. TextField chooses either a hardcoded implementation for iOS or for Android/Fuchia. In your own implementation, override buildToolbar and use icons instead of text.
But I agree, this could (and should) be easier to do. At least additional custom actions would be nice. On iOS this is possible by adding UIMenuItems to the shared UIMenuController. I once tried to do this in Flutter and gave up because the feature was not worth the effort.

TextField is based on a low-level EditableText widget for which you can provide your own TextSelectionControls implementation. TextField chooses either a hardcoded implementation for iOS or for Android/Fuchia. In your own implementation, override buildToolbar and use icons instead of text.
But I agree, this could (and should) be easier to do. At least additional custom actions would be nice. On iOS this is possible by adding UIMenuItems to the shared UIMenuController. I once tried to do this in Flutter and gave up because the feature was not worth the effort.

Thanks for your reply! Sounds interesting, I'll give it a shot

CC @justinmc

I agree that @sma 's approach is best here.
There is an open PR that is trying to fix the overflow problem: https://github.com/flutter/flutter/pull/39624
The ability to use custom text selection menu items is an important missing feature, but no one is actively working on it yet, so it's likely a long ways from being available: https://github.com/flutter/flutter/issues/31412
I'm going to close this issue and use https://github.com/flutter/flutter/issues/31412 to track the ability to add custom items.  @caseyryan feel free to reply and reopen if you have any trouble.

I agree that @sma 's approach is best here.
There is an open PR that is trying to fix the overflow problem: #39624
The ability to use custom text selection menu items is an important missing feature, but no one is actively working on it yet, so it's likely a long ways from being available: #31412
I'm going to close this issue and use #31412 to track the ability to add custom items. @caseyryan feel free to reply and reopen if you have any trouble.

I will probably make my own implementation and put it on github after I finish other tasks with the app

This might be old, but I've been noticing an issue with the toolbar on iOS. The title of this issue led me here. The divider isn't centred and also looks ugly.
[✓] Flutter (Channel master, 1.20.0-1.0.pre.132, on Mac OS X 10.15.5 19F101, locale en-GB)
• Flutter version 1.20.0-1.0.pre.132 at /Users/adeola/Downloads/flutter
• Framework revision<PHONE_NUMBER> (5 days ago), 2020-06-19 16:15:58 -0700
• Engine revision 676cd566f7
• Dart version 2.9.0 (build 2.9.0-17.0.dev 7e72c9ae7e)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
• Android SDK at /Users/adeola/Library/Android/sdk
• Platform android-30, build-tools 30.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.5, Build version 11E608c
• CocoaPods version 1.9.3
[✓] Android Studio (version 4.0)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 46.0.2
• Dart plugin version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] Connected device (1 available)
• iPhone • 7301a50cae9aaf2e903ef313e632bfed64bb3704 • ios • iOS 13.4
• No issues found!

This might be old but is there a reason why the toolbar has this weird border shadow ?
[✓] Flutter (Channel master, 1.20.0-1.0.pre.132, on Mac OS X 10.15.5 19F101, locale en-GB)
• Flutter version 1.20.0-1.0.pre.132 at /Users/adeola/Downloads/flutter
• Framework revision<PHONE_NUMBER> (5 days ago), 2020-06-19 16:15:58 -0700
• Engine revision 676cd566f7
• Dart version 2.9.0 (build 2.9.0-17.0.dev 7e72c9ae7e)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
• Android SDK at /Users/adeola/Library/Android/sdk
• Platform android-30, build-tools 30.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.5, Build version 11E608c
• CocoaPods version 1.9.3
[✓] Android Studio (version 4.0)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 46.0.2
• Dart plugin version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] Connected device (1 available)
• iPhone • 7301a50cae9aaf2e903ef313e632bfed64bb3704 • ios • iOS 13.4
• No issues found!

@adeolaex Could you open a new issue about this and mention me in it?  And if you can, please include a screenshot of the native menu as well to show the difference.  I think you're right that there's a border we should remove.

@justinmc Will do 👍


Daftly left require(browser-sync) in place

It still worked for the contributors who tested it because they still had browser-sync locally, despite being removed from the package.json. I dont like NPM much.

Coverage remained the same at 64.286% when pulling 280c8e84cfebfa684e1333b97d23f3214f624021 on bug/remove-browser-sync into a7c9f27d0d718f0105287b5e468f06d9ee8e53c8 on master.


Modify support-notifications tests to reflect Return New Notification ID Instead of Slug

https://github.com/edgexfoundry/edgex-go/issues/1329 updated core but not blackbox tests.

fixed by #225


Run linting logic in spawned threads

Followup to #389 & #1131. I'm taking a look at this for work because we have a few thousand files to lint. Running them in serial takes a long time. Our options are:

Parallelize TSLint.MSBuild (users of other build systems wouldn't get the benefits, so probably not)
Have TSLint itself run across multiple threads / cores.

Within option 2 I see there being two possibilities:

Refactor the internals of Runner and Linter to be asynchronous

I think this would be a nice but making Linter in particular would be a breaking API change
Do you think you'd want to start to migrate to asynchronous file reading anyway?

Create a new ProcessSplitter class between tslint-cli.ts and Runner

Don't use it unless --parallel is provided and > 1
Have it spawn processes equal to --parallel

It would do its own file globbing to get the full list of files to lint
Each process would get 1/<--parallel> of those files

After the processes are done it would collect and sort the results and report them as if they were synchronous

Thoughts?

Some random thoughts:
async processing:

does async I/O work with --type-check or do we get race conditions from that?
+1 to make I/O in Runner async

could use glob-stream for globbing to start linting as fast as possible (although that's not the bottleneck)
use a concurrent transform stream to read the file
use a write stream to do the linting
Runner should not throw away the ts.Program (created when --project is passed) when not type checking. We could then avoid the globbing and reuse the SourceFiles instead of reading the files again and creating new SourceFiles

there should also be an async version of Configuration and RuleLoader
making Linter async does not seem to be necessary?

the only I/O made here is used to apply fixes
unrelated: after applying fixes, use ts.updateSourceFile instead of this.getSourceFile

multiple threads:

each thread would need to set up typescript, require all rules, cache the paths to the rule, ...

don't know if that would slow things down
requires much more memory

result cache:

cache the linting result and only lint that file again if it changed in the meantime
eslint has an option for this, too

Should probably do #2282 first.

Glad the reaction has been favorable so far. :) I'll start work on some of the low hanging fruit.
Re the downsides of multiple threads: agreed, and this should definitely not be used for "normal" (most) projects. The scenario I'm approaching this for is overpowered 16-core monstrosities (dev machines, build lab machines, obscene Azure VMs, and the like) made to deal with huge code bases. They're fantastic at MSBuild/gcc/etc. but amusingly running TSLint tasks slows them down something terrible. The argument could (and should) be made that projects big enough to slow down TSLint should be split up into sub-projects, and those sub-projects' TSLint tasks should be parallelized... but that's not always possible.

maybe merge-able with https://github.com/palantir/tslint/issues/943

parallel linting is not supported so far, my workaround is
find src -name '*.ts' | parallel node_modules/.bin/tslint -p . --fix

☠ TSLint's time has come! ☠
TSLint is no longer accepting most feature requests per #4534. See typescript-eslint.io for the new, shiny way to lint your TypeScript code with ESLint. ✨
It was a pleasure open sourcing with you all!


IGNITE-17369 : v4, Check Datastremer registered at and before snapshot.

Discussed and decided not to ask and wait for the client nodes.


[Feature Request] Show library/source name (not just logo) in LibraryStatisticsView

In the LibraryStatisticsView as shown below, an icon is shown, along with the number of games and number of duplicates. Additionally, a fourth (empty) column is drawn.
LibraryStatisticsView by itself:

Feature request:
Show the Library Name in this view. The file DuplicateHider/source/Views/StartPage/LibraryStatisticsView.xaml seems to contain commented out code for showing the library name. If the library name was commented out to keep this column thin, then ideally, the view should be configurable in the extension's settings to enable or disable the library name.
When LibraryStatisticsView is arranged in a vertical column along with other Views, enough free space is left for the library name to be shown.
LibraryStatisticsView with other Views in a single vertical column:

Done in v3.14.0


start-lambda does not catch runtime errors, so calls to it never fail

Description
With sam local start-lambda the failure is only taken into account if the actual function returns the specified json with all 3 keys (even if just 1 is mandatory) (errorType, errorMessage and stackTrace).
When a function fails due to other issues, a wrong method call or some kind of runtime error for example, start-lambda will not catch it, therefore marking the task as succeeded.
This hampers any effort of testing step functions with retry mechanisms or branching based on failure.
Steps to reproduce
A simple app that should trigger failure (ruby in this case, but language is irrelevant):
def handle(context:, event:)
  not_defined_value.someMethod
end

Observed result
The response from the service is { "statusCode" : 200 }
Expected result
A response that indicates that an error occured: { "statusCode" : 200, "FunctionError" : "Unhandled" }
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

OS: Linux
sam --version: 0.21.0

This behaviour implies that we can't develop step functions locally as every failing step is considered a Success.

Same issue in Linux

Same issue in Linux with 0.21.0

Same in 0.22.0

Same problem here on MacOS.
Please improve SAM so we can use it for local development.
Cmon Amazon you can do it better!

Same here, this issue makes SAM absolutely useless for integration testing.

+1
same issue here

I had the exact same problem as the above in Java, even though Java was correctly throwing an Exception and the Lambda was finishing with the right JSON exception output.
Looking at the code, it seems that the valid output for an error is expected to have 2 or 3 properties. In Java, the cause field provides a fourth. I worked around this in my code so that the exception thrown by the handler did not provide a cause. This resolved the issue for me.
However, it seems to me that the correct logic should be 2, 3, 4 and when I get a moment, I'll create a PR for that.

I have a fix for this issue in #1820 - any chance of someone reviewing it?

The initially issue was previously handled in #1642. @ashleyfrieze Had a similar issue with another key we were missing. Since the initially issue was fixed here, I am going to close it but @ashleyfrieze additional fix will be applied in our next release (which impacts Java for sure and I believe .Netcore runtimes).


LP5562 driver current output

This commit also has some (necessary) changes from Nard. (don't ask me to explain them but it seems to work).
my changed files are the lp5562.c and the yaml file


Disable some checks for non-source code repos

Is there a way to disable to license scanning part of this since our repo doesn't have source code?

Same question for Artifact Hub badge

Hi @duglin 👋
We are considering supporting additional repository kinds instead of just primary and secondary (i.e. docs repositories, etc, please see #151 for more details). Please stay tuned, we'll keep you posted 🙂
Closing in favor of #151


FIx gssf authentication route assembly

This bug was introduced in GW 1.4.0 and broke Tiqr and Biometric authentication.
GW 1.4.0 won't be deployed, so no need to backport it.
@rjkip could you review?

Other than a small thing, if you've tested the solution, :ship:.

As a foolish programmer once said:

If you haven't tested it, it probably doesn't work.

So I tested it and (now) it works 😈


vr-common wrongly downloaded with AssetLib

Godot 3.1
using Oculus VR, not Open VR
Issue description:
vr-common downloaded from AssetLib not retreive the correct addons from the GitHub
Steps to reproduce:

AssetLib
get 'vr help scenes and files'
Download & Install
it will only get Functions & Images folder (no materials, misc & objects folder)

and also, the functions 'Function Teleport.tscn' will give inverted teleport gizmo

Works fine in 3.2.3 rc3
Not sure if it was AssetLib problem or with the plugin.


Refresh required

[Current screens do not match any more what is presented on screen. ]

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

ID: ddc18273-8bbe-951d-d6a4-acc903772614
Version Independent ID: 29d66337-5772-6187-b64b-02607a682fe3
Content: Autoscale Azure resources based on data or schedule - Azure Monitor
Content Source: articles/azure-monitor/learn/tutorial-autoscale-performance-schedule.md
Service: azure-monitor
Sub-service: autoscale
GitHub Login: @anirudhcavale
Microsoft Alias: ancav

@gorankuk  Thank you for your feedback . We will investigate and update the thread further.

Assigning to content author @anirudhcavale  for content review

#reassign:shilpasharmaAM

GitHub user gorankuk has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#label:"CreateAzMonWIFeb2021"

Thank you for your contribution to the Azure Monitor documentation. We have created a workitem for this issue in our internal backlog database. We will prioritize it and make any necessary changes as we are able.
#please-close


Migration error - HCT-611 Water timer

After the latest update I see the following error
Pls note that it was working perfectly until this latest update
Can you pls help me to understand how to fix?
Thanks

Can you check the Home Assistant log for log messages?  I can't tell much from a screenshot.

I did update few days ago...  and until then it was always working.
I will provide any you log you want.. just tell me which one..

The log messages will be in the Home Assistant Core log, at the time you did the update or last restarted HA

hmm... so I lost those logs (restarted many times already - last was this morning after update to 2023.11) .. or is there a way to recover them?

I verified that the update was installed yesterday.. it was from 2023.9.1 to 2023.10.0 (even if you release it 2 weeks ago - it was prompted to update to it only yesterday.. don't ask me why)
I redownloaded 2023.9.1 and I still have this migration error.. (%£$%"!).. but until yesterday it was working...
If I reconfigure my device (config button) by confirming all the parameters... when I click "submit" it says "Success!" but the device still doesn't work!
In the Assistant Core logs I see nothing relevant.. and also in the device Logbook
Any idea about the possible cause of the problem?
How can I provide you some usefull logs for you to identify the problem?
Thanks in advance

Is it possible that it's the same problem of https://github.com/make-all/tuya-local/issues/984?
Maybe the update the caused the problem in my case was the HA 2023.11 of today?

dear @make-all
can you pls help me to solve the issue?
Thanks

Solved myself by removing all device and configuring them again ...
It remains strange why did this problem happen

It is certainly not the same issue as #984, as that issue was fixed and an immediate update issued one day after the release that caused it. But there have been no migrations added since then, so it is indeed a mystery why you would get these errors updating from 2023.9.1 to 2023.11.0.  Without logs it is impossible to debug, so while it seems to be a workaround to remove and re-add the devices, the bug will remain for other users to find.


Error get key failed from google when in a voice channel

anyway to fix this issue? or is it a work in progress

Same question here?


api calls with numeric values fail (for example: sourceOnDemandStartTimeout)

Which version are you using?
latest docker version / v0.17.3
Which operating system are you using?
any
Architecture
any
Description
api calls with numeric values fail
there are tests using the server api.
https://github.com/udatny/rtsp-simple-server-api-client/blob/master/src/test/java/org/aler9/rtsp/simple/server/client/service/RtspSimpleServerApiWrapperServiceTest.java#L33
https://github.com/udatny/rtsp-simple-server-api-client/blob/master/src/test/java/org/aler9/rtsp/simple/server/client/service/RtspSimpleServerApiWrapperServiceTest.java#L67
the tests basically take some configs from the server, change some value and post it back to the server.
every time a numeric value is used in the payload, the server responds wirh a bad request.
nulling the values lets the request pass
Describe how to replicate the issue
post some pathConf with any non-null (numeric string value) for any of these properties
sourceOnDemandStartTimeout
sourceOnDemandCloseAfter
setRunOnDemandStartTimeout
setRunOnDemandCloseAfter
Did you attach a network dump?
no

These properties
sourceOnDemandStartTimeout
sourceOnDemandCloseAfter
setRunOnDemandStartTimeout
setRunOnDemandCloseAfter

are string properties and must be set to a human-readable duration value, like
sourceOnDemandStartTimeout: 5s

It was always like this in case of the configuration file.
In case of the API, previous versions also accepted a number value with the duration as nanoseconds.
The newer version aligned the configuration file schema with the API schema, in order to avoid confusion.


Make the time not inverted

The game is at night time during the day!

And it's morning at like 3 in the afternoon.


Histogram extents incorrect when overlaid

Histograms are not being positioned correctly and the extents are wrong when overlaid. Consider:
import holoviews as hv
import numpy as np
top_style = style=dict(facecolor='r', alpha=0.5)
d1 = np.random.normal(0,5, (100,100))
d2 = np.random.normal(0,25, (100,100))

h1 = hv.Histogram(np.histogram(d1))
h2 = hv.Histogram(np.histogram(d2))(style=top_style)
h1 + h2 + (h1 * h2)

The two histograms have two different means (5 and 25) but after overlaying they are shown as having the same mean! It might be that the extents are wrong because of this incorrect shifting...

Fixed as of commit bc869fbb8. Separately from this bug we should figure out how we want tick labels on Histograms to behave in general.

Ok, I'll file the tick labels as a separate issue.


Fix for size mismatched in initializer instruction

Fixes #2372
Each instruction is in charge of testing how many parameters are expected. This PR fixes that and add tests.

This looks good. The second test doesn't seem to be checking anything new though (there's already a test to see if initialize works on a register)

Both tests fail in master without this patch. Which is the test that does the same?

Both tests fail in master without this patch. Which is the test that does the same?

I know. I'm just saying i don't understand what coverage test#2 adds on top of test#1, they do the same thing. If you're testing that initialize can be applied to a register, there's already another test for that too.

Oh! I see what you mean. It was because my first fix did not consider the length of the register. But it is true that there is not difference in the fix that I pushed. Removed. Thanks.


Multiple bug reports

All this tested in online mode

Player skin doesn't work. Player get default skins. I can see the player_info packet but doesn't work. Even i edit and send again. (Tested: 1.20.1 and 1.18.2)
chat_session_update packet is always dropped when using pakkit. Pakkit canceling the packet by default. (Tested: 1.20.1)

1.) Can't confirm. What server software?
2.) Can be, chat is currently not 100% supported, since minecraft added signed chat. But this is then a Bug from https://github.com/PrismarineJS/node-minecraft-protocol

1.) Can't confirm. What server software? 2.) Can be, chat is currently not 100% supported, since minecraft added signed chat. But this is then a Bug from https://github.com/PrismarineJS/node-minecraft-protocol

Purpur and Paper. Tested 1.18.2 and 1.20.1 server. Result is always same.

This video recorded while Purpur 1.20.1 server and unmoded 1.20.1 client: https://www.youtube.com/watch?v=mN78pVlNlq4
It's same for paper 1.20.1 and 1.18.2 servers to.

Don't know why, but there is a signature miss-match in your video:

If i check it with: https://sessionserver.mojang.com/session/minecraft/profile/08000239bb814f76bd5b16d3da1536b0?unsigned=false

Signature is not a static value. Will always change.

This is same server and client but using sniffcraft instead of pakkit.


me.navigate absolute urls

added routing for absolute paths

Thanks for contributing! Please follow the guide for setting up your dev environment: https://google.github.io/mesop/internal/development/

If you use our pre-commit formatter (prettier), it'll fix/undo some of the formatting changes here.
We use bazelisk so the same version of Bazel used by all contributors. Please remove the module.bazel changes from this PR. Feel free to open a separate pull request to upgrade our Bazel version, but this is unrelated to the URL fix.

I tried the url fix in Shell.ts from line 87, are saying that doesn't work ?

I think the change in shell.ts L87 looks good, but there's a lot of other changes / diffs being introduced in this PR, so we can't merge it in yet.


Andrzej

Hi,
I designed and implemented kind of tile view on my portfolio page. I am going to place icons on tiles indicating what tile is responsible for (for example: my education information, hobby etc.)

Viewer of my portfolio will be able to click on tile and this will cause it to expand into the larger box with content.

The tile view looks really nice!


Shoud I ignore the TSlint?

Issue summary
When I open this code with WebStorm, here are alot of TSlint Error nearly every line.

Description of issue:

Steps to reproduce:

Error message:

// Console output:

// Offending line:

Suggested fix (optional):

Other information:

Overmind version: {found in package.json or by typing info() into console}

Commit hash: {optional, but helpful: include the commit hash (if known)}

Yes, this project doesn't conform to all default tslint rules.


ERR_HTTP2_PROXY_ERROR from openlayers.org

Describe the bug
When visiting https://openlayers.org, a user reported that they saw ERR_HTTP2_PROXY_ERROR.
To Reproduce
I am not able to reproduce the problem, but it sounds like the user who experienced this was seeing the same issue on Chrome and Firefox on Windows.  We don't have any additional detail from the user, but it would be good to hear from others if anybody else is experiencing the same issue.
Expected behavior
No ERR_HTTP2_PROXY_ERROR.

Perhaps totally unrelated, but here is a user who had a similar problem and solved it by restarting their antivirus software: https://support.google.com/chrome/thread/117505176/err-http2-protocol-error-please-help-all-browsers-including-chrome-will-not-work

I have the same problem in google chrome. Works with Microsoft Edge or if I disable Kaspersky.

I have not this error on mac safari, chrome and ff ....

I have the same problem in google chrome. Works with Microsoft Edge or if I disable Kaspersky.

Thanks for confirming the issue, @Rskut.
I reached out to Kapersky technical support and they confirmed that this is an issue with Kapersky Internet Security.  They have put together a patch (version 'H') and expect it to be released between January 31 and February 14.  As a workaround, Kapersky users can add openlayers.org to the list of trusted domains under Settings → Network settings → Trusted addresses → Add
I asked if openlayers.org could get added to a list of allowed sites on their side or if there was anything else we could do on our side (e.g. disable http2) to make it so Kapersky users could access the site before the patch was released (without knowing about the workaround above).  They said they would get back to me on that.
Transcript of the support chat below.

Support
Hi! This is Support and I am your representative for this chat.
Let me read your concern first.
Just give me 1-3 minutes. Thanks
Thank you for patiently waiting.
Upon reading your description request that you are having an issue to access the website?

Me
Yes. Are you able to access https://openlayers.org with Kapersky enabled?

Support
I am sorry to hear about that. I will try my best to help you with your concern.
I checked the website and unable to access too.

Me
But it works as expected without Kapersky.

Support
When you disabled Kaspersky, it will work?

Me
It looks like other people are having similar problems here: https://community.kaspersky.com/kaspersky-internet-security-13/kaspersky-err-http2-protocol-error-on-particular-sites-22180

Support
Alright
Just wanted to clarify if Kaspersky is disabled, is it working?

Me
And yes, it sounds like it works without Kapersky. I’m on a phone right now and don’t have Kapersky here.

Support
Alright
Can you please try to add the website in trusted addresss?
You may follow this guide : Settings → Network settings → Trusted addresses → Add.
As currently on the community of Kaspersky this was a temporary resolution only.

Me
Is there another solution? I help manage the website and cannot configure all of our visitors machines.

Support
As this was a bug and will fix on Patch H.
It will be resolved on Patch H which will be roll out starting 31st of January till 14th of February.

Me
Is there another “allowed list” that the site can be added to on your side? Or is the only workaround to have all site visitors reconfigure Kapersky?

Support
The only temporary resolution for now is to add it to trusted address in network settings.
As it will be totally fixed on Patch H.
I tried to add the website : https://openlayers.org/ and it was working from my end

Me
I saw a reply about submitting the site to https://opentip.kaspersky.com/ - will this (or anything else) get it added to an allowed list on your side?

Support
That is actually a website where in you can check if there's any issue on any website.
But that one is not a part of any resolution as it will be fix starting 31st of January till 14th of February 2022
If you wanted to access the websites while Kaspersky is enabled, please add the website in trusted address.

Me
Is there anything we can do as site administrators to make the site work with Kapersky (before February)?

Support
By adding website as trusted addresses.
I already provided the temporary resolution for now and that's the only resolution.

Me
I’m not just interested in visiting the site myself.  I’m looking for a solution for all the other visitors who might use Kapersky.

Support
I do understand but let me try to consult this matter.

Me
For example, should we disable http2 until the Kapersky patch is released?

Support
Let me consult our expert about this matter and will update you.
We apologies on this matter and we will make sure that the website will be added on the safe website to access.
Are you the developer of the website or from the company of this website?

Me
Both (sort of)

Support
Thank you for the information.
I will consult this case and will update you once I hear from our expert.
Thank you for the patience and understanding to this matter.
Would there be anything else that I can help you with?

Me
That should do it. Thank you for your help.

Support
You are most welcome. Have a great day and stay safe!
I will proceed to close this chat session.

Latest reply from Kapersky

We received an update from our expert, sadly, waiting a patch H is the only fixed resolution which will be rolling out in 31st of January till 14th of February 2022. Otherwise if you can't wait you can add the website from the Kaspersky application to the trusted address. And for not for user we could offer to add exclusion for this page via trafmon, but the page not so popular (alexa.com rating). Also, we do not have any other requests except this one from developers.

I don't understand what that means and asked for clarification.

Final word.  It sounds like Kapersky users can either disable Kapersky or configure it as described below.

As per confirmation with our dev team, the only solution is to wait for Patch H update to fix the issue.
Alternatively, you may proceed to add the website to trusted list.
Please do the following steps in order to add a website to the trusted list:

If the main window of Kaspersky application is not on your desktop, bring it up by double-clicking the Kaspersky desktop shortcut (icon) or by double clicking on the smaller Kaspersky icon in the bottom right corner of the screen;
Click on the Gear icon in the bottom left corner of the Kaspersky window;
On the left side menu select 'Protection';
On the right side menu scroll down a bit and select 'Web Anti-Virus';
Click on 'Advanced settings';
Click on "Configure Trusted URLs";
Click on 'Add'
Enter or Copy & Paste the address of the website, then tick the 'Active' circle and press 'Add' again.


[FLINK-35559][Connector/Kinesis] fix shading configuration to avoid class conflicts when using flink-connector-kinesis alongside Firehose sink

Purpose of the change
Add org.apache.flink.connector.aws.sink to relocation list in order to prevent class conflicts while including flink-connector-kinesis alongside with flink-connector-aws-kinesis-firehose.
Verifying this change

Manually verified by running the Kinesis connector and Firehose sink on a local Flink cluster.
Verified build artifacts

Significant changes
(Please check any boxes [x] if the answer is "yes". You can first publish the PR and check them afterwards, for convenience.)

[ ] Dependencies have been added or upgraded
[ ] Public API has been changed (Public API is any class annotated with @Public(Evolving))
[ ] Serializers have been changed
[ ] New feature has been introduced

If yes, how is this documented? not applicable

There is a risk this will break user code depending on these libs, right? Given this is a bug, and they should not be using the shaded libs, I think this is ok, thoughts?


Use inlcude/exclude in queries with hybrid prop

Description
Add exclude/include functionality in the backend Database layer
include is still called projection, and it takes a list (not dict), although dict works by grabbing the keys.
This works as expected. If any include (projection list) or exclude is specified, then only requested fields will be fetched/excluded.
Status

[x] Ready to go

@doaa-altarawy Thank you for this! The code looks good to me. I checked it out (in a git sense), and it passes my simple storage tests in PR#442. I'm going to merge this into #442 and make sure that everything works in that context.

@mattwelborn Does #442 have tests for include/exclude? If so we can merge this without tests for now.
Do we want to deprecate the name projection for include as well?

@dgasmith #442 has tests for include/exclude. My plan is to deprecate projection for include in all of the REST models.
@doaa-altarawy chose to keep projection in sqlalchemy_socket.py, so it would be good to check with her before making this change everywhere.


SingleLogoutRequest.setLogoutResponse() is a misnomer

In org.wso2.carbon.identity.sso.saml, the SingleLogoutRequestDTO.setLogoutResponse() method is a misnomer. For clarity, it really should be refactored to something like setRequest or anything that doesn't say response. The method is used for storing the request that is to be made, not the response. It'll help with code clarity.
Original issue: https://wso2.org/jira/browse/IDENTITY-3740

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


routing.GetArcCostForVehicle returns wrong cost of travel

Hi,
I have two sets of vehicles, i.e. bikers and car drivers. So I defined different distance matrices for each vehicle -
transit_callback = []
transit_callback_index_arr = []

for vehicle_id in range(data['num_vehicles']):
    distance_matrix = copy.deepcopy(data['distance_matrix'][vehicle_id])
    def cost_function(from_index, to_index):
        """Returns the distance between the two nodes."""
        from_node = manager.IndexToNode(from_index)
        to_node = manager.IndexToNode(to_index)
        distance = distance_matrix[from_node][to_node]
        return distance.map_distance
    transit_callback.append(cost_function)
    transit_callback_index_arr.append(routing.RegisterTransitCallback(transit_callback[-1]))

for vehicle_id in range(data['num_vehicles']):
    routing.SetArcCostEvaluatorOfVehicle(transit_callback_index_arr[vehicle_id], vehicle_id)

So my vehicle 0-2 are using Dist_Matrix_for_Bikers, while vehicle 3-9 are using Dist_Matrix_for_Drivers. However, when I print out the result, all route_distance calculation seems to be using the Dist_Matrix_for_Drivers.
def print_solution(data, manager, routing, solution):
    """Prints solution on console."""
    print(f'Objective: {solution.ObjectiveValue()}')
    max_route_distance = 0
    total_route_distance = 0
    for vehicle_id in range(data['num_vehicles']):
        index = routing.Start(vehicle_id)
        plan_output = 'Route for vehicle {}:\n'.format(vehicle_id)
        route_distance = 0
        n_pkgs = 0
        while not routing.IsEnd(index):
            plan_output += '{} -> '.format(manager.IndexToNode(index))
            previous_index = index
            index = solution.Value(routing.NextVar(index))
            route_distance += routing.GetArcCostForVehicle(
                previous_index, index, vehicle_id)
            n_pkgs += df_sf['n_del'][manager.IndexToNode(index)]
        plan_output += '{}\n'.format(manager.IndexToNode(index))
        plan_output += 'Distance of the route: {}m\n'.format(route_distance)
        plan_output += 'Number of packages: {}'.format(n_pkgs)
        print(plan_output)
        max_route_distance = max(route_distance, max_route_distance)
        total_route_distance = total_route_distance + route_distance
    print('Maximum of the route distances: {}seconds'.format(max_route_distance))
    print('Total route time: {}seconds'.format(total_route_distance))

Am I doing something wrong, or is there some issue with routing.GetArcCostForVehicle()?

my 2 cents,
your function cost_function seems to capture a reference to distance_matrix thus all methods will use the last assignment of this variable.
You may try to use partial instead
transit_callback = []
transit_callback_index_arr = []

def cost_function(from_index, to_index, dst):
    """Returns the distance between the two nodes."""
    from_node = manager.IndexToNode(from_index)
    to_node = manager.IndexToNode(to_index)
    return dst[from_node][to_node].map_distance

for vehicle_id in range(data['num_vehicles']):
    distance_matrix = copy.deepcopy(data['distance_matrix'][vehicle_id])
    callback = partial(cost_function, dst=distance_matrix)
    transit_callback.append(callback)
    callback_index = routing.RegisterTransitCallback(callback)
    transit_callback_index_arr.append(callback_index)

for vehicle_id in range(data['num_vehicles']):
    routing.SetArcCostEvaluatorOfVehicle(transit_callback_index_arr[vehicle_id], vehicle_id)

@Mizux It works. Thank you so much for your help!