[C++] Allow configuration of size of AWS event loop thread pool

Describe the enhancement requested
When calling DoInitializeS3, arrow creates initialises the AWS API, which by default creates a thread pool for the background AWS event loop that uses one thread per physical core on the system.
This is particularly noticeable when using pyarrow where merely importing from pyarrow.fs import PyFileSystem will cause eager initialisation of the AWS API, so you're paying (something) for these threads even when you have no intention of using them.
This is rather unfriendly when running a multi-process or some otherhow parallelised process on a multicore box since it leads to oversubscription. Moreover, it may well not be the best option depending on the number of concurrent connections this arrow process is going to be making to the AWS api: quoth the documentation

The number of threads used depends on your use-case. IF you have a maximum of less than a few hundred connections 1 thread is the ideal threadCount.

It would be nice if there were a way to control the size of this thread pool in the same way that one can control the number of IO threads arrow uses using ARROW_IO_THREADS. [Aside: AFAICT there's no programmatic way of control arrow's thread pool size, it must be done via environment variables, which is also rather unfriendly].
I think the following diff is kind of a sketch in this direction, although it just unilaterally sets the size of the thread pool available to a single thread.
diff --git a/cpp/src/arrow/filesystem/s3fs.cc b/cpp/src/arrow/filesystem/s3fs.cc
index 16ffe2526..a71ec93f7 100644
--- a/cpp/src/arrow/filesystem/s3fs.cc
+++ b/cpp/src/arrow/filesystem/s3fs.cc
@@ -2604,6 +2604,13 @@ Status DoInitializeS3(const S3GlobalOptions& options) {
   // This configuration options is only available with AWS SDK 1.9.272 and later.
   aws_options.httpOptions.compliantRfc3986Encoding = true;
 #endif
+  aws_options.ioOptions.clientBootstrap_create_fn = []() {
+    Aws::Crt::Io::EventLoopGroup eventLoopGroup(1);
+    Aws::Crt::Io::DefaultHostResolver defaultHostResolver(eventLoopGroup, 8, 30);
+    auto clientBootstrap = Aws::MakeShared<Aws::Crt::Io::ClientBootstrap>(ALLOCATION_TAG, eventLoopGroup, defaultHostResolver);
+    clientBootstrap->EnableBlockingShutdown();
+    return clientBootstrap;
+  };
   Aws::InitAPI(aws_options);
   aws_initialized.store(true);
   return Status::OK();

I'm not really familiar with the arrow layout so I don't know how to plumb this in to any configuration options that might abound: is there such a thing or would one just introduce a (new?) env var?
Component(s)
C++

When calling DoInitializeS3, arrow creates initialises the AWS API, which by default creates a thread pool for the background AWS event loop that uses one thread per physical core on the system.

I thought the default behavior was for AWS to not use a pool at all and spin up a brand new detached thread per-request but that article is pretty old so maybe it is no longer the behavior.
Furthermore, the docs state "which will create one for each processor on the machine."  Perhaps it is a typo on their part but unless you have a multi-CPU machine (e.g. NUMA) I would expect this to use a single thread (and it would be weird if their default went against their recommendations).  Although, looking at the linked issue, it does indeed seem to be a lot of threads.  And...after further debugging...it does seem to be thread per physical core on my system.

This is rather unfriendly when running a multi-process or some otherhow parallelised process on a multicore box since it leads to oversubscription.

I wouldn't be terribly worried about this.  I expect these threads will spend the majority of their time in a blocked state, nonscheduled by the OS.  I agree there is some minor hit to having more threads than you need but this isn't the more significant hit you get by over-scheduling CPU threads which leads to an excess of context switches.

It would be nice if there were a way to control the size of this thread pool

Agreed, there is already arrow::fs::S3GlobalOptions so we have some precedent.  I don't know if there are python bindings and it seems we need to add an "event loop thread pool count" to the mix.

I think the following diff is kind of a sketch in this direction, although it just unilaterally sets the size of the thread pool available to a single thread.

It sounds like it would be a good idea in general to change the default to 1 anyways.  Though this could use some benchmarking.

Aside: AFAICT there's no programmatic way of control arrow's thread pool size, it must be done via environment variables, which is also rather unfriendly

Do you want to open a separate issue for this?  Seems like a reasonable request.

Aside: AFAICT there's no programmatic way of control arrow's thread pool size, it must be done via environment variables, which is also rather unfriendly

Do you want to open a separate issue for this? Seems like a reasonable request.

I looked a bit harder, and you can do it, you need to call ThreadPool->SetCapacity after creation, so I'll retract this aside.

Thanks!

Issue still exist in python 3.8 version 12.0.1
>>> from  pyarrow._s3fs import initialize_s3
>>> initialize_s3(num_event_loop_threads=1)
>>> import pyarrow as pa
>>> pa.__version__
>>> '12.0.1'

 ps -eT -o "ppid,pid,tid,comm" | grep 2406868
1047424 2406868 2406868 ipython
1047424 2406868 2406896 ipython
1047424 2406868 2407167 jemalloc_bg_thd
1047424 2406868 2407291 AwsEventLoop 1
1047424 2406868 2407292 AwsEventLoop 2
1047424 2406868 2407293 AwsEventLoop 3
1047424 2406868 2407294 AwsEventLoop 4
1047424 2406868 2407295 AwsEventLoop 5
1047424 2406868 2407296 AwsEventLoop 6
1047424 2406868 2407297 AwsEventLoop 7
1047424 2406868 2407298 AwsEventLoop 8
1047424 2406868 2407299 AwsEventLoop 9
1047424 2406868 2407300 AwsEventLoop 10
1047424 2406868 2407301 AwsEventLoop 11
1047424 2406868 2407302 AwsEventLoop 12
1047424 2406868 2407303 AwsEventLoop 13
1047424 2406868 2407304 AwsEventLoop 14
1047424 2406868 2407305 AwsEventLoop 15
1047424 2406868 2407306 AwsEventLoop 16
1047424 2406868 2407307 ipython

Also in 12.01 pyarrow because ensure being call in init.py in pyarrow.fs
User can not call pyarow.fs.initialize_s3.
I suggest we reopen this issue.

Hmm, I do not see this behavior.
(arrow-release-12-0-1) pace@pace-desktop:~$ ARROW_IO_THREADS=1 OMP_NUM_THREADS=1 python
Python 3.11.4 | packaged by conda-forge | (main, Jun 10 2023, 18:08:17) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from  pyarrow._s3fs import initialize_s3
>>> initialize_s3(num_event_loop_threads=1)
>>> import pyarrow as pa
>>> pa.__version__
'12.0.1'
>>> import os
>>> os.getpid()
18795

pace@pace-desktop:~$ ps -eT -o "ppid,pid,tid,comm" | grep 18795
  11208   18795   18795 python
  11208   18795   18797 jemalloc_bg_thd
  11208   18795   18800 AwsEventLoop 1

Is it possible that ipython's initialization is importing pyarrow.fs somewhere else?

Also in 12.01 pyarrow because ensure being call in init.py in pyarrow.fs
User can not call pyarow.fs.initialize_s3.

I agree this is a concern.  I believe #35575 is tracking this.

I do have the same identical behavior of @austinzh from plain python (3.9.6), confirmed using 13.0 too
ARROW_IO_THREADS=1 OMP_NUM_THREADS=1 poetry run python
Python 3.9.6 (default, Jul 27 2021, 22:14:48)
[GCC 9.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from  pyarrow._s3fs import initialize_s3
>>> initialize_s3(num_event_loop_threads=1)
>>> import pyarrow as pa
>>> import os
>>> os.getpid()
15589

ps -eT -o "ppid,pid,tid,comm" | grep 15589
30694 15589 15589 python
30694 15589 15623 jemalloc_bg_thd
30694 15589 15624 AwsEventLoop 1
30694 15589 15625 AwsEventLoop 2
30694 15589 15626 AwsEventLoop 3
30694 15589 15627 AwsEventLoop 4
30694 15589 15628 AwsEventLoop 5
30694 15589 15629 AwsEventLoop 6
30694 15589 15630 AwsEventLoop 7
30694 15589 15631 AwsEventLoop 8
30694 15589 15632 AwsEventLoop 9
30694 15589 15633 AwsEventLoop 10
30694 15589 15634 AwsEventLoop 11
30694 15589 15635 AwsEventLoop 12
30694 15589 15636 AwsEventLoop 13
30694 15589 15637 AwsEventLoop 14
30694 15589 15638 AwsEventLoop 15
30694 15589 15639 AwsEventLoop 16

One of the annoying things is this is triggered by also just importing pyarrow.parquet, not matter if reading from S3 or not

I add a compile check in the s3fs.cc and found out that the ubuntu_cpp and also the python manylinux build both failed if I add following code
#ifndef ARROW_S3_HAS_CRT
#error "ARROW_S3_HAS_CRT does not exist"
#endif

Here is my build script to trigger this error.
archery docker run  --env CMAKE_BUILD_TYPE=release python-wheel-manylinux-2014

I have to do following patch to remove the precompile marco
diff -r arrow/cpp/src/arrow/CMakeLists.txt apache-arrow-12.0.1/cpp/src/arrow/CMakeLists.txt
488,497d487
<     try_compile(S3_HAS_CRT ${CMAKE_CURRENT_BINARY_DIR}/try_compile
<                 SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/filesystem/try_compile/check_s3fs_crt.cc"
<                 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CURRENT_INCLUDE_DIRECTORIES}"
<                 LINK_LIBRARIES ${AWSSDK_LINK_LIBRARIES} CXX_STANDARD 17)
<
<     if(S3_HAS_CRT)
<       message(STATUS "AWS SDK is new enough to have CRT support")
<       add_definitions(-DARROW_S3_HAS_CRT)
<     endif()
<
diff -r arrow/cpp/src/arrow/filesystem/s3fs.cc apache-arrow-12.0.1/cpp/src/arrow/filesystem/s3fs.cc
54d53
< #ifdef ARROW_S3_HAS_CRT
58d56
< #endif
2629d2626
< #ifdef ARROW_S3_HAS_CRT
2641d2637
< #endif

I have this issue as well on pyarrow 13.0.0
igozali@host $ python
Python 3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 06:04:10)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyarrow.fs, os; print(os.getpid())
3575184
>>> pyarrow.__version__
'13.0.0'
>>> os.cpu_count()
128

# On a separate shell
igozali@host $ ps -eT -o "ppid,pid,tid,comm" | grep 3575184
3505885 3575184 3575184 python
3505885 3575184 3575286 jemalloc_bg_thd
3505885 3575184 3575288 AwsEventLoop 1
3505885 3575184 3575289 AwsEventLoop 2
3505885 3575184 3575290 AwsEventLoop 3
3505885 3575184 3575291 AwsEventLoop 4
3505885 3575184 3575292 AwsEventLoop 5
3505885 3575184 3575293 AwsEventLoop 6
3505885 3575184 3575294 AwsEventLoop 7
3505885 3575184 3575295 AwsEventLoop 8
3505885 3575184 3575296 AwsEventLoop 9
3505885 3575184 3575297 AwsEventLoop 10
3505885 3575184 3575298 AwsEventLoop 11
3505885 3575184 3575299 AwsEventLoop 12
3505885 3575184 3575300 AwsEventLoop 13
3505885 3575184 3575301 AwsEventLoop 14
3505885 3575184 3575302 AwsEventLoop 15
3505885 3575184 3575303 AwsEventLoop 16
3505885 3575184 3575304 AwsEventLoop 17
3505885 3575184 3575305 AwsEventLoop 18
3505885 3575184 3575306 AwsEventLoop 19
3505885 3575184 3575307 AwsEventLoop 20
3505885 3575184 3575308 AwsEventLoop 21
3505885 3575184 3575309 AwsEventLoop 22
3505885 3575184 3575310 AwsEventLoop 23
3505885 3575184 3575311 AwsEventLoop 24
3505885 3575184 3575312 AwsEventLoop 25
3505885 3575184 3575313 AwsEventLoop 26
3505885 3575184 3575314 AwsEventLoop 27
3505885 3575184 3575315 AwsEventLoop 28
3505885 3575184 3575316 AwsEventLoop 29
3505885 3575184 3575317 AwsEventLoop 30
3505885 3575184 3575318 AwsEventLoop 31
3505885 3575184 3575319 AwsEventLoop 32
3505885 3575184 3575320 AwsEventLoop 33
3505885 3575184 3575321 AwsEventLoop 34
3505885 3575184 3575322 AwsEventLoop 35
3505885 3575184 3575323 AwsEventLoop 36
3505885 3575184 3575324 AwsEventLoop 37
3505885 3575184 3575325 AwsEventLoop 38
3505885 3575184 3575326 AwsEventLoop 39
3505885 3575184 3575327 AwsEventLoop 40
3505885 3575184 3575328 AwsEventLoop 41
3505885 3575184 3575329 AwsEventLoop 42
3505885 3575184 3575330 AwsEventLoop 43
3505885 3575184 3575331 AwsEventLoop 44
3505885 3575184 3575332 AwsEventLoop 45
3505885 3575184 3575333 AwsEventLoop 46
3505885 3575184 3575334 AwsEventLoop 47
3505885 3575184 3575335 AwsEventLoop 48
3505885 3575184 3575336 AwsEventLoop 49
3505885 3575184 3575337 AwsEventLoop 50
3505885 3575184 3575338 AwsEventLoop 51
3505885 3575184 3575339 AwsEventLoop 52
3505885 3575184 3575340 AwsEventLoop 53
3505885 3575184 3575341 AwsEventLoop 54
3505885 3575184 3575342 AwsEventLoop 55
3505885 3575184 3575343 AwsEventLoop 56
3505885 3575184 3575344 AwsEventLoop 57
3505885 3575184 3575345 AwsEventLoop 58
3505885 3575184 3575346 AwsEventLoop 59
3505885 3575184 3575347 AwsEventLoop 60
3505885 3575184 3575348 AwsEventLoop 61
3505885 3575184 3575349 AwsEventLoop 62
3505885 3575184 3575350 AwsEventLoop 63
3505885 3575184 3575351 AwsEventLoop 64

Use #37394 instead of here.


estimate genetic distance from unaligned sequences

Given two unaligned k-mer sequences, can we obtain good estimates of the fraction of sites different between them.
We will compare the distance from two unaligned sequences with the proportion of sites that differ between the sequences when aligned.
This is related to #732

Notebooks relevant to this issue:

In this notebook, I compared mash distance (https://pubmed.ncbi.nlm.nih.gov/27323842/) with fractional difference (distance_matrix() in cogent3) by a scatter plot. Data here I used is brca1 (https://github.com/YapengLang/alignment-free-distance/blob/2d7a6db2fc982b05b0833334914a878eab508670/brca1.fasta).
Notebook link: https://github.com/YapengLang/alignment-free-distance/blob/6dab602ddd0af3d647f7bf71a832132c797f916e/progress_report_mash.ipynb

Next, I implemented another distance, co-distance (https://pubmed.ncbi.nlm.nih.gov/23335788/). And I plotted error between co-distance and fractional difference vs. length differences, and also a scatter plot for co-distance and fractional difference. Data here is brca1 as above.
Notebook link: https://github.com/YapengLang/alignment-free-distance/blob/2d7a6db2fc982b05b0833334914a878eab508670/progress_report_dco.ipynb

Then, I explored the relation between ani (our new k-mer based measure) and fractional difference for nucleotide sequences with or without gaps. And I found when k at around 8, no matter the data is gaped or not, the relation appeared to be cubic polynomial. Data is also brca1.
Notebook link: https://github.com/YapengLang/alignment-free-distance/blob/2d7a6db2fc982b05b0833334914a878eab508670/progress_report_ani_for_nuc.ipynb

Finally, using the brca1 data, I chose an appropriate k (k = 4) and fitted a regression model for amino acid. With the relation function got from brca1 in hand, I used ani to predict fractional difference then converted to Kimura distance which was used to construct the tree. And the whole process applied to other two datasets. For each one, I compared the trees constructed by fractional difference estimates and true fractional difference. Data I used in the order:

brca1

SCA1-cds (https://github.com/YapengLang/alignment-free-distance/blob/b580d54bf03a5ecc05b8bb617b2a857c1fed0530/SCA1-cds.fasta)

transcriptome data of turtle, bird, crocodiles (https://github.com/YapengLang/alignment-free-distance/blob/b580d54bf03a5ecc05b8bb617b2a857c1fed0530/turtle.fasta)

Notebook link: https://github.com/YapengLang/alignment-free-distance/blob/b580d54bf03a5ecc05b8bb617b2a857c1fed0530/progress_report_ani_for_aa.ipynb

implement a k-mer-based pairwise distance measure (k_dist)
implement the distance_matrix() method on the SequenceCollection class, matching the API from the Alignment version.

something that looks like the following:
def distance_matrix(self, calc="k_dist", show_progress=False):
        """Returns pairwise distances between unaligned sequences.

        Parameters
        ----------
        calc: str
            a pairwise distance calculator or name of one. default is k_dist.
        """
        calculator = get_distance_calculator(
                calc,
                moltype=self.moltype,
                alignment=self,
                invalid_raises=not drop_invalid,
            )
         calculator.run(show_progress=show_progress)

        result = calculator.get_pairwise_distances()
        return result

def kdist(s1, s2, k):
    """
    Compute a kmer distance that approximates the Average Nucleotide Difference between two sequences.

    Parameters
    ----------
    s1 : str
        The first sequence.
    s2 : str
        The second sequence.
    k : int
        The length of k-mers to use for the calculation.

    Returns
    -------
    float
        The kmer distance between the two sequences.
    """
    # NOTE: we are making sure that s1 is the shorter sequence, as this is important for calculations

    s1, s2 = (s1, s2) if len(s1) < len(s2) else (s2, s1)
    f1 = kfreqs(s1, k)
    f2 = kfreqs(s2, k)

    delta = kmer_count_diff(f1, f2)

    return delta / k / len(s1)

I think k_dist() should take a kmer frequency vector, which can be produced within the SequenceCollection method. (Noting that sequences have aseq.iter_kmers() method.) The reason is, you want to compute kmers from a sequence only once.
There's also a function for fast computation of kmers and kmer frequencies in Divergent which might need to be ported into cogent3.

Right. In this case,  we need a way of keeping track of which was the shorter sequence. I realise this can be determined by the frequency of kmers, but I'm assuming we should avoid that calculation too.

fixed in https://github.com/cogent3/cogent3/pull/1431


packagemanager support

<EMAIL_ADDRESS>

upm supported. "com.netpyoung.webp": "https://github.com/netpyoung/unity.webp.git?path=unity_project/Assets/unity.webp#0.1.1"


I see no mention of the font-stretch css3 property.

I see no mention of the font-stretch css3 property.

This issue was imported from Google Moderator
Moderator votes: +3
Issue added by Chris B on 2012-06-05
To vote this issue up or down, simply include +1 or -1 in your comment.

Already added at http://caniuse.com/#feat=css-font-stretch


Add option to use pw-play instead of paplay

paplay didn't work on one of my machines so i added support for pw-play.

I would also like to add an option for mpv to make it cross platform, but i experience a lot of lag with that

Yeah, that sounds like a good idea. I only considered my machine at the time, so this is a great addition.


fix pull !11207 does not update db migrations guide

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

Tests pass?
no

Fixed issues
no

Thank you!


updated api contract for users

close: #125

The field is required because I've added a new field to the RDS document in order to fix this bug
See the fix here

If we do migration we can also change the github_id as github_username ?
In the future, Yes, with the help of migration. As of now this migration method only adds github_user_id field to existing document not updating anything inside the document. Just fetching and storing the id from GitHub API.


This PR adds a tighter API on tops of the converter one

This API should be shorter and nicer to use. I think I fixed already all docs, tests and notebooks.

You have 3 of the notebooks, but not this one

Closes #14.


Tab wrap -  clicking on tab can lead to selection due to jumping editors

I have the following issue today with workbench.editor.wrapTabs: true on Version: 1.53.0-insider (user setup), Commit: a48ef56fbf7767f55a193d7d5687addd1fc9239c. When activating an editor group, additional icons may appear, changing the line wrapping of editor tabs, making the text jump, and leading to an involuntary selection of other text:

Originally posted by @bersbersbers in https://github.com/microsoft/vscode/issues/70413#issuecomment-754454174

cc @SneakyFish5

cc @SneakyFish5

Ok I've been able to reproduce this issue after messing with the screen size a bit, sorry for not catching it earlier. The jumping is caused by the extra icons in the editor actions being added after the editor group is selected. Those icons increase the margin-right of the last tab, and force it to a new row (which only happens on certain sizes of the window). So I understand the cause of the jumping, but not the reason for the selection of the extra lines. As trying to fix the jumping itself, I'm not sure how to do that, but I will look into it.

Ok I've been able to reproduce this issue after messing with the screen size a bit, sorry for not catching it earlier. The jumping is caused by the extra icons in the editor actions being added after the editor group is selected. Those icons increase the margin-right of the last tab, and force it to a new row (which only happens on certain sizes of the window). So I understand the cause of the jumping, but not the reason for the selection of the extra lines. As trying to fix the jumping itself, I'm not sure how to do that, but I will look into it.

I believe this is just a consequence of:

mouse down to click into editor
editor changes size
mouse up is now at a different location in editor
editor thinks this is a selection

Interestingly the layout happens async (on next animation frame), but I guess the mouse up is still happening afterwards. Maybe we need to further delay the layout or relayout in this case?
Note that the fact that editors jump is probably nothing we can fix easily because that is just how the wrapping tabs work.

I believe this is just a consequence of:

mouse down to click into editor
editor changes size
mouse up is now at a different location in editor
editor thinks this is a selection

Interestingly the layout happens async (on next animation frame), but I guess the mouse up is still happening afterwards. Maybe we need to further delay the layout or relayout in this case?
Note that the fact that editors jump is probably nothing we can fix easily because that is just how the wrapping tabs work.

@bersbersbers to clarify, we will probably not be able to prevent editors from jumping, after all you enabled wrapping tabs in settings and different editors can have different number of actions.
A couple of thoughts to avoid this:

you can configure workbench.editor.untitled.labelFormat: name to avoid long tabs for untitled files
you can configure workbench.editor.tabSizing: shrink to get tabs shrinking up to a min width

Both things will help you.
The only issue I see here is the fact that the selection occurs, but otherwise I am not sure how to improve this.

@bersbersbers to clarify, we will probably not be able to prevent editors from jumping, after all you enabled wrapping tabs in settings and different editors can have different number of actions.
A couple of thoughts to avoid this:

you can configure workbench.editor.untitled.labelFormat: name to avoid long tabs for untitled files
you can configure workbench.editor.tabSizing: shrink to get tabs shrinking up to a min width

Both things will help you.
The only issue I see here is the fact that the selection occurs, but otherwise I am not sure how to improve this.

The only issue I see here is the fact that the selection occurs, but otherwise I am not sure how to improve this.

This is the same conclusion I came to as well unfortunately. I'm also not familiar enough with how the selection works, so I don't know if I can help much there.

The only issue I see here is the fact that the selection occurs, but otherwise I am not sure how to improve this.

This is the same conclusion I came to as well unfortunately. I'm also not familiar enough with how the selection works, so I don't know if I can help much there.

@bersbersbers to clarify, we will probably not be able to prevent editors from jumping, after all you enabled wrapping tabs in settings and different editors can have different number of actions.

I'm not sure the issue is that different editors habe different numbers of actions - the issue as it appears to me it that actions are hidden when an editor is un-focused. What if you did not hide them (that is, provide an option to make the actions stick upon changing editors)? This would prevent jumping upon focus change, any by the way, it  would also calm the UI a bit which is very busy when I change focus - note how the actions are rendered in two steps. On the left side, a superset of the final actions is shown initially before some are removed while the right side, a subset of the final actions is shown before some more are added:

@bersbersbers to clarify, we will probably not be able to prevent editors from jumping, after all you enabled wrapping tabs in settings and different editors can have different number of actions.

I'm not sure the issue is that different editors habe different numbers of actions - the issue as it appears to me it that actions are hidden when an editor is un-focused. What if you did not hide them (that is, provide an option to make the actions stick upon changing editors)? This would prevent jumping upon focus change, any by the way, it  would also calm the UI a bit which is very busy when I change focus - note how the actions are rendered in two steps. On the left side, a superset of the final actions is shown initially before some are removed while the right side, a subset of the final actions is shown before some more are added:

The effect presented above (which appears consistently when changing from a diff editor to a regular editor in my setup, potentially, but not necessarily due to extensions) makes the original issue even more impactful as I just noticed: the editor jumps down and the up as editor actions are added and then removed.
I acknowledge that I caused this issue by enabling the option to wrap tabs, but if this is intended, then the option is simple not usable for me.

The effect presented above (which appears consistently when changing from a diff editor to a regular editor in my setup, potentially, but not necessarily due to extensions) makes the original issue even more impactful as I just noticed: the editor jumps down and the up as editor actions are added and then removed.
I acknowledge that I caused this issue by enabling the option to wrap tabs, but if this is intended, then the option is simple not usable for me.

Yeah I do like the idea of not hiding editor actions for inactive editor groups when tab wrapping is enabled, i am happy to accept a PR in this area.

Yeah I do like the idea of not hiding editor actions for inactive editor groups when tab wrapping is enabled, i am happy to accept a PR in this area.

Actually this is not so trivial because currently we do not allow to click on editor actions for inactive groups, it would simply not work and rather target the other group that is active.

Actually this is not so trivial because currently we do not allow to click on editor actions for inactive groups, it would simply not work and rather target the other group that is active.

Alright, next idea: what about adding an option to reserve space for a fixed number of editor actions, defaulting to zero if tab wrapping is off and some positive number if tab wrapping is on? This would not impact anyone not using tab wrapping; it would solve the jumping tabs for me; and each user can find their own middle-ground between "wasting" space and not-jumping tabs.

Alright, next idea: what about adding an option to reserve space for a fixed number of editor actions, defaulting to zero if tab wrapping is off and some positive number if tab wrapping is on? This would not impact anyone not using tab wrapping; it would solve the jumping tabs for me; and each user can find their own middle-ground between "wasting" space and not-jumping tabs.

Unfortunately I cannot find a good solution to this issue: the number of actions is very dynamic and some extensions may decide to only add actions when the editor becomes active, so we cannot reserve space for actions or always show them because some of them might only appear when you click into the editor.
The suggestions in https://github.com/microsoft/vscode/issues/113818#issuecomment-755418494 improve this for anyone hitting this, so I suggest to workaround with those settings.

Unfortunately I cannot find a good solution to this issue: the number of actions is very dynamic and some extensions may decide to only add actions when the editor becomes active, so we cannot reserve space for actions or always show them because some of them might only appear when you click into the editor.
The suggestions in https://github.com/microsoft/vscode/issues/113818#issuecomment-755418494 improve this for anyone hitting this, so I suggest to workaround with those settings.

After brief discussion with @alexdima we will investigate if this is something maybe the editor widget could provide as new API to indicate a layout change from a event like in this case.

After brief discussion with @alexdima we will investigate if this is something maybe the editor widget could provide as new API to indicate a layout change from a event like in this case.

I was going to open a new report, but this is exactly the issue I'm having:

The jumping is caused by the extra icons in the editor actions being added after the editor group is selected. Those icons increase the margin-right of the last tab, and force it to a new row (which only happens on certain sizes of the window).

Tabs will shrink if they can, but if they can't anymore they'll wrap to a new line, which moves the editor down as well. That's causing a selection, as the editor moves between mouse-down and mouse-up.
This has been happening frequently to me. It's much more likely to occur when you have your editor zoomed in (eg. for screen share), as tabs are bigger as well.

Actually this is not so trivial because currently we do not allow to click on editor actions for inactive groups, it would simply not work and rather target the other group that is active.

I thought I had a solution, but it seems like it falls apart. Sharing here for the sake of conversation, in case I'm wrong.
Suppose we solve this jumping problem by showing the editor actions at all times, and disable them when the editor groups do not have focus. This is an existing pattern for some applications, so I feel that it would translate well here. One challenge might be that some tabs have more actions than others, so the problem would continue to exist (when switching tabs in the same editor group, rather than switching editor groups) unless the editor group always showed ALL available editor actions, even those that didn't apply for the current tab. I don't see how showing unavailable actions on the active editor could possibly fail to be confusing.
I found a different symptom the tab bar itself with the same "mouse down in one place, mouse up in another" root cause. Consider this example: there are five tabs in the unfocused editor group. When you mouse down on the fifth one, it triggers the overflow and causes the fifth tab to enter a new row, and also causes the fourth tab to occupy the space under the cursor. If you now drag before mouse up, you initiate a tab reordering on the fourth tab.

Yes, the tab actions are causing all kinds of weird effects. Here's another two:

Note how tifftools.py moves left in one step when I activate the TeX file, but then moves right in two steps when I activate the right-most Python file.
Note how the x of the TeX file moves under my cursor when I activate the right-most Python file at it's right edge. Clicking there twice closes a file involuntarily.

Here's another one that I am not sure if it is related to the large number of tab actions:

I am resizing the window area horizontally in a continuous, monotonous fashion, and the whole thing is switching between breaking and non-breaking rapidly.

@bersbersbers the last gif seems more like a bug to me, can you maybe file an individual issue on that with exact steps for me how to reproduce. Also, do you maybe have zooming enabled?

@bersbersbers the last gif seems more like a bug to me, can you maybe file an individual issue on that with exact steps for me how to reproduce. Also, do you maybe have zooming enabled?

Yes, I am using "window.zoomLevel": -1. I will post a separate issue as soon as I can reproduce this. This is not easy, though: it's not enough to simply create 5 empty editors and splitting them horizontally. So it may be related to the editor actions.

That issue with tabs stopping to wrap with zoom levels is fixed via https://github.com/microsoft/vscode/issues/116385 and should be available in todays insider release.

FYI @bpasero I just pushed a0945131a10d2da5f15351666db6cd2505d3dde4 which cancels the mouse down & drag operation when the editor height changes while dragging. I think this should cover this scenario without any adoption need from the workbench. Please try it out and let me know, I think that might fix the issue.

❤ 🥂 🍻


Keyboard Launcher in Keyboard Manager

Set global shortcuts for apps, folders, files, and websites, use shortcut to launch them.
For example:
Set Alt+J for Windows Terminal;
Set Alt+K for "D:\MyDocuments\Work";
Set Alt+L for "D:\MyDocuments\Knowledge.pdf";
Set Alt+; for "https://github.com".
And set a shortcut to temporary disable/enable these shortcuts.
And the left "Ctrl.Shift,Alt,Win" and right "Ctrl,Shift,Alt,Win" should be treat as different keys.

hi @capedghost,

Launching apps/etc: there is an issue for this here: #3350 . add your ideas there please!
Currently we treat Left Ctrl/Shift/Alt/Win and their right counterparts as different if you select Win (Left) for example. If you select Ctrl/Shift/Alt/Win without any L/R it will apply to both!

closing as duplicate


fixes range deriving for constructs incl classes/interfaces

Uses text search derived from previous com.sun.source lsif-java (Kotlin edition), which is originally derived from georgewfraser's java language server. Closes #109
Of particular note is that the current changes cause definition occurence to not be emitted. The reference to this no longer existing definition occurrence still gets emitted, we can either follow up with a PR or fix it in this PR.
I feel like moving parts of SemanticdbVisitor.semanticdbRange(...) to the RangeFinder class to keep more of the logic together, but I will revisit this tomorrow.

This branch:
[info] Benchmark                           (lib)  Mode  Cnt     Score    Error  Units
[info] CompileBench.compile            bytebuddy    ss   10  1371.189 ± 46.755  ms/op
[info] CompileBench.compile                guava    ss   10  1860.100 ± 94.912  ms/op
[info] CompileBench.compileSemanticdb  bytebuddy    ss   10  1684.466 ± 32.033  ms/op
[info] CompileBench.compileSemanticdb      guava    ss   10  2292.896 ± 45.351  ms/op

Current main:
[info] Benchmark                           (lib)  Mode  Cnt     Score    Error  Units
[info] CompileBench.compile            bytebuddy    ss   10  1379.276 ± 37.184  ms/op
[info] CompileBench.compile                guava    ss   10  1870.692 ± 95.841  ms/op
[info] CompileBench.compileSemanticdb  bytebuddy    ss   10  1662.590 ± 39.720  ms/op
[info] CompileBench.compileSemanticdb      guava    ss   10  2282.368 ± 70.845  ms/op

Actually, we should still reuse the string for the compilation unit source code because it's unlikely to appear as a bottleneck in our benchmarks.


Default cilium.giantswarm.io/ipam-mode annotation on Cluster CR d…

…uring creation of v19 cluster.
towards: https://github.com/giantswarm/giantswarm/issues/26975
on cluster CR creation, default the ipam mode annotation to kubernets if not set.

Are there customers using flux to manage their clusters on vintage? I'm afraid flux and the admission-controller would be fighting over the annotation, if the customer has the Cluster without the annotation on some repo being reconciled by flux.

I think flux ignores annotations or something? @paurosello maybe you know?

also, don't we use admission controller to do the defaulting in kubectl-gs? Like we dry-run apply each resource to get the defaulting in place. or do I misremember?

also, don't we use admission controller to do the defaulting in kubectl-gs? Like we dry-run apply each resource to get the defaulting in place. or do I misremember?

no we don't

I also had the same thought about GitOps fights. Do we really need to explicitly set the annotation at all?

I also had the same thought about GitOps fights. Do we really need to explicitly set the annotation at all?

we don't have to actually, I thought it was best to be explicit but happy to avoid doing that if y'all believe it's ok to have it implicit

agreed. closing this PR then


Support for watchOS2

Please, add watchOS support for RestKit installed via CocoaPods

We first need an AFNetworking 1.3.x release that supports it.

The latest 1.3.x AFNetworking release was in April 2014 (https://github.com/AFNetworking/AFNetworking/releases/tag/1.3.4)

I know.


NO-JIRA: skip multiarch test before HC creation

What this PR does / why we need it: skips multiarch test before HC creation. Now we skip the testcase which is called after setting up the hc for it. With this change we will avoid creating an unnecessary HC during our e2e.
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/retest

/approve

/lgtm


Stuck at Joining... process

Hi There,
I've some problems about configure this library into out customize board.
Serial Monitor always show Joining... but logs in Chirpstack show status JoinAccept already.
and I've debug to show on Serial Monitor it's shown that In LORA_join_Accept function the Message_Status always return TIMEOUT even I've uncommented delay(900); on join function.

I've developed with these environments.

Board : Customize board with ESP32.
Board Library : ttgo-lora32-v1.
LoRa Module : SX1276. ( Connected DIO pin only DIO0 or I've to connect DIO1 and DIO2 too ? )
Frequency : AS923
Device Class : Class C
Code Editor : PlatformIO on VSCode
I've use code in example : Class-C-ABP but change to OTAA

So can you suggest anything ?  Thanks for your kindly support

This is the code that i use.
#include <lorawan.h>

const char *devEui = "**********";
const char *appEui = "**********";
const char *appKey = "**********";

const unsigned long interval = 60000;    // 10 s interval to send message
unsigned long previousMillis = 0;  // will store last time message sent
unsigned int counter = 0;     // message counter

char myStr[50];
char outStr[255];
byte recvStatus = 0;

const sRFM_pins RFM_pins = {
  .CS = 18,
  .RST = 14,
  .DIO0 = 2,
};

void setup() {
  // Setup loraid access
  Serial.begin(115200);
  delay(5000);
  Serial.println("Start..");
  if(!lora.init()){
    Serial.println("RFM95 not detected");
    delay(5000);
    return;
  }

  // Set LoRaWAN Class change CLASS_A or CLASS_C
  lora.setDeviceClass(CLASS_C);

  lora.setDataRate(SF9BW125);

  // set channel to random
  lora.setChannel(MULTI);

  // Put OTAA Key and DevAddress here
  lora.setDevEUI(devEui);
  lora.setAppEUI(appEui);
  lora.setAppKey(appKey);

  // Join procedure
  bool isJoined;
  do {
    Serial.println("Joining...");
    isJoined = lora.join();
    //wait for 10s to try again
    delay(10000);
  }while(!isJoined);

  Serial.println("Joined to network");
}

void loop() {

  // Check interval overflow
  if(millis() - previousMillis > interval) {
    previousMillis = millis();

    sprintf(myStr, "Counter-%d", counter);

    Serial.print("Sending: ");
    Serial.println(myStr);

    lora.sendUplink(myStr, strlen(myStr), 0, 1);
    counter++;
  }

  recvStatus = lora.readData(outStr);
  if(recvStatus) {
    Serial.print("====>> ");
    Serial.println(outStr);
  }

  // Check Lora RX
  lora.update();
}

Dear @akapong-tkc !
Thank you for contacting us.
We are going to change the subband and possibly this will fix the problem.
For this we are going to need to change a file called Config.h, which is located in the src \ arduino-rfm \ Config.h folder.
In this file we are going to comment line 23 and we are going to uncomment line 22 or in case your gateway is working with another subband please uncomment that line.
In the same way I am going to try for my part to see what other possible error may be occurring to you, if I require more information I will let you know.
Have a nice day
Kind regards!
Electronic Cats Support Team.

Hello @akapong-tkc
Sorry for the delayed response.
I was about to say that you shouldn't connect the DIO pins to the same output, but I noticed that you adjusted it and changed the DIO pins to a separate pin.
Continuing the troubleshooting process, you might be able to resolve the issue by adding a 100ms delay to LORA Cycle after it polls DIO0.
do{    if(digitalRead(RFM_pins.DIO0))      //Poll Rx done for getting message    {       LORA_Receive_Data(Data_Rx, Session_Data, OTAA_Data, Message_Rx, LoRa_Settings);    }    delay(100) ; // add delay to stop reboot }while(millis() - prevTime < Receive_Delay_1);
In addition, read Lorawan-Arduino-Rfm.cpp: Join (157-176).
Six seconds have been set aside as a timeout.
According to the LoRaWAN standard, JOIN ACCEPT DELAY1 should be 5 seconds and JOIN ACCEPT DELAY2 should be 6 seconds.
So it would appear that we are doing everything according to the regulations, but what about join request and response timings and processing times (gateway bridge to network server to application server and back)?
It's possible that the join accept arrives beyond the predetermined timeout of 6 seconds.
We may add a first timeout since it is certain that we will never receive the join answer before 5 seconds.
Any figure between one and three seconds must be secure.
A 900 ms delay is at line 167. You can also fix your issue by uncommenting that line. More time can be added, reducing the number of loops (line 170).
Please let me know about the tests that we run so that I am aware of what you have attempted and can better assist you.
Kind regards!
Electronic Cats Support Team.

Hi there,
Thank you very much for your advices.
By the way, I've tried to edit some codes as your advice.
The result still same as before.
Please let me know, If you want any information to find a solutions.

Problem still didn't solve,  Any new suggestions ?
Merry X'Mas & Happy New Year
Thank you.

I had the same issue with an arduino, to fix it, i wired dio1 to an digital pin. it looks like dio1 si needed for the lorawan join process. i didn't wired dio2 and dio3

@ReYlaN38 I've connected DIO1 already, but error still as the same. All pins on ESP32 connected. By the way, I've changed to use LMIC library working fine on Device Class A (The library does not support Class C). but I still find code and compatible with Class C Device

Hello @akapong-tkc
Do you think you could check the continuity of the wires with a multimeter and that they are not touching each other please?
In addition to the suggestion that I gave you to increase the time, how much did you increase it and in what parts?
Kind regards!
Electronic Cats Support Team.

Hi, I running tests with this lib code with esp32 and STM32 custom boards on helium network. All works ok, just while ago have same issue - was not enough strong signal from helium hotspots to receive back "Join Accept", by traveling close to hot spot locations - joined from first try.

Hello @negis02
We appreciate you sharing all of the information with us; however, if you could create a new case, it would enable us to provide you greater follow-up and provide you with the greatest assistance.
Best Regards.
Electronic Cats Support Team.

Dear @ReYlaN38
Your request has been on hold for the past seven days and is currently awaiting your feedback.
Did your issue behave differently or were tests still able to be run?
Best Regards.
Electronic Cats Support Team.

Dear @ReYlaN38
We shall now close this issue because of the time that has passed.
You can always reopen it.
In case you have any problems or comments, do not hesitate to contact us again.
Have an amazing day!
Kind regards!
Support Team.


Add support for dynamic endpoint add/removal.

Functions identically to previous version, while adding the ability to add/remove endpoints on any cloned client.

Thanks for the PR. Could you please add some tests for this feature?

Yeah, I probably won't get to it for a little.


Fixed Unable to Load APDU error

The error stated to make sure that plugin is loaded before classpath. After doing so the tests ran successfully

The problem is with Java9 and higher as classpath contains jc_api before jcardsim.
Try using JDK8 or gradle tasks directly ./gradlew test
I have to address this issue differently, this PR does not solve it unfortunately.

@sankalpchauhan-me try updating, plugin version 1.7.1 solves the problem.


Feature Request: Update all records at once

Basically, a feature to change a field on every record at once :)

There are no plans to add web APIs for this since it will be very uneffecient if we had to trigger individually the update hooks for each record inside the collection, but you can do this in a more performant way already when using PocketBase as framework either in a migration script (Go/JS) or in custom route (Go). Here is an example in a JS migration:
migrate((db) => {
  // set "pending" status to all articles with empty status field
  db.newQuery("UPDATE articles SET status = 'pending' WHERE status = ''").execute()
}, null)

Better documentation regarding this will be available with the next release.


Add unit tests for MEASUREMENT_EXTENSION_LOG

it looks good to me.

libspdm_responder_measurement_extension_log_test_main() should be covered by LIBSPDM_ENABLE_CAPABILITY_MEL_CAP, not LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP

libspdm_responder_measurement_extension_log_test_main() should be covered by LIBSPDM_ENABLE_CAPABILITY_MEL_CAP, not LIBSPDM_ENABLE_CAPABILITY_MEAS_CAP

Thanks, I have changed to LIBSPDM_ENABLE_CAPABILITY_MEL_CAP.


Julia wrapper for SU2 (The Open-Source CFD Code) (Stanford University Unstructured)

Python wrapper is available for SU2 (The Open-Source CFD Code).
Please provide Julia wrapper for SU2.
SU2 is a suite of open-source software tools written in C++ for the numerical solution of partial differential equations and performing PDE-constrained optimization.
There is no package for CFD in Julia. SU2 is good access for Julia.
could forward it to the correct group to get more attention.
@DanielVandH
@ablaom

@MrBenzWorld
This would be an interesting project, although not one I'd personally have the time to develop - nor the skills probably, I know next to nothing about C++. Currently the time that I do have for this package would be on e.g. #16.
Maybe one idea for you is to consider similar projects where people have wrapped similar software in Julia and see if you can use their approach for wrapping SU2 (e.g. with https://github.com/JuliaInterop/CxxWrap.jl? I don't know) into another package e.g. SU2.jl. That would be a nice contribution.


The UI can't be scaled - everything is way too small. How to resize?

Describe the bug
Since I have to use big fonts, I tried to upscale tusk:

the zoom factor increase on text doesn't work more than once

To Reproduce
Hit the "Make Text Larger" button more than once = no effect
Expected behavior
Like in a browser, the size of the elements of the tusk window should scale up incrementally after hitting "Make text bigger"...
Technical Info (please complete the following information)

OS: arch linux , gnome
Tusk Version: 0.21

p.s: Also the shortcut for "Make text bigger" doesn't work on non-english keyboard layouts where "=" is only reachable by hitting  anyway... - so please use the standard shortcut for zoom levels "+" and
"-" (like in every browser) or please add an option to reset keyboard shortcuts...
BTW: Can I edit the themes in my user directory (or even write an own one)?
thx for your efforts,
p.
Additional context
Add any other context about the problem here.

Is #88 of any help at all?

Sry, but I do not use a new or beta version of evernote (afaik...)...
If there are different ones and you can tell me how to switch between them I am happy to try though.
Or I am completely misunderstanding your question?
thx, p.

U maybe use new Evernote 🤔 tusk not support it now yet


Determine what parts of Vos-Vos-Erkin 22 can be ported to HEIR

Efficient Circuits for Permuting and Mapping Packed Values Across Leveled Homomorphic Ciphertexts.
Jelle Vos, Daniël Vos, and Zekeriya Erkin. 2022.
http://dx.doi.org/10.1007/978-3-031-17140-6_20
This would be an improvement over the baseline in https://github.com/google/heir/issues/914

I read through this one and it's very straightforward and well written.
They decompose each shift required into its constituent bits and shift by the corresponding powers of 2 (e.g., a shift of 5 is 101 requires a shift by 1 and by 4). Up to an exception mentioned later, they always do the rotations in order of bits (shift by 1, then by 2, then by 4, etc.). This can cause conflicts if two intermediate shifted values end up colliding, adding together two values that shouldn't be added together. To avoid this, they construct a graph coloring problem by adding edges when there would be such a conflict, color the graph with the minimal possible colors (using a standard solver) and each color corresponds to a separate copy of the total set of rotations. E.g., three colors means three sets of all log(N) rotations. Then they can run the different sets in parallel. Some minor simplifications are included, like skipping a rotation when all assigned values have that bit zero.
This is still a logarithmic-size construction, like Benes networks, but they claim empirically it does much better for small permutations than HElib's log-size construction.
They have a C++ implementation here: https://github.com/jellevos/perm_map_circuits

I also think it's not necessarily better than the baseline approach in all cases, so we'd want to do both and pick the best for each input program.

I added an implementation of the basic graph coloring approach in https://github.com/j2kun/rotate-solver/blob/main/vos_vos_erkin.py (though I only added one simple test, may still be buggy). I computed the graph to partition the rotation indices, and the rest of the needed code is quite simple: convert a list of index groups to an set of iterated mask+shift+add operations and a final addition.

I also wrote a short blog post explaining the algorithm https://www.jeremykun.com/2024/09/02/shift-networks/


Atlantis 1

Ran Plan for dir: infrastructure workspace: default
Plan Error
Show Output
running "/usr/bin/terraform workspace new default" in "/home/ubuntu/.atlantis/repos/Roma-EDU/diploma-infrastructure/8/default/infrastructure": exit status 1:
The workspace is currently overridden using the TF_WORKSPACE environment
variable. You cannot create a new workspace when using this setting.

To create a new workspace, either unset this environment variable or update it
to match the workspace name you are trying to create, and then run this command
again.

Initializing the backend...

Successfully configured the backend "s3"! Terraform will automatically
use this backend unless the backend configuration changes.

Initializing provider plugins...
- Finding latest version of hashicorp/null...
- Finding latest version of yandex-cloud/yandex...
- Installing hashicorp/null v3.2.1...
- Installed hashicorp/null v3.2.1 (unauthenticated)
- Installing yandex-cloud/yandex v0.100.0...
- Installed yandex-cloud/yandex v0.100.0 (unauthenticated)

Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

╷
│ Warning: Incomplete lock file information for providers
│
│ Due to your customized provider installation methods, Terraform was forced
│ to calculate lock file checksums locally for the following providers:
│   - hashicorp/null
│   - yandex-cloud/yandex
│
│ The current .terraform.lock.hcl file only includes checksums for
│ linux_amd64, so Terraform running on another platform will fail to install
│ these providers.
│
│ To calculate additional checksums for another platform, run:
│   terraform providers lock -platform=linux_amd64
│ (where linux_amd64 is the platform to generate)
╵

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.


Password Strength Checker

Please assign it to me.

Is this the new project you want to add or new functionality to the Password Generator project??

Is this the new project you want to add or new functionality to the Password Generator project??

It is just a project that will help users ensure that their passwords are secure by analyzing the complexity and strength of the chosen password or not. Like it will check for numbers, lowercase, uppercase and some special characters and will show password strength like weak , moderate and strong.

Instead of making project I would recommend to add a feature in password generator project, to test our own password's complexity(If user want to make his/her own password).

Yess suree


Offset option for columns?

The only major feature I feel is missing from here compared to other grids is being able to offset columns by a certain number of others. For example, having a 10-column div offset by one column so it's centered at the smaller width. I couldn't find a reference to this in the documentation.
Are there plans to add this specific feature sometime in the future or did I overlook it under a different alias?

Hey Max,
I saw your tweet earlier today about offsets and it's something I have started looking into, and should have a more concrete answer over the next couple weeks.
For your specific example, I'd currently implement it with something like this:
div{
  @include container-width(80%);
  @include container-align(center);
}

Or if this div is going to contain columns, you could use this:
div{
  @include columns(4, $container-width: 80%, $container-align: center);
}

Which would give you a four column layout inside the centered div.


Values not cleared from the previous debug sessions

 Issue by yasassri
Saturday Nov 18, 2017 at 11:56 GMT
Originally opened as https://github.com/ballerina-lang/composer/issues/4661

Description:

Suggested Labels:
Affected Product Version:
0.95.1
OS, DB, other environment details and versions:
FireFox

This issue is not reproducible in ballerina 0.981.2-SNAPSHOT so closing this issue.


How to Set grav.user variable or reload user object

Hi,
This is not a bug just looking for a way to accomplish something.
I am setting some custom Variables in the accounts users yaml file. Unfortunatly these are not updated for the user until the next time they login:
Possible Solutions:
In a php file (not plugin) set the grav.user.myVariable   - I don't know how to.
Reload the user variables to reflect the latest variables - Can I do this in a twig file or external php file.
Those anybody have any idea how to do this. I am in a bad way with a live project.
Thank you in advance.

This has already been implemented. In Login plugin set Sync User in Session to Enabled.
Note: This means that you need to update user fields from an event on every page load if they were not saved to the file.


Add optional OkHttp transport (instead of Netty)

This PR introduces OkHttp transport as an alternative to Netty. It's fully shaded (including SBT's file sockets) and doesn't add dependencies to the project.
OkHttp is a modern JVM http library, it's super easy to use custom socket factories (like unix socket or npipe), easy to shade (zero dependencies, only okhttp & okio) and work with.
Coverage:
macOS:

[x] Docker Machine + TLS certs
[x] Docker for Mac + unix socket
[x] Docker for Mac + TCP

Linux (based on CI envs):

[x] Native Docker + unix socket

Windows:

[ ] Docker machine + TLS certs
[ ] Docker for Windows + TCP
[ ] Docker for Windows + npipe 🎉

28.05.2018: need help to test on Windows, especially npipe

I'll try to test npipe tonight.

Quick test on Windows with this testcontainers.properties works like a charm (NpipeSocketClientProviderStrategy was automatically set after manually specifying transport.type=okhttp):
docker.client.strategy=org.testcontainers.dockerclient.NpipeSocketClientProviderStrategy
transport.type=okhttp

Expose daemon on TCP without TLS is disabled in my setup.

🎉 :)


Change ComboBoxes to use VirtualizingStackPanel to avoid performance …

…issues with large numbers of options (http://vbcity.com/blogs/xtab/archive/2009/12/15/wpf-using-a-virtualizingstackpanel-to-improve-combobox-performance.aspx)

Thanks!


Distinguish between PUBLIC & PRIVATE linkage

Hi!
I help package grpc / grpcio for conda-forge (mostly centered around the python ecosystem), which has much more powerful infrastructure than what the default pip can do, mostly w.r.t. dealing with non-python dependencies, and tracking which projects are exposed to which projects' ABIs, and rebuilding the respective artefact once new versions of those dependencies get released.
This works very well in practice, but requires some curation, and metadata to distinguish which packages are a host dependence (need to be available at compile time, generally shared libs & their headers), and which need to be available at runtime (e.g. most python stuff, plus the shared libs so the linkage can succeed at runtime).
gRPC is obviously a pretty involved package (due to exposure to various other tricky packages like abseil & protobuf), and so we've done our best to just get & keep things running so far.
But in the process of trying to clean up some metadata for zlib (and to a degree, abseil), we ran into breakage builds consuming abseil, due to the way the link interface of grpc is defined.
For example, the linkage of gprc is defined as:
https://github.com/grpc/grpc/blob/d52ed193d11dee797c0d51dc8db06032998b33f4/CMakeLists.txt#L2345-L2368
even though many of those libraries are only used internally within grpc AFAICT (in particular zlib, re2, c-ares and abseil; not 100% sure about openssl; address_sorting and upb are less critical because they are vendored and therefore always present).
To avoid that every project using grpc now has to declare a dependence on zlib (to be able to link to grpc, which has it in its public link interface), we tried to patch this for our builds. This is not really "live" at the moment, and also not meant to be a definitive patches, but I've uploaded a branch displaying those changes; the most relevant is https://github.com/h-vetinari/grpc/commit/ebd16ea34611011183d80ce1180383846d1a0e3c, the other two then deal only with abseil (which more tedious/voluminous but still important because by default, abseil's ABI changes per C++ version, and we do not want to "infect" other packages with grpc's C++ version, especially if abseil is only used internally, and not e.g. as part of the public API).
Would the grpc project be willing to distinguish which libraries are necessary internally / externally?
Thanks for your consideration. :)
PS. Here's a good (but long) overview of public vs. private linkage in CMake.

@jtattermusch ping

CC @veblush this might have to do with your recent PR.

Hey!
I was about to comment here, because I noticed that grpc now added a requires_private to its pkgconfig generation (yay! 🥳), and wanted to ask if it would be welcome to add something like https://github.com/h-vetinari/grpc/commit/74a8d14442dcf8b903fce0e264bcc09f9eafe9c6 for the CMake side (note that commit contains some annotations for the sake of conda-forge resp. me, those aren't relevant of course)
I don't know how this integrates with the generated CMake files, but as noted pkgconfig metadata (also specified in that CMakeLists.txt) already does support that distinction.

Based on your draft, is the following a complete list of dependencies which should be private?

This is based on my best understanding, but that's really something for the project to specify. Basically, if symbols of a given library appear in the interface of grpc, then it needs to be public (because if the ABI of the linked library changes, now the grpc API has been broken and needs to be recompiled; for that reason exposing foreign types in one's API is obviously fraught with perils).
If the usage is only internal to grpc, it should ideally be private. The patch I used passes various tests in https://github.com/conda-forge/grpc-cpp-feedstock/pull/243, but we haven't rolled it out due to how it's somewhat intertwined (resp. I haven't disentangled things further) with shared windows builds, which are its own minefield (I have a patch to get the library portion to build at least, but it needs further debugging).


✨(terraform) add terraform configuration

Purpose
In a near future, we want to store ashley medias (see #188) and static files on AWS.
We want to use Terraform to setup the required AWS resources for each environment.
Proposal

[x] add base terraform configuration
[x] create a s3 bucket for ashley medias
[x] create a cloudfront distribution

@lunika Thanks for your review, I learned some nice things about the aws provider.
I adressed all your feedbacks, may I ask you a final review? :pray:


difference about FMClassifier in spark3.0

I find FMClassifier in spark3, but I don't know what formate my featuresCol should be. I used my gbdt feature, but the result AUC is bad.
some of my code:
val classifier = new FMClassifier()
.setLabelCol("click")
.setFeaturesCol("gbdtFeature")
.setPredictionCol("predictClick")
.setProbabilityCol("probabilitys")
http://spark.apache.org/docs/latest/api/scala/org/apache/spark/ml/classification/FMClassifier.html
thank in advance!

libsvm?

@hibayesian  作者在哪高就？


Update NEO VM

Current NEO debugger VM is outdated, there are bugs that were fixed  that was not migrated to the current debugger version

Merged


Feature Request: Add enhanced support for swift_{grpc,proto}_library

[ ] A target needs to be created for each proto_library that is a transitive dependency of the swift_proto_library. A target shouldn't be made for swift_proto_library itself.
[ ] An external target for @com_github_apple_swift_protobuf//:SwiftProtobuf need to be the dependency of these.
[ ] The X.pb.swift generated files need to be sources of these proto_library targets.
[ ] Show generated files in Xcode: #1837

How to know if that target is a Swift target or a C++ target?

Why do you need to know? But we mainly check for SwiftInfo or look at the type of source files.

Given a swift_proto_library target and a cc_proto_library target both depend on a proto_library target, if an Xcode target is created for each proto_library, which type of source files should we collect for it?

I don't think that will matter. You would collect info up to the swift_proto_library target, then from there you would create multiple targets for each proto_library. You aren't going to create targets at the proto_library stage (similar to how we create resource bundles after getting to the bundling targets, because we need to let the aspects do their thing).


feat(Turborepo): support inputs for file hash watching

Description

Testing Instructions

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#7907  👈
#7904
#7868
#7855
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @gsoltis and the rest of your teammates on  Graphite


pyAudioAnalysis Error

python /home/lwin/speech-emotion/Speech_emotion_recognition_BLSTM-master1/find_best_model.py -d "berlin" -p /"home/lwin/speech-emotion/Speech_emotion_recognition_BLSTM-master1/wav" -l -e -c 7
Using TensorFlow backend.
Writing berlin data set to file...
Traceback (most recent call last):
File "/home/lwin/speech-emotion/Speech_emotion_recognition_BLSTM-master1/find_best_model.py", line 163, in
functions.feature_extract(ds.data, nb_samples=len(ds.targets), dataset=dataset)
File "/home/lwin/speech-emotion/Speech_emotion_recognition_BLSTM-master1/utility/functions.py", line 20, in feature_extract
hr_pitch = audioFeatureExtraction.stFeatureSpeed(x, Fs, globalvars.frame_size * Fs, globalvars.step * Fs)
File "/usr/local/lib/python3.5/dist-packages/pyAudioAnalysis/audioFeatureExtraction.py", line 679, in stFeatureSpeed
[fbank, freqs] = mfccInitFilterBanks(Fs, nfft, lowfreq, linsc, logsc, nlinfil, nlogfil)
File "/usr/local/lib/python3.5/dist-packages/pyAudioAnalysis/audioFeatureExtraction.py", line 210, in mfccInitFilterBanks
fbank = numpy.zeros((nFiltTotal, nfft))
TypeError: 'float' object cannot be interpreted as an integer

A quick fix might be to replace nfft = Win / 2 on line 663 of audioFeatureExtraction.py
with nfft = int(Win / 2)

Thank you very much!


possible to remove ProDy but first need remove grapose

From apply_results.py we can possibly remove prody.

I fixed this and replaced it with Biopython


systemd: 249.5 -> 249.7 & various fixes

Motivation for this change
This is a rebase version of #121371 + the bump to 249.7
cc @arianvp @flokli
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Let's cook this in staging a bit :-)

Should this upgrade the running init process when running rebuild switch?
+ ssh -p62954 yaya.yuka.dev 'sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch'
updating GRUB 2 menu...
removing obsolete file /boot/kernels/nranbvnqg5ijmjrnvj6g5fg2w90ia3ha-initrd-linux-5.15.4-initrd
removing obsolete file /boot/kernels/shl48yrwmdxnndrmim11ylbvpsfzjjc3-linux-5.15.4-bzImage
stopping the following units: acme-fixperms.service, audit.service, bind.service, coturn.service, deluged.service, dhparams-init.service, docker.service, docker.socket, dovecot2.service, gitea-port-forward.service, gitea.service, gotify-server.service, hedgedoc.service, heisenbridge.service, iperf3.service, jellyfin.service, jicofo.service, jitsi-videobridge2.service, kmod-static-nodes.service, matrix-synapse.service, mautrix-telegram.service, mount-pstore.service, network-local-commands.service, nix-daemon.service, nix-daemon.socket, nscd.service, opendkim.service, pleroma.service, postfix.service, postgresql.service, proc-sys-fs-binfmt_misc.automount, prometheus-jitsi-exporter.service, prometheus-nginx-exporter.service, prometheus-node-exporter.service, prosody.service, radicale.service, redis.service, restic-rest-server.service, rspamd.service, systemd-binfmt.service, systemd-modules-load.service, systemd-networkd-wait-online.service, systemd-networkd.service, systemd-networkd.socket, systemd-resolved.service, systemd-sysctl.service, systemd-timesyncd.service, systemd-tmpfiles-clean.timer, systemd-tmpfiles-setup-dev.service, systemd-udev-trigger.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd.service, trainsearch.service, up-rewrite-proxy.service, vnstat.service, zram-reloader.service
NOT restarting the following changed units<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>systemd-journal-flush.service, systemd-logind.service, systemd-random-seed.service, systemd-remount-fs.service, systemd-tmpfiles-setup.service, systemd-update-utmp.service, systemd-user-sessions.service<EMAIL_ADDRESS><EMAIL_ADDRESS>zram-init-zram0.service
activating the configuration...
setting up secrets...
setting up /etc...
setting up secrets...
restarting systemd...
reloading user units for yuka...
setting up tmpfiles
reloading the following units: dbus.service, dev-hugepages.mount, dev-mqueue.mount, gitlab-runner.service, nftables.service, proc-sys-fs-binfmt_misc.mount, reload-systemd-vconsole-setup.service, sys-fs-fuse-connections.mount, sys-kernel-config.mount, sys-kernel-debug.mount
gitlab-runner.service is not active, cannot reload.
proc-sys-fs-binfmt_misc.mount is not active, cannot reload.
restarting the following units: home-manager-yuka.service, nginx.service, sshd.service, systemd-journald.service
starting the following units: acme-fixperms.service, audit.service, bind.service, coturn.service, deluged.service, dhparams-init.service, docker.socket, dovecot2.service, gitea-port-forward.service, gitea.service, gotify-server.service, hedgedoc.service, heisenbridge.service, iperf3.service, jellyfin.service, jicofo.service, jitsi-videobridge2.service, kmod-static-nodes.service, matrix-synapse.service, mautrix-telegram.service, mount-pstore.service, network-local-commands.service, nix-daemon.socket, nscd.service, opendkim.service, pleroma.service, postfix.service, postgresql.service, proc-sys-fs-binfmt_misc.automount, prometheus-jitsi-exporter.service, prometheus-nginx-exporter.service, prometheus-node-exporter.service, prosody.service, radicale.service, redis.service, restic-rest-server.service, rspamd.service, systemd-binfmt.service, systemd-modules-load.service, systemd-networkd-wait-online.service, systemd-networkd.socket, systemd-resolved.service, systemd-sysctl.service, systemd-timesyncd.service, systemd-tmpfiles-clean.timer, systemd-tmpfiles-setup-dev.service, systemd-udev-trigger.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, trainsearch.service, up-rewrite-proxy.service, vnstat.service, zram-reloader.service
the following new units were started: systemd-vconsole-setup.service

@yu-re-ka It does: restarting systemd...

Somehow didn't notice that line, everything is good then :)


Add error-messages in case kafka / influx is unreachable

No need to terminate, but complaining would be cool

We should probably add a /health endpoint as well that can be pinged. It should return 500 if either of those have issues.

Fixed


MINOR: fix KafkaStreams#cleanUp(): should throw and fail for lock conflict

\cc @bbejeck @vvcephei @tedyu @gbloggs
While digging into KAFKA-6647 if found this issues. Related to #4702

lgtm

Added more tests -- please have a detailed look if the tests cover all scenarios we want to cover and that I did not mess up the setup. Locally, the test passed.
@gbloggs Could you check out this branch and run the test in your environment to see if they pass or fail there? It's hard to fix as long as we can't reproduce.

I've tried running the changes in this PR and it seems to have made things worse. Streams will not start at all any more if KafKaStreams.cleanUp() is called before start(). Getting the following error:
Caused by: org.apache.kafka.streams.errors.StreamsException: java.nio.file.DirectoryNotEmptyException: C:\tmp\kafka-streams\depot-query-stream-processor.local-dev\global
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:262)
at org.apache.kafka.streams.KafkaStreams.cleanUp(KafkaStreams.java:931)
...
Caused by: java.nio.file.DirectoryNotEmptyException: C:\tmp\kafka-streams\depot-query-stream-processor.local-dev\global
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:266)
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
at java.nio.file.Files.delete(Files.java:1126)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:651)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:634)
at java.nio.file.Files.walkFileTree(Files.java:2688)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at org.apache.kafka.common.utils.Utils.delete(Utils.java:634)
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:255)
... 20 more
If I add cleanUp() to the shutdownHook I get:
Exception in thread "Thread-24" org.apache.kafka.streams.errors.StreamsException: java.nio.file.DirectoryNotEmptyException: \tmp\kafka-streams\depot-query-stream-processor.local-dev\1_0
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:250)
at org.apache.kafka.streams.KafkaStreams.cleanUp(KafkaStreams.java:931)
at <foo.bar>.KafkaStreamsConfiguration$StreamCloser.run(KafkaStreamsConfiguration.java:160)
Caused by: java.nio.file.DirectoryNotEmptyException: \tmp\kafka-streams\depot-query-stream-processor.local-dev\1_0
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:266)
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
at java.nio.file.Files.delete(Files.java:1126)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:651)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:634)
at java.nio.file.Files.walkFileTree(Files.java:2688)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at org.apache.kafka.common.utils.Utils.delete(Utils.java:634)
at org.apache.kafka.streams.processor.internals.StateDirectory.cleanRemovedTasks(StateDirectory.java:319)
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:247)
... 2 more

I've tried running the changes in this PR and it seems to have made things worse. Streams will not start at all any more if KafKaStreams.cleanUp() is called before start(). Getting the following error:
Caused by: org.apache.kafka.streams.errors.StreamsException: java.nio.file.DirectoryNotEmptyException: C:\tmp\kafka-streams\depot-query-stream-processor.local-dev\global
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:262)
at org.apache.kafka.streams.KafkaStreams.cleanUp(KafkaStreams.java:931)
...
Caused by: java.nio.file.DirectoryNotEmptyException: C:\tmp\kafka-streams\depot-query-stream-processor.local-dev\global
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:266)
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
at java.nio.file.Files.delete(Files.java:1126)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:651)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:634)
at java.nio.file.Files.walkFileTree(Files.java:2688)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at org.apache.kafka.common.utils.Utils.delete(Utils.java:634)
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:255)
... 20 more
If I add cleanUp() to the shutdownHook I get:
Exception in thread "Thread-24" org.apache.kafka.streams.errors.StreamsException: java.nio.file.DirectoryNotEmptyException: \tmp\kafka-streams\depot-query-stream-processor.local-dev\1_0
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:250)
at org.apache.kafka.streams.KafkaStreams.cleanUp(KafkaStreams.java:931)
at <foo.bar>.KafkaStreamsConfiguration$StreamCloser.run(KafkaStreamsConfiguration.java:160)
Caused by: java.nio.file.DirectoryNotEmptyException: \tmp\kafka-streams\depot-query-stream-processor.local-dev\1_0
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:266)
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
at java.nio.file.Files.delete(Files.java:1126)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:651)
at org.apache.kafka.common.utils.Utils$1.postVisitDirectory(Utils.java:634)
at java.nio.file.Files.walkFileTree(Files.java:2688)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at org.apache.kafka.common.utils.Utils.delete(Utils.java:634)
at org.apache.kafka.streams.processor.internals.StateDirectory.cleanRemovedTasks(StateDirectory.java:319)
at org.apache.kafka.streams.processor.internals.StateDirectory.clean(StateDirectory.java:247)
... 2 more

Thanks for looking into that. It actually make sense that it is "worse" now because this PR fixes a swallowed exception, and also add the check for the global state directory.
The good thing is, what we can reproduce the issue now reliably. In the impl, we still hold the .lock file when we try to delete the directory. This works fine on Linux. It seems that Windows does not allow this. Maybe, we should move the lock-file from the state directory into the top-level directory and use a different lock-file name for each task to fix this.
What do others think? If we agree that this should be the right fix, I can add it to this PR.

Isn't that what I did in #4702 ?

@tedyu Yes. You did not rename the lock-file though. We need different lock-file names for different tasks.
@gbloggs After Ted did improve his PR, you could try to cherry-pick into you test env to see if it fixes the issues?

Maybe, we should move the lock-file from the state directory into the top-level directory and use a different lock-file name for each task to fix this.

I left a comment on the ticket about thinking carefully for moving the file lock:
regarding to your PR, changing the state directory structure such as lifting the lock file on level up may not be a backward compatible change, since if users upgrade their streams library version to the one that includes this change their code will be broken.

Because it is possible that two threads will conflict as they are holding on two different threads.
A slightly different and more complicated approach if we want to keep the lock file in the same directory, is to delete other file / folders under that task id except the lock file:
/<state.dir>/<application.id>/<task.id>/.lock   // keep this file, delete all others.
/<state.dir>/<application.id>/<task.id>/.checkpoint
/<state.dir>/<application.id>/<task.id>/storeName1/
/<state.dir>/<application.id>/<task.id>/storeName2/
/<state.dir>/<application.id>/<task.id>/rocksdb/storeName3/
/<state.dir>/<application.id>/<task.id>/rocksdb/storeName4/

And depending on manualUserCall, we can then delete the file and the folder after releasing the lock safely if that flag is true; or write to the lock file some bytes indicating that this task id directory is deleted so that in the cleanup() call it can be removed eventually. In other words, only in KafkaStreams.cleanup call we will try to complete wipe out the task id directory, while for the background cleanup thread we will only focus on freeing up spaces.

That's a good point @guozhangwang -- I originally thought, that this cannot happen because different instances need to be configured with different state directories -- but this is only true if a global store is used -- if no global store is use, the state directory can be shared and I agree that it would be problematic as you pointed out.

I am having issues building Kafka clean from master. Keep getting:
:streams:test-utils:build
:jar_core_2_11
Building project 'core' with Scala version 2.11.12
:jar_core_2_11 FAILED

I have tried many different methods. I have IntelliJ with Scala but that fails. I am using Gradle 4.6, Scala 2.12.4, Java 8 on windows with gitbash/mingw64. I have tried setting SCALA_VERSION and tried updating the version in both kafka-run-class.bat & .sh and gradle.properties to 2.12.4. I was hoping to add some tests but cant get anything built. Anybody know how to resolve this?

Not sure... Can you build on command line? Did you try to set ./gradlew -PscalaVersion=2.12.4 jar ?

I tried all the options including the -P. All on command line via git bash or the terminal in intellij. 😢

@guozhangwang @bbejeck @vvcephei @tedyu @gbloggs
Was wondering what the status of this is? Do we wait for @tedyu to finish #4702 ?

I just rebased this to make sure we can eventually merge it. Blocked via #5650 that should get merged first.

@guozhangwang Given that #8267 is merged, do we still need this PR? Or can we drop it?

@mjsax I think we can drop it now.


Update README.md

Related Issue

Your solution

How Has This Been Tested?

Screenshots (if relevant):

jhkl


THRIFT-4855: Pin golang/mock to 1.2.0

The latest version (1.3.0) of golang/mock requires us to switch to Go modules for our tests, but that's not trivial given our directory structure.
Additionally, modules are still considered experimental and won't be finalized until at least Go 1.13, so we have some time to consider our options.
For now, this commit just fixes the CI issues by pinning the version.

Looks like we need a similar fix to npm jsdoc being too new for xenial... ignore the xenial build result.

Looks like something got merged before it passed tests.
make[4]: Entering directory '/thrift/src/lib/netstd'
/usr/bin/dotnet test Tests/Thrift.Tests/Thrift.Tests.csproj
Microsoft (R) Test Execution Command Line Tool Version 16.0.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Starting test execution, please wait...
Failed   TJSONProtocol_Can_Create_Instance_Test
Error Message:
 Test method Thrift.Tests.Protocols.TJSONProtocolTests.TJSONProtocol_Can_Create_Instance_Test threw exception:
Castle.DynamicProxy.InvalidProxyConstructorArgumentsException: Can not instantiate proxy of class: Thrift.Transport.Client.THttpTransport.
Could not find a constructor that would match given arguments:
System.Uri
<null>
Stack Trace:
    at Castle.DynamicProxy.ProxyGenerator.CreateClassProxyInstance(Type proxyType, List`1 proxyArguments, Type classToProxy, Object[] constructorArguments)
   at NSubstitute.Proxies.CastleDynamicProxy.CastleDynamicProxyFactory.GenerateProxy(ICallRouter callRouter, Type typeToProxy, Type[] additionalInterfaces, Object[] constructorArguments)
   at NSubstitute.Substitute.For[T](Object[] constructorArguments)
   at Thrift.Tests.Protocols.TJSONProtocolTests.TJSONProtocol_Can_Create_Instance_Test() in /thrift/src/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolTests.cs:line 39
Total tests: 17. Passed: 16. Failed: 1. Skipped: 0.
Test Run Failed.
Test execution time: 2.1403 Seconds

cc: @Jens-G

Looks like something got merged before it passed tests.

Yes, which is why I tested it on a branch without Jens' commits and Travis passed. See here and here.
So I'm gonna go ahead and merge this.


Update dependencies.

Coverage remained the same at 100.0% when pulling f16d78699ddd3199ea20fd5c5f81a23a0de12cc0 on update-dependencies into 1827a9649386d4fc46ca13b2cd4bac382ab4a25a on master.


fix: non-function import expression syntax highlighting

Overview
This is a follow-up to #38 from a recommendation in https://github.com/a-h/templ/issues/566. This adds support for syntax highlighting on non-function components such as the following:
templ higherOrderTemplate(a, b templ.Component) {

		@a

		@b

}

Before

After

Caveat
However, since this is reusing the current import-expression pattern it passes the function name into source.go which marks the syntax as a variable instead of a function since it doesn't have an open parenthesis. Just wanted to point this out to make sure this is okay or if we'd like to override this scenario to force the function syntax token?

Had a quick look, this looks good. A side note though, what is it you're using for the textmate debugs?

@joerdav before you ship the next version of the extension can you check out https://github.com/templ-go/templ-vscode/pull/35?
It's adding an important fix to inline script tags. I left one comment to also fix inline style tags and would love to see both of those fixed for the next release.

That's a useful command, thanks!
Yes will take a look at that first.

On the caveat, I think that's acceptable, no need to override form my understanding.


Create biosample index to resolve Tissue/cell type entities

As discussed with @Tobi1kenobi and @DSuveges, we want to create an index containing all the valid tissue/cell type entities for the Open Targets Platform. This will help with validation and resolve labels, ontology, etc.
The most immediate use case is to resolve all the biosample identifiers' eQTL catalogue studies at the API level.  In the future, this data can be used for many other use cases: baseline expression, literature-mining, etc. Currently, the QTL study index contains the biosampleId (e.g. UBERON code), but we will rely on the index to retrieve labels or any additional data.

A few tasks:

[x] create relevant datasource parsers (e.g. UBERON, CL)
[ ] #3478
[x] create biosampleIndex step to call the parsers and write the single index. Deciding on a reasonable data model.
[x] develop a qc method in the studyIndex that flags studies with invalid biosample entities
[x] add the relevant qc flag to the study_validation logic/configuration
[ ] once the dataset is generated - @remo87 can help to load it in the genetics instance and expose the API (separate ticket)

This has taken a little longer than expected as I initially wrote everything for owl but have since shifted to JSON ontology files. But the code should all be in  https://github.com/opentargets/gentropy/compare/alegbe-biosample_index
Would like to test it against the study index currently in gentropy before I make a pull request but unsure of best way to do this

Is it related to tissue/cell line catalogue we previously discussed?


Reset started counter

This is necessary so that if the WorkersManager restarts the started counter to 0 as no worker survived to fail/finish the previous running jobs.
There's also the nice side-effect of always registering the queue to QueueStats even if no job ever runs for this queue. Previously it would register just if at least 1 job ran.

Changes Unknown when pulling 70211f6b69e9f005269dc128a77913016488c80b on reset-started-counter into ** on master**.


Added missing colors to docs

I added the missing colors from the new docs site including Black, White, Text, and BorderGray.

Codecov Report

Merging #280 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #280   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          39     39
  Lines         440    440
=====================================
  Hits          440    440

Continue to review full report at Codecov.

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


Arte +7 not supported

Hello,
I would like to download the following  video:
http://www.arte.tv/guide/de/061700-000-A/maidan-die-kunst-und-die-revolution
youtube-dl --verbose output:

[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'http://www.arte.tv/guide/de/061700-000-A/maidan-die-kunst-und-die-revolution']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.01.09
[debug] Python version 3.5.1 - Linux-4.3.3-3-ARCH-x86_64-with-arch
[debug] exe versions: ffmpeg 2.8.5, ffprobe 2.8.5, rtmpdump 2.4
[debug] Proxy map: {}
[arte.tv:+7] 061700-000-A: Downloading webpage
ERROR: Unable to extract iframe url; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 665, in extract_info
ie_result = ie.extract(url)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 312, in extract
return self._real_extract(url)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/arte.py", line 83, in _real_extract
return self._extract_from_webpage(webpage, video_id, lang)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/arte.py", line 98, in _extract_from_webpage
webpage, 'iframe url', group='url')
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 616, in _html_search_regex
res = self._search_regex(pattern, string, name, default, fatal, flags, group)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 607, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract iframe url; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

So I went through the HTML myself to find this URL:
https://api.arte.tv/api/player/v1/oembed/de/061700-000-A?platform=ARTEPLUS7&autostart=1&fluid=1
(in this element: <div arte_vp_config="arte_tvguide" arte_vp_lang="de_DE" arte_vp_url_oembed="https://api.arte.tv/api/player/v1/oembed/de/061700-000-A?platform=ARTEPLUS7&autostart=1&fluid=1" class="video-container"></div>)
If you open in in the browser you see it is JSON that contains the <iframe>. If you run youtube-dl on that URL, it will download it as a file.
This is the iframe URL however:
http://www.arte.tv/arte_vp/index.php?json_url=https%3A%2F%2Fapi.arte.tv%2Fapi%2Fplayer%2Fv1%2Fconfig%2Fde%2F061700-000-A%3Fplatform%3DARTEPLUS7%26autostart%3D1&lang=de_DE&config=arte_tvguide
If you open it in the browser the video starts playing.
youtube-dl --verbose gives:

[generic] index.php?json_url=https://api.arte: Requesting header
WARNING: Falling back on generic information extractor.
[generic] index.php?json_url=https://api.arte: Downloading webpage
[generic] index.php?json_url=https://api.arte: Extracting information
ERROR: Unsupported URL: http://www.arte.tv/arte_vp/index.php?json_url=https%3A%2F%2Fapi.arte.tv%2Fapi%2Fplayer%2Fv1%2Fconfig%2Fde%2F061700-000-A%3Fplatform%3DARTEPLUS7%26autostart%3D1&lang=de_DE&config=arte_tvguide
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 665, in extract_info
ie_result = ie.extract(url)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 312, in extract
return self._real_extract(url)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/generic.py", line 1908, in _real_extract
raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: http://www.arte.tv/arte_vp/index.php?json_url=https%3A%2F%2Fapi.arte.tv%2Fapi%2Fplayer%2Fv1%2Fconfig%2Fde%2F061700-000-A%3Fplatform%3DARTEPLUS7%26autostart%3D1&lang=de_DE&config=arte_tvguide

You are using an outdated version of youtube-dl. Read our FAQ if you have troubles updating.


Build UStar archives by default

The tar::Builder type by default will build GNU archives, but
unfortunately we force it here to use UStar archives instead. The
UStar format has more limitations on the length of path name that it
can encode, so it's not quite as nice to use.
Older cargos, however, had a bug where GNU archives were interpreted
as UStar archives. This bug means that if we publish a GNU archive
which has fully filled out metadata it'll be corrupt when unpacked by
older cargos.
Hopefully in the future after enough cargos have been running around
with the bugfixed tar-rs library we'll be able to switch this over to
GNU archives, but for now we'll just say that you can't encode paths
in archives that are too long.
Closes #2326

r? @wycats
(rust_highfive has picked a reviewer for you, use r? to override)

gonna go ahead and merge so we can get this into the nightlies.
This is a regression in Cargo, but it's purely on the nightly channel of Rust (e.g. stable or beta channel Cargo versions are not affected). Along those lines, I don't think there's much we need to do here other than recommend authors republish crates with older Cargo installations or newer Cargo builds once this is merged.
@bors: r+ 5c0c21322c611a39b98c99bd8207cccc246917a0

:hourglass: Testing commit 5c0c213 with merge 2d065f0...

cc @brson

:sunny: Test successful - cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64, cargo-win-msvc-32, cargo-win-msvc-64

Awesome fast fix. Scary bug.

@alexcrichton Is this bug in the 1.7 beta's cargo?

This bug was introduced in dd342960 when the tar-rs library was upgraded from 0.3.2 to 0.4.0 where 0.4.0 created GNU archives by default. That commit was not in 1.7 beta's cargo, so yay!

Hopefully in the future after enough cargos have been running around with the bugfixed tar-rs library we'll be able to switch this over to GNU archives

Do you think 4.5 years is long enough, or do you have a time frame in mind? I just hit the length limit.


About training on my personal dataset

Hello, bro, I am very interested in your research. Can the code for the first phase of VAE model training be updated simultaneously? Since the dataset I trained was not based on ImageNet or Coco, the subsequent model training results were bad, and the problem shown in the figure below occurred. Thanks for your contributions to this field. Looking forward to your reply.

I have the same problem. Have you solved it yet？

Same problem

I have the same problem.


log simple query

fixes #228

Hey @tanner0101, you just merged a pull request, have a coin!
You now have 1124 coins.


New: Orbit camera around object

Description
This PR implements the Orbit camera around object sample. See details at common-samples/issues/1188
Branch URL: https://github.com/Esri/arcgis-runtime-samples-ios/tree/Ting/New-Orbit-vNext/arcgis-ios-sdk-samples/Scenes/Orbit camera around object
See a demo video below.
https://user-images.githubusercontent.com/9660181/127719794-b1811315-8d4e-45a3-90f9-721e77a9fa27.mp4
Known issues

If the animation for cockpit view is interrupted before finishing, there will be a timing bug. i.e. the camera may end up in an unexpected position. Since it doesn't matter too much, I didn't handle the cancelable job.
When the popover is presenting, touching on the scene view doesn't dismiss it. This is as designed, so that user can pan and zoom on the scene view to control the camera heading. To dismiss the popover, either tap on the nav bar, or on the button itself.
The heading and pitch of the graphic is used instead of the symbol's. This is as designed, though I'm not sure why. (i.e. planeGraphic.attributes["PITCH"] is used instead of planeSymbol.pitch)

How to test
Read through the README, and try all the UI controls to see if the rotation stuck at some point.

I'm still able to select the other view options despite the camera settings popover being present and the other buttons being disabled.

Unfortunately that's how toolbar behaves with popover presentations. Other samples such as Animate 3D graphic also work like that. As long as it doesn't cause a bug, I tend to leave it as-is.

Additionally, I can't exit the popover unless I tap the "camera" button again. Tapping the scene should dismiss the popover.

Please see the "Known issue 2" atop.
I'm not quite happy with what I came up here though. There would be a few possible solutions.

Don't pass through the scene view when the popover is presented (delete line 171). In this way, tapping on the scene view will dismiss the popover as normal. But there is no way to show the slider in sync with the camera, when the gestures are initiated by panning on the scene view. (which is the behavior on desktop platforms)
Add a single tap gesture recognizer to the scene view to dismiss the popover
Implement the touch delegate. i.e.

extension OrbitCameraAroundObjectViewController: AGSGeoViewTouchDelegate {
    func geoView(_ geoView: AGSGeoView, didTapAtScreenPoint screenPoint: CGPoint, mapPoint: AGSPoint) {
        controller.dismiss(animated: true)
    }
}

Where the controller is a reference to the OrbitCameraSettingsViewController instance created by the segue.
I'll leave it unchanged and wait for your next comment.

I like the changes you made to the camera view button!

But there is no way to show the slider in sync with the camera, when the gestures are initiated by panning on the scene view. (which is the behavior on desktop platforms)

IMO, I would sacrifice showing the sliders to be able to tap away from the popover. While it's nice to see the heading and pitch, being unable to dismiss the popover by tapping elsewhere is counterintuitive. Additionally, the HIG specifically states it as a method of of dismissing the popover.
I don't really have a preference over the other 2 options you've listed. We can keep this conversation open for further discussion

Thanks for the feedback! I've applied most of them. Please review again.
P.S. GitHub Action seems to be down now: https://www.githubstatus.com/incidents/lc8s9rtyjmgq so no worries for the absence of a green checkmark ✅


Support for format part of node:util

[!Note]
We have removed usage of this API on our side since it was used only once, however I still think it'd be helpful to have this regardless of Powertools.

In Powertools for AWS Lambda (TypeScript) we use the format function from the node:util module (Node.js docs here) as part of the Logger module.
According to both tests and the API docs of LLRT the module doesn't seem to be supported.
On our side we use it to print certain warnings instead of using template literals so that the values are escaped safely.
The spec for the format module seems easy enough, so it'd be great if it could be added to LLRT.

I will add this next, thank you for the report !

I have updated the OP to reflect that we have removed our usage of this API so it's no longer a blocker.
I still think it's a low hanging fruit so it could be added regardless though.