Add comparison kernels for DictionaryArray

Which issue does this PR close?

Closes #869
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

@alamb I started the work on this.  Would you be able to give it a quick look when you get the chance to make sure its going in the right direction?

@alamb this took me much longer than it should have, and im still not even sure if its idiomatic rust / arrow but i think i might be close to getting the eq_dict_scalar kernel.  this process did definitely help a lot with learning about rust traits / macros and how arrow uses them.
one thing i noticed is that it doesnt seem there is way to create a DictionaryArray from a vec of scalars like you can with a vec of str slices.  Is that expected? I also dont see a builder method i can use to construct the DictionaryArray.  I guess the main use case for DictionaryArray is with strings and not scalars?
Either way, would you be able to see if this update is going in the right direction?  If so, then I can extend to utf8 kernels etc.

one thing i noticed is that it doesnt seem there is way to create a DictionaryArray from a vec of scalars like you can with a vec of str slices.

You can create DictionaryArrays from &str  using FromIter as shown in https://docs.rs/arrow/6.3.0/arrow/array/struct.DictionaryArray.html
use arrow::array::{DictionaryArray, Int8Array};
use arrow::datatypes::Int8Type;
let test = vec!["a", "a", "b", "c"];
let array : DictionaryArray<Int8Type> = test.iter().map(|&x| if x == "b" {None} else {Some(x)}).collect();
assert_eq!(array.keys(), &Int8Array::from(vec![Some(0), Some(0), None, Some(1)]));

There isn't an equivalent syntax for other scalar types (e.g. u32, u64, etc) though we could add them

The type system is very tricky -- let me see if I can sketch something out to help

@alamb i made some updates the scalar test is now passing!  i think i did it right...maybe some stylistic changes to be made though.  If you're okay with this implementation then i can add the other ops for scalar.
i had started on the utf8_scalar macro but im still trying to figure out if i can reuse compare_dict_op_scalar macro or if i need to make another one that downcasts to GenericStringArray.

Codecov Report

Merging #984 (b5f04c5) into master (9703f98) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #984      +/-   ##
==========================================
- Coverage   82.32%   82.31%   -0.01%
==========================================
  Files         168      168
  Lines       48717    49051     +334
==========================================
+ Hits        40107    40378     +271
- Misses       8610     8673      +63

Impacted Files
Coverage Δ

arrow/src/compute/kernels/comparison.rs
93.39% <100.00%> (+0.45%)
:arrow_up:

arrow/src/datatypes/native.rs
72.91% <0.00%> (-1.56%)
:arrow_down:

arrow/src/array/array_string.rs
97.08% <0.00%> (-0.83%)
:arrow_down:

parquet/src/record/reader.rs
89.83% <0.00%> (-0.63%)
:arrow_down:

parquet/src/schema/printer.rs
72.47% <0.00%> (-0.55%)
:arrow_down:

arrow/src/util/display.rs
20.00% <0.00%> (-0.39%)
:arrow_down:

arrow/src/array/transform/mod.rs
85.10% <0.00%> (-0.38%)
:arrow_down:

arrow/src/datatypes/schema.rs
66.66% <0.00%> (-0.27%)
:arrow_down:

arrow/src/array/array.rs
85.45% <0.00%> (-0.26%)
:arrow_down:

parquet_derive/src/parquet_field.rs
65.98% <0.00%> (-0.23%)
:arrow_down:

... and 15 more

Continue to review full report at Codecov.

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

I wonder if a SIMD implementation could be done as well

I wonder if a SIMD implementation could be done as well

If we take the approach I tried to sketch in https://github.com/apache/arrow-rs/pull/984#discussion_r765173303 i think the comparisons themselves could be vectorized (ideally by falling back to the existing vectorized kernel)

@alamb ive started updating to your proposed approach but now when testing i get an error that a type annotation is needed for type parameter T.  Im still playing around with it but ran out of time for today.  Does that mean that the scalar needs to be casted to an ArrowPrimitiveType that is then used here:
 eq_scalar(as_primitive_array::<T>(left.values()), right)

i think the comparisons themselves could be vectorized (ideally by falling back to the existing vectorized kernel)

@alamb I thought the benefit of dictionary comparison would be that it would enable vectorization of key comparison (especially useful when values are strings), since the number of keys would usually be much larger than the number of values (although vectorization of value comparison is a nice fallback in case the dictionary isn't sorted and so a binary search wouldn't work). In your proposed approach vectorization of key comparison could still happen, but is left to the compiler (instead of using explicit vectorization from existing comparison kernels). Or have I misunderstood?

@alamb I thought the benefit of dictionary comparison would be that it would enable vectorization of key comparison (especially useful when values are strings), since the number of keys would usually be much larger than the number of values

Yes that is my understanding @yordan-pavlov

In your proposed approach vectorization of key comparison could still happen, but is left to the compiler (instead of using explicit vectorization from existing comparison kernels).

I guess I was imagining that the key comparisons would be exactly as vectorized as the existing comparison kernels; Specifically, in my sketch above there is a call to eq_scalar (aka an existing comparison kernel)
            eq_scalar(as_primitive_array::<T>(left.values()), right)

@matthewmturner  I plan to answer your question in more detail tomorrow.

I am still thinking about this one

So I messed around with this some more. The key thing I kept hitting was that the comparisons to the dictionary values effectively needed to be "dynamic"
Here is one approach that we might be able to use (and skip the specialized eq_dict_scalar entirely).

/// Perform `left == right` operation on an array and a numeric scalar
/// value. Supports PrimtiveArrays, and DictionaryArrays that have primitive values
pub fn eq_dyn_scalar<T>(
    left: &dyn Array,
    right: T::Native,
) -> Result<BooleanArray>
where
    T: ArrowNumericType,
{
    #[cfg(not(feature = "simd"))]
    println!("{}", std::any::type_name::<T>());
    match left.data_type() {
        DataType::UInt8 => {
            // horrible (?) way to get a u8
            let right: u8 = right.to_usize()
                .and_then(|right| right.try_into().ok())
                .ok_or_else(|| ArrowError::ComputeError(format!("Can not convert {:?} to u8 for comparison with UInt8Array", right)))?;
            eq_scalar::<UInt8Type>(as_primitive::<UInt8Type>(left), right)
        }
        DataType::UInt16 => {
            // horrible (?) way to get a u16
            let right: u16 = right.to_usize()
                .and_then(|right| right.try_into().ok())
                .ok_or_else(|| ArrowError::ComputeError(format!("Can not convert {:?} to u16 for comparison with UInt16Array", right)))?;
            eq_scalar::<UInt16Type>(as_primitive::<UInt16Type>(left), right)
        }
        // TODO other primitive array types
        DataType::Dictionary(key_type, value_type) => {
            match key_type.as_ref() {
                DataType::UInt8 => {
                    let left = as_dictionary::<UInt8Type>(left);
                    unpack_dict_comparison(left, eq_dyn_scalar::<T>(left.values().as_ref(), right)?)
                }
                // TODO fill out the rest of the key types here
                _ => todo!()
            }
        }
        // TODO macroize / fill out rest of primitive dispatch
        _ => todo!()
    }
}

The downside is you still need type annotations at the callsite:

    #[test]
    fn test_dict_eq_scalar() {
...
        let array = builder.finish();
        // still need the UInt8Type annotations
        let a_eq = eq_dyn_scalar::<UInt8Type>(&array, 123u8).unwrap();
        assert_eq!(
            a_eq,
            BooleanArray::from(vec![Some(true), None, Some(false)])
        );
    }

The other thing I can think of, that seems a bit of a hack, but might be ok would be to take something like impl TryInto<i128> which covers all current native types

/// Perform `left == right` operation on an array and a numeric scalar
/// value. Supports PrimtiveArrays, and DictionaryArrays that have primitive values
pub fn eq_dyn_scalar<T>(
    left: &dyn Array,
    right: T
) -> Result<BooleanArray>
where
    T : TryInto<i128> + Copy + std::fmt::Debug
{
    let right: i128 = right
        .try_into()
        .map_err(|_| ArrowError::ComputeError(format!("Can not convert scalar {:?} to i128", right)))?;
    match left.data_type() {
        DataType::UInt8 => {
            let right: u8 = right
                .try_into()
                .map_err(|_| ArrowError::ComputeError(format!("Can not convert {:?} to u8 for comparison with UInt8Array", right)))?;
            eq_scalar::<UInt8Type>(as_primitive::<UInt8Type>(left), right)
        }
        DataType::UInt16 => {
            let right: u16 = right
                .try_into()
                .map_err(|_| ArrowError::ComputeError(format!("Can not convert {:?} to u16 for comparison with UInt16Array", right)))?;
            eq_scalar::<UInt16Type>(as_primitive::<UInt16Type>(left), right)
        }
        // TODO macroize + fill out the other primitive array types here

        DataType::Dictionary(key_type, value_type) => {
            match key_type.as_ref() {
                DataType::UInt8 => {
                    let left = as_dictionary::<UInt8Type>(left);
                    unpack_dict_comparison(left, eq_dyn_scalar(left.values().as_ref(), right)?)
                }
                // TODO fill out the rest of the key types here
                _ => todo!()
            }
        }
        _ => todo!()
    }
}

/// unpacks the results of comparing left.values (as a boolean)
///
/// TODO add example
///
fn unpack_dict_comparison<K>(
    left: &DictionaryArray<K>,
    dict_comparison: BooleanArray,
) -> Result<BooleanArray>
where
    K: ArrowNumericType,
{
    assert_eq!(dict_comparison.len(), left.values().len());

    let result: BooleanArray = left
        .keys()
        .iter()
        .map(|key| {
            key.map(|key| unsafe {
                // safety lengths were verified above
                let key = key.to_usize().expect("Dictionary index not usize");
                dict_comparison.value_unchecked(key)
            })
        })
        .collect();

    Ok(result)
}

Which then finally allows a call to eq_dyn_scalar without type annotations:
    #[test]
    fn test_dict_eq_scalar() {
        ...
        let array = builder.finish();
        // YAY! No type annotations!
        let a_eq = eq_dyn_scalar(&array, 123).unwrap();
        assert_eq!(
            a_eq,
            BooleanArray::from(vec![Some(true), None, Some(false)])
        );
    }

IMO we need a dyn Scalar and a cmp_scalar(array: &dyn Array, scalar: &dyn Scalar) -> BooleanArray that dispatches to specific implementations based on the array's datatype. We then use cmp_scalar(dict.values().as_ref(), scalar) and clone the indices. Inspiration for trait Scalar here: https://github.com/jorgecarleitao/arrow2/tree/main/src/scalar . I hope it helps.

avoid having to add type annotations to the call of eq_dict_scalar?

You can likely infer the first type (eq_dict_scalar::<_, UInt8Type>(&array, 123)) because the type is directly related to the left argument:
pub fn eq_dict_scalar<T, K>(
     left: &DictionaryArray<K>,
     right: T::Native,
 ) -> Result<BooleanArray>
 where
     T: ArrowNumericType,
     K: ArrowNumericType,

The problem with the right argument is that there's potentially an infinite number of concrete T types that could have a matching associated type Native:
impl ArrowNumericType for OneThing {
    type Native = u8;
}

impl ArrowNumericType for SomeOtherThing {
    type Native = u8;
}

I won't claim to have read the code thoroughly, but I'm not yet understanding why there are two generics here. Could you change the function to have only one?
pub fn eq_dict_scalar<K>(
     left: &DictionaryArray<K>,
     right: K::Native,
 ) -> Result<BooleanArray>
 where
     K: ArrowNumericType,

I won't claim to have read the code thoroughly, but I'm not yet understanding why there are two generics here. Could you change the function to have only one?

Sadly @shepmaster  they types are different -- K is the type of the keys and T was the type of the value

Ah:

the way you have this function with a single T generic parameter means one could not compare a DictionaryArray<Int8> (aka that has keys / indexes of Int8) that had values of type DataType::Unt16

Perhaps one possibility would be to have a trait that maps in the reverse direction? Something like
trait IntoArrowNumericType {
    type Arrow: ArrowNumericType;
}

impl IntoArrowNumericType for u8 {
    type Arrow = UInt8Type;
}

pub fn eq_dict_scalar<T, K>(
     left: &DictionaryArray<K>,
     right: T,
 ) -> Result<BooleanArray>
 where
     K: ArrowNumericType,
     T: IntoArrowNumericType,
 { todo!() }

For reference (for someone not following the gist), a DictionaryArray is essentially
struct DictionaryArray<K> {
    indices: PrimitiveArray<K>
    values: Arc<dyn Array>
}

that is itemwise represented as indices.into_iter().map(|optional_index| optional_index.map(|index| "values[index]")) where "values[index]" represents the index of values.
@alamb 's insight is that we can compare a dictionary with a scalar of the same (dynamic) type as values by comparing values with that scalar (ignoring indices).

"inspiration" because

there is Datafusion's scalar API based on enums, which we could consider instead
in arrow2 there is a smaller number of physical types than arrow (one per physical type as opposed to one per logical type), so it can't be copied as is
the scalar API it is not IP-cleared it was added to arrow2 post IP clearance :/

@alamb my understanding is that any meaningful chunk of code with any license needs to be cleared if it's not original creation of the dev written for the Apache Arrow project. I believe @jorgecarleitao referred to this: that trait is not IP cleared yet, thus it needs the legal process :/

@alamb @jorgecarleitao  im not familiar enough with the rest of the code base, but would adding a dyn Scalar trait mean having to update everywhere rust native scalars are currently used with that trait?  of course this is assuming legal issues are resolved.  on that point, independent from the context of this PR, is IP clearance expected to refresh anytime soon?
The approach from @shepmaster seemed quite nice as well however would still require users setting the type of the scalar - is that acceptable?

but would adding a dyn Scalar trait mean having to update everywhere rust native scalars are currently used with that trait?

One approach could be to remove all the rust native scalars and replace with dyn Scalar, but another approach is to have both (keep the existing kernels with different signatures, and add a new entirely dynamic kernel eq_scalar(&dyn Array, &dyn Scalar).
I think keeping with the existing style of separate kernels for separate rust native types for this PR is probable,

of course this is assuming legal issues are resolved. on that point, independent from the context of this PR, is IP clearance expected to refresh anytime soon?

I defer to @jorgecarleitao on his plans, as he is the primary author of most of arrow2

The approach from @shepmaster seemed quite nice as well however would still require users setting the type of the scalar - is that acceptable?

I think it is acceptable (and a good idea) personally. It would result in perhaps something like:
/// Perform `left == right` operation on an array and a numeric scalar
/// value. Supports PrimtiveArrays, and DictionaryArrays that have primitive numeric values
pub fn eq_dyn_scalar<T>(
    left: &dyn Array,
    right: T
) -> Result<BooleanArray>
where
    T : IntoArrowNumericType
{
...
}

?

@alamb ok! I can open a new issue for adding the IntoArrowNumericType trait which i think we would want to do separate from this PR.  That would also give others an opportunity to provide an opinion and give a little time to see if there is path forward on the ip clearance.

@alamb ok! I can open a new issue for adding the IntoArrowNumericType trait which i think we would want to do separate from this PR. That would also give others an opportunity to provide an opinion and give a little time to see if there is path forward on the ip clearance.

Sounds good @matthewmturner .
In terms of Scalar / ScalarValue and IP clearance, here is what I would suggest:

We implement the kernels that dynamically dispatch on the array type eq_dyn_scalar, eq_utf8_dyn_lit and eq_bool_dyn_lit),  -- I can definitely find time to help here)
We the file a follow on ticket / issue for implementing a fully dynamic kernels that dispatch both on array type and on scalar type

What can I do to be most helpful for this project?

BTW for some context, the comparison kernels for dictionaries are very important (though not critically urgent) for our usecase in IOx. as we have large amounts of dictionary string data.
Thus given you are working on this I can reallocate some non trivial amount of my time to help. Thank you for all the effort so far @matthewmturner
cc @pauldix @jacob-marble

Yes, what @alippai wrote. Given the number of differences that we would need to apply, re-writing it shouldn't be very difficult. My comment was really just to point out that dyn Scalar is a an option here. I think we discussed this some time ago with @nevi-me (the idea of a Scalar API to help us write generic code).

@alamb thank you for the additional context and all the guidance youve provided so far.
just to expand on and summarize your plan to make sure im not missing any steps, can you confirm these are the steps?

New issue / PR to implement IntoArrowNumericType
Use 'IntoArrowNumericType' to create the different underlying xx_dict_scalar functions / macros.
We create the dynamic array kernels (i.e. eq_dyn_scalar) for scalar values, using the the new dict kernels create in step 2 for DictionaryArray (this PR)
We create issue for implementing the Scalar api
We create issue for creating dynamic array and scalar kernels

Im happy to, and have enjoyed, working on this. but I dont want to slow down anything on the IOx side as a result of me getting up to speed on the different pieces here.  If you're okay (and aligned on the steps above) with it we could continue as we have been on this, and ill start on the first step and ping you as I have questions / for guidance.  If this isnt moving at a quick enough pace then we can work on plan for how you can assist on the implementation to speed it up?

It's been a while, but if I recall correctly, the idea was for compute kernels in arrow to follow a similar approach to C++ where we have a Datum (or whatever we call it), which could likely be an enum of the same datatype. Within that Datum, we'd have Scalar, Array, ...
The C++ impl has a ChunkedArray which is effectively Vec<Array>, but we never went with that.
It would have been desirable to move Scalar to arrow at the time, but that's fortunately been done in arrow2.

Hi @matthewmturner  -- I will respond tomorrow - I ran out of time today

just to expand on and summarize your plan to make sure im not missing any steps, can you confirm these are the steps?

Yes I think those are the steps I was proposing. Thank you @matthewmturner

If you're okay (and aligned on the steps above) with it we could continue as we have been on this, and ill start on the first step and ping you as I have questions / for guidance. If this isn't moving at a quick enough pace then we can work on plan for how you can assist on the implementation to speed it up?

Sounds like a good plan!  Thank you!

It's been a while, but if I recall correctly, the idea was for compute kernels in arrow to follow a similar approach to C++ where we have a Datum (or whatever we call it), which could likely be an enum of the same datatype. Within that Datum, we'd have Scalar, Array, ...

That is a great idea @nevi-me  -- I couldn't find an existing ticket so I wrote a new one here: https://github.com/apache/arrow-rs/issues/1047
Maybe we can work towards that vision, starting with the equality kernels (we'll need all the pieces and tests, even when we have a fully dynamic dispatch, I suspect)

@matthewmturner  let me know if it would help to file a ticket for IntoArrowNumericType

@matthewmturner  let me know if it would help to file a ticket for IntoArrowNumericType

@alamb Sure that would be great!

@shepmaster one quick question on your proposal.
What would be the difference between using that approach compared to implementing the From trait (https://doc.rust-lang.org/std/convert/trait.From.html) for ArrowNumericType on each of the rust native types.  I guess that would change the signatures / how we call the functions to something like the following:
fn eq_dict_scalar<K, T>(left: &DictionaryArray<K>, right: T)
where
    K: ArrowNumericType,
    T: ArrowNumericType,
{
    todo!()
}

// ----

fn usage<K>(d: &DictionaryArray<K>)
where
    K: ArrowNumericType,
{
    eq_dict_scalar(d, 8.into());
    eq_dict_scalar(d, -64.into());
}

@alamb FYI

If it makes sense to use From, then there should be no material difference. You can still take a generic T: Into<ArrowNumericType> to avoid forcing the caller to do extra typing.
However, I don’t think that path is good as you’d still need to provide explicit types: what is the concrete type you are converting into?

However, I don’t think that path is good as you’d still need to provide explicit types: what is the concrete type you are converting into?

Actually, i think im mistaken and mixing up types and traits.  I dont think we need to do a conversion.  Sry about that.

@matthewmturner  - I filed https://github.com/apache/arrow-rs/issues/1068 to track the IntoArrayNumericType trait
Before we spend time creating polished PRs for IntoArrowNumericType I think we should try and spike out a PR showing how the API would work with eq_dyn_scalar
Once we had that basic framework in place then we could fill out the implementation in individual PRs.
If it would help, I could try and take a crack at creating such a PR (likely based on this one)

One area that still needs to be determined in C++ is interfaces for custom comparisons:

https://issues.apache.org/jira/browse/ARROW-12046
https://en.wikipedia.org/wiki/Alphabetical_order#Language-specific_conventions
https://www.postgresql.org/docs/current/collation.html
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/xtfrm

Maybe worth planning for this as well.

Maybe worth planning for this as well.

Thanks @bkmgit  -- perhaps you can file a ticket for the item ?

I think we have had all the discussion on this ticket and have the follow up items tracked in other tickets / issues. Thus closing this PR down


With the new update it does not allow the opening of the character sheets

With the new update it does not allow the opening of the character sheets

You can use the module Forien's Copy Environment

List modules.txt

I think it went into conflict with the "token vision tweks" module.
I immediately noticed an error in this last one.
I uninstalled and reinstalled it and everything worked again

Hi @Pipizio - if you are able, would you please try this beta version of PDFoundry to see if it fixes your issue.
pdfoundry-v0.7.15b1.zip


RealmSwift Carthage for Xcode 8 and Swift 3?

The existed frameworks be created by an older version of the compiler.

@xspyhack Xcode 8 and Swift 3 compatible RealmSwift will be released soon. For now, you should specify --no-use-binaries option to avoid Carthage download pre-built binaries. Also specify master branch, and toolchain using Swift 3.
So a Cartfile is:
github "realm/realm-cocoa" "master"

carthage command and options are:
TOOLCHAINS=com.apple.dt.toolchain.Swift_3_0 carthage update --no-use-binaries

any precise release date?

@liuxuan30 We've released v1.1.0 already. https://github.com/realm/realm-cocoa/releases/tag/v1.1.0

is it for swift 3.0? I was thinking it's not


Where do I find the new ViT baseline param?

Regarding https://github.com/google-research/big_vision#vit-baseline

Sorry, I should have been clearer. By param, I meant the pre-trained params. Are they available yet?

It is an oversight from our side: we will publish it soon. Leaving the issue open until then.

Thanks!
As soon as they're available I will try to port them to a TensorFlow / Keras friendly model for wider community adoption.

Models have been landed, see https://github.com/google-research/big_vision/blob/6c376d6f621fe93627ee697674abd202392d8faa/big_vision/models/vit.py#L328
Closing the issue, feel free to reopen if you have any questions.


make Toc list style configurable

Currently, using <Toc /> merely offers a disc styled list but table of contents usually want numeric numbering.
With this PR, the <Toc /> list style becomes configurable using the added prop listStyle which allows decimaland disc and defaults to decimal.

I though I'd make it simple, allowing only discand decimal but you're probably right. What do you think of this version? ol by default and the following example would result in a disc list style handing over the classes the the ol.
<Toc :listClassNames="['!list-disc']" />

By the way, I am facing issues rebuilding the demo running pnpm demo:dev. Changing the slides markdown, saving is not enough for the changes to become visible. I am forced to give the local server a restart. Is this expected behavior?

I was passing around and saw this PR.
Maybe it is a useful helper but currently as vue propagates (to the root) the attributes passed to components, it can be done with the current implementation, e.g.:
<Toc class="funky"/>

.funky > ul {
    list-style: none;
}
.funky > ul ul {
    list-style: lower-greek;
}

For reference, similarly, pure CSS can be used to display the TOC as dots (see css below).
Compared to an experiment I had made with a TOC component https://twitwi.github.io/slidev-incubation/incubator/#/3 , I think it is not currently possible to style differently the previous and future items in the TOC (the router-link-active class is present on the a but the css cannot express "a li that is before a li that contains a a").
.funky ul, .funky li {
  display: inline-block;
  font-size: 0;
}
.funky li a {
  display: inline-block;
  border-style: none !important; /* remove theme style */
  min-width: 10px;
}
.funky li a::after {
  content: '○';
  font-size: 10pt;
}
.funky li a.router-link-active::after {
  content: '◉';
}
.funky li li a::after {
  content: '◌';
}
.funky li li a.router-link-active::after {
  content: '◎';
}
.funky li a:hover::after {
  color: red;
}

@twitwi Many thanks for joining the issue and bringing up these options.
My intent was to make changing the list style as easy as possible because I'd argue it is the most common aspect one would like to change of how <Toc/> is displayed. With this in mind, I would even consider my first approach again (27079ebefa1c249c6d392804f816c2e2cbb159f7) and add the rest of the list styles. Advanced styling of <Toc /> could happen with CSS as @twitwi explains.
What do you all think?

(I had written a comment but I probably forgot to finish it... I'm trying to recreate it)
I have made a PR https://github.com/slidevjs/slidev/pull/502 mainly to render the TOC as a list of disks (without the text).
Currently it adds a mode but it might be better to make this rendering choice independently of the choice of what elements to show (i.e., the proposed mode="allDots" is currently exclusive with mode="onlyCurrentTree" etc).
Maybe this PR 502 can be cleaned and generalized to simplify many use cases, e.g. (it is always possible to use mode="onlyCurrentTree" ...).
<Toc/>    the default, as now

Some "presets" for typical use
<Toc render="disks"/>   also the default
<Toc render="dots"/>    the compact view as in 502

Customized things (used as in https://github.com/slidevjs/slidev/pull/502/files#diff-09ddd923cd380d377ae432ac8c9af51ee1854aebf653a8a79ab915da87101ef3R18 )
<Toc render="I1o"/>           to have a full toc with roman numbers at level 1, arabic at level 2 and disks for all deeper levels
<Toc render="●○◌◡."/>     (same as render="dots", i.e. any non letter or digit character is used )


⚠ HopeAlley Ecards has degraded performance

In 904fccd, HopeAlley Ecards (https://hopealley.com/ecards) experienced degraded performance:

HTTP code: 200
Response time: 6392 ms

Resolved: HopeAlley Ecards performance has improved in 3f510b5.


Report "No Cask with this name exists." After uninstall and install jce-unlimited-strength-policy

General troubleshooting steps

[x] I have retried my command with --force and the issue is still present.
[x] I have checked the instructions for reporting bugs (or making requests) before opening the issue.

[x] None of the templates was appropriate for my issue, or I’m not sure.

[x] I ran brew update-reset && brew update and retried my command.
[x] I ran brew doctor, fixed as many issues as possible and retried my command.
[x] I understand that if I ignore these instructions, my issue may be closed without review.

Description of issue
I suspect sth wrong with my cask installed jce-policy, so i run
brew cask UNinstall jce-unlimited-strength-policy
then run
brew cask install jce-unlimited-strength-policy
but now it reports "Error: Cask 'jce-unlimited-strength-policy' is unavailable: No Cask with this name exists. "
Output of your command with --verbose --debug
Error: Cask 'jce-unlimited-strength-policy' is unavailable: No Cask with this name exists.
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:53:in `rescue in casks'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:48:in `casks'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:13:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:35:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:97:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:167:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:131:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'
Error: Kernel.exit
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:172:in `exit'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:172:in `rescue in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:155:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:131:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'

Output of brew cask doctor
==> Homebrew-Cask Version
Homebrew-Cask 1.3.6-121-g32ce927
caskroom/homebrew-cask (git revision c994ea; last commit 2017-10-27)
==> Homebrew-Cask Install Location
<NONE>
==> Homebrew-Cask Staging Location
/usr/local/Caskroom
==> Homebrew-Cask Cached Downloads
~/Library/Caches/Homebrew/Cask (3 files, 331.0MB)
==> Homebrew-Cask Taps:
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask (3777 casks)
/usr/local/Homebrew/Library/Taps/airbnb/homebrew-main (2 casks)
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-versions (174 casks)
==> Contents of $LOAD_PATH
/usr/local/Homebrew/Library/Homebrew/cask/lib
/usr/local/Homebrew/Library/Homebrew
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby/2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby/2.3.0/x86_64-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby/2.3.0/universal-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/site_ruby
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby/2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby/2.3.0/x86_64-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby/2.3.0/universal-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/vendor_ruby
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/x86_64-darwin9.0
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/lib/ruby/2.3.0/universal-darwin9.0
==> Environment Variables
LANG="en_US.UTF-8"
PATH="~/airlab/runtime_gems/tools/bin:~/.rbenv/shims:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/airbnb/bin:/usr/local/munki:/usr/local/osquery/bin:/opt/puppetlabs/bin:~/airlab/repos/sysops/optica_tools:/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services/cmd:/usr/local/Homebrew/Library/Homebrew/shims/scm"
SHELL="/bin/bash"

jce-unlimited-strength-policy was moved to caskroom/version but it has since been removed from Homebrew-Cask.
https://github.com/caskroom/homebrew-versions/pull/4633


ImportError when importing neptune

I get the following error message when importing neptune:
`    import neptune
File "E:\01_Programs\01_Anaconda\envs\mlenv\lib\site-packages\neptune_init_.py", line 19, in
from neptune import envs, projects, experiments
File "E:\01_Programs\01_Anaconda\envs\mlenv\lib\site-packages\neptune\projects.py", line 23, in
from neptune.experiments import Experiment, push_new_experiment
File "E:\01_Programs\01_Anaconda\envs\mlenv\lib\site-packages\neptune\experiments.py", line 31, in
from neptune.internal.utils.image import get_image_content
File "E:\01_Programs\01_Anaconda\envs\mlenv\lib\site-packages\neptune\internal\utils\image.py", line 19, in
from PIL import Image
File "E:\01_Programs\01_Anaconda\envs\mlenv\lib\site-packages\PIL\Image.py", line 94, in
from . import _imaging as core
ImportError: cannot import name '_imaging'`
Python 3.6
Please help

Hi @sreedevi101,
Judging from a quick look around Google, this issue might be related to having Pillow instaled.
Please take a look here: https://stackoverflow.com/questions/25340698/importerror-cannot-import-name-imaging
If this doesn't help. please let me know!

Its solved. Thank you.


how to deploy JS not TS?

Bundling test123
v1.38.0: Pulling from supabase/edge-runtime
Status: Downloaded newer image for public.ecr.aws/supabase/edge-runtime:v1.38.0
Error: entrypoint path does not exist (/home/deno/functions/test123/index.ts)

any config setup can support full .js?

Once PR-301 is merged, we can load .js[x].
However, looking at @supabase/cli, it seems to hardcode index.ts after the path to be passed to the --entrypoint for the bundle command.
https://github.com/supabase/cli/blob/main/internal/functions/deploy/deploy.go#L225-L227

I'm having the same problem.

Sorry about that. It was an issue where we put the wrong function name in the deployment, and it would be nice if the error was a little clearer.


Standardize base properties for all components

Description
Ideally we should have a standardized set of properties that can be expected across all components regardless of size or scope, including:

id
css_classes
data attributes

While many of the larger components have the ability to specify these attributes, their child elements do not always provide for this ability without the additional overlap of the html_attributes hash.
Allowing for class and data attributes would seem to be the highest priority of the three, particularly so that data-kjb-element attributes can be used for specs and QE tests. Rolling out id throughout could present problems with uniqueness once components are used at scale.
h/t @mostfamiliar

CSS clases addressed in #443

MOved to Jira https://kajabi.atlassian.net/browse/UXD-79


Model Release

Thanks for your great work.
I saw that there is a closed sfm model question. Is that related this part?
"We provide SfM models of Aachen, RobotCar and CMU built with HF-Net/SuperPoint. Download and unpack the HF-Net weights in $EXPER_PATH/hfnet/"

Hi, Thanks!
I have seen this part in the paper:
The process is as follows: i) we perform 2D-2D matching between reference frames using our
features and an initial filtering ratio test; ii) the matches are
further filtered within COLMAP using two-view geometry;
iii) 3D points are triangulated using the provided ground
truth reference poses. Those steps result in a 3D model with
the same scale and reference frame as the original one.
We wonder will this flow be released that we could try to examine on other datasets?

Hi, thank your for your interest in our work. The SfM models are finally available here. Regarding the process to build new SfM models, it is explained in details in colmap-helpers/README.md.


dynamodb:ListShard permission is missing from the lambda Execution Role

Request:
Update the permissions required on the lambda execution role in the documentaion  here to include dynamodb:ListShards action.
Issue:
Currently, the documentation related to lambda Execution Role Permissions to manage resources related to DynamoDB streams stream mentions the following permissions:
dynamodb:DescribeStream
dynamodb:GetRecords
dynamodb:GetShardIterator
dynamodb:ListStreams
However, when using these permissions itself, the creation of AWS::Lambda::EventSourceMapping resource is failing with the following error: Invalid request provided: Cannot access stream <Stream ARN>. Please ensure the role can perform the GetRecords, GetShardIterator, DescribeStream, ListShards, and ListStreams Actions on your stream in IAM. (Service: Lambda, Status Code: 400)
From the above error message, it is clear that the dynamodb:ListShards permission is also required to create EventSourceMapping resource. Providing this permission on the lambda execution role has fixed the error.
I would request to update the documentation to include the dynamodb:ListShards permission in order to avoid confusion.

Thank you for providing the feedback. I have updated the permissions list to include dynamodb:ListShards.


[BUG] QR.replaceLast, page not disposed!

Hey!
The method QR.replaceLast('/new-route'); does not dispose of the current route with a StatefulWidget.
How can this be fixed?

Can you provide an Example code?

Sorry for the late answer.
The QR.replaceLast('/new-path') function is not correctly replacing the current route on Android devices. When navigating back, the replaced route is still displayed, despite no longer being present in the QR.history.
Expected Behavior
The QR.replaceLast('/new-path') function should produce the same result as the following sequence:
CopyQR.back();
QR.to('/new-path');
Let me know if you need more informations

The same issue is with this method QR.replace("/any-path", "/new-path")

I could not reproduce the bug in a test project. I am therefore closing the issue


higher-contrast universal themes

This PR tweaks the light and dark themes to make them more universal and more readable.
The new themes appear as follows (presented in both light and dark situations to present their universal appeal):
Light Theme

Dark Theme

In my opinion, the Light theme is so universal (it looks good in both light and dark situations) that you dont even need the dark theme anymore.
This PR also adds a minor responsive tweak so that the numerical values don't get clipped when drawing a smaller ruler.
This PR should close #15

w000t! Fantastic! Yeah, the light theme should do just fine by itself. Let's remove the dark one soon :)
:beers:

Ok, awesome. :smile:
What do you think about removing the "theme" button all together (the bottom right icon), and making the lr icon in the top left act as a "menu button", which reveals a nice dropdown, "fly-out" or "tooltip"-style menu (where the themes can be changed). This would "future proof" the app because other items could be added to the new menu if needed, but also help clean up the UI (since all customizations, theme changes, and ruler-centric operations can be encapsulated in this new lr menu).
Just a thought!


Array creation

(Builds upon the fix-test-suite branch from #63, only the last commit is important here)
I made a transformer that removes the performance penalty for building Elm Array using something like Array.fromList [ 1, 2, 3 ], by precomputing the resulting the shape of the transformations result. This optimization only applies when encountering list literals. I did this by copying the compiled code that does this transformation inside this repository.
I made 2 benchmarks in JS-land to test the performance:

https://jsbench.me/w6kwdopkj6/1 (10 items): Result is about 108x faster.

https://jsbench.me/zrkwdnkgos (100) items: Result is about 2.5 times faster.
(Note that the order of the test suite is not the same as above, sorry about the confusion)

I don't know how to get this proposal further than this. I can't run the benchmarks locally (they fail for some reason). I should be able to add this transformer to the configuration that enables/disables transformations, and I'll do that soon, but that's as far as I know how to go without further help.
How do I go about validating that this improvement works out well in practice? And what are the missing steps to get this in?

Probably worth mentioning that this idea came from @robinheghan's post https://dev.to/skinney/de-throning-the-list-part-boron-185
I only came up with the idea of doing this through elm-optimize-level-2, most credit goes to Robin 😊


fix: Fix default import from CJS

https://github.com/alexnault/classix/issues/29

Codecov Report

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

@@           Coverage Diff            @@
##             main       #30   +/-   ##
========================================
  Coverage        ?   100.00%
========================================
  Files           ?         1
  Lines           ?         9
  Branches        ?         2
========================================
  Hits            ?         9
  Misses          ?         0
  Partials        ?         0

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


What is the Environment config builder?

What is it and why do I need this? Seems like it works without using the Environment Config builders.

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

ID: 67bda25f-abd6-9ed3-5e5c-ebe53196dac2
Version Independent ID: 265ace8e-9474-af38-7234-d89f6af38408
Content: Quickstart for Azure App Configuration with .NET Framework
Content Source: articles/azure-app-configuration/quickstart-dotnet-app.md
Service: azure-app-configuration
GitHub Login: @yegu-ms
Microsoft Alias: yegu

@jordanchang Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@yegu-ms - Please help evaluate the query and update as appropriate.

@jordanchang Thanks for raising this! While Environment is not required for Azure App Configuration, we're including it in this Quickstart because we're setting the connection string to the App Configuration service through an environment variable. .NET app needs it to access the variable.

#please-close

Thank you @yegu-ms
@jordanchang - We are closing this issue for now, however if you have any further queries please tag us in your reply and we will be happy to take the conversation forward. Thanks


Add logging convenience methods to Python SDK

Specifically, on the loggable metadata about the instance, a json() and maybe a string() method (or similar) that can just be called and logged prettily.

Closed by https://github.com/approzium/approzium/pull/84


HBASE-27807 PressureAwareCompactionThroughputController#tune log the opposite of the actual scenario

HBASE-27807 PressureAwareCompactionThroughputController#tune log the opposite of the actual scenario
Correct the condition of the if statement

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m  0s
Docker mode activated.

-1 :x:
patch
0m  2s
https://github.com/apache/hbase/pull/5198 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/5198

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5198/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m  0s
Docker mode activated.

-1 :x:
patch
0m  2s
https://github.com/apache/hbase/pull/5198 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/5198

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5198/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m  0s
Docker mode activated.

-1 :x:
patch
0m  3s
https://github.com/apache/hbase/pull/5198 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/5198

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5198/1/console

versions
git=2.25.1

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 55s
Docker mode activated.


Stepper Motor

Made a stepper motor model. Need some work.
Doesn't do cutouts and the axle alignment is a bit broken.
Nice work with cqparts the abstraction is just right and the tutorials made it pretty easy start.

@zignig very nice!

Nice work with cqparts the abstraction is just right and the tutorials made it pretty easy start.

I'm glad you like it!
This would be a great start to the cqparts_motors library, would you consider making a pull request?

Pull request requested. ;)
Now onto servos and DC motors...

@zignig Awesome!

@zignig awesome!, you might beat me to #7 !

Thanks @zignig !


TOMEE-2337 - Code cleanup openejb container loader

Added JavaDoc's, use diamond operator, isEmpty method, Switch case statement and added @Override

@otaviojava I updated little code, could you please check if it's okej

That is nice @cchacin :) I believe just left the empty javadoc

found few more diamond :)

@otaviojava could you please check if it's right 🤞

@cicekhayri that is fine, please, just check the Javadoc

I'll check them and try to fix them

Hi everyone,  wonder if someone could check the JavaDocs I added..would love some help if there are wrong ones

This is bad 😓, i think i just delete this PR and let somebody else work on this

Hej everyone, got some comments on the JavaDocs I did and It's sounds that it's really bad and wonder if you guys also thinks that.. and wonder if I just delete the JavaDocs and just commit the diamond op. or should I just delete whole branch and start from scratch.. I need to get my motivation up again :) ..

:+1: for <> changes

otaviojava approved these changes 7 minutes ago

:disappointed:

@otaviojava oh, I see. I thought it was full green light for merge.

@pzygielo
Once three persons are reviewing that PR that means at least two persons need to set green. The best scenario will be if all of then approve.

I am overall ok with the PR but the javadoc part is more the one to discuss.
I agree with @pzygielo. If JavaDoc does not bring anything more than you can read with the code itself, then I just remove it.
JavaDoc listing the attributes and the throws are useless to me because I can read it on the code itself. Remember that the best documentation is the code. So if the code is not meaningful, the javadoc won't make it clear. So I'm tempted to address the root cause first and fix the code.
Than being said, @cicekhayri can you look at @pzygielo comments and take them into account so I can merge this PR before it grows and conflicts start appearing?

@jeanouii I removed the JavaDocs because it doesn't add anything useful to the code

Sounds good, let's get the PR merged then.
Thanks @cicekhayri for the PR and thanks @pzygielo for the review.


Create an New "v2" Tag Branch for Releasing the v2 With Responsive Design On Repo

In My Fork I Released the v2. I Just Want to Update the Release It at here also.
After Your Creating the v2 branch in tag part I Will Send Pull Request to Merge the Tag Branch.

@lmas3009 are you there

Sorry for the delay..
I just created a new tag. now you can send a new pull request


Shape regularity for adaptive tetrahedral meshes

Hello,
it seems that using adaptive mesh refinement on tetrahedral meshes destroys the shape regularity of the mesh.
In order to avoid any influences from my own code, I modified Example 6 (serial) such that it calls the function Mesh::PrintCharacteristics(...) in each AMR iteration and increased the maximum number of dofs up to 500000, i.e.,
...
const int max_dofs = 500000;
for (int it = 0; ; it++)
{
   ...
   Vector v1, v2;
   mesh.PrintCharacteristics(&v1, &v2, std::cout);
   ...
}
...

I tested the mesh data/inline-tet.mesh  and monitored the behavior of kappa_minand kappa_max where you can see that kappa_max is increasing dramatically during the iterations (c.f. below).

I tested also a second mesh which i created with NETGEN (mesh.zip), a big cube with one smaller cube cut out in a corner. Here, the value of kappa_max increases even more than before (c.f. below)

Best regards,
Andreas

Hi Andreas,
Your observation is correct - when using local refinement on tet meshes the algorithm used in MFEM does not guarantee preservation of shape regularity.
The reason for this behavior lies in an implementation choice that simplifies the implementation but has this drawback.
Fixing this issue will require some changes in the code that may not be too hard to make. If you are interested in working on this, I'll be happy to help with figuring out a simple way to fix this.
Alternatively, you may want to try the new PUMI (https://scorec.rpi.edu/pumi) support in MFEM: see e.g. http://mfem.github.io/doxygen/html/pumi_8hpp.html.

Also, I forgot to mention,  you can take a look at the PUMI examples in examples/pumi.

Hi Veselin,
thank you for the clarification.
For now, I will try to use PUMI, but I can try to fix this issue at some later point as I want to get familiar with the structure behind the MFEM mesh anyways.
Best regards,
Andreas

Hi Andreas,
I can suggest the following approach for fixing the issue:
I think the simplest way to fix the refinement algorithm for tetrahedral meshes is to replace the DSTable here
https://github.com/mfem/mfem/blob/f950613551edb07f1a075b091062e8d0a3e9d388/mesh/mesh.cpp#L5900-L5902
with a HashTable<Hashed2> object. This will require changes in all places where the DSTable object, v_to_v, is used. This replacement will allow you to insert new pairs of vertices (i.e. new edges) into the HashTable<Hashed2> which is not possible with the DSTable class when one of the vertices is a newly created vertex (middle of one of the bisected edges). When using a HashTable<Hashed2>, there is no need to initialize it with all edges in the starting mesh - only edges that are being refined (bisected) need to be added dynamically. The index of the newly inserted edge can then be used (after adding to it the number of vertices in the starting mesh) as the index for the new vertex in the middle of the bisected edge. With this approach, I think, there is no need for the middle array allocated and initialized here
https://github.com/mfem/mfem/blob/f950613551edb07f1a075b091062e8d0a3e9d388/mesh/mesh.cpp#L5906-L5911
Does this make sense?
Do you have another idea about how to fix the issue?
Thanks,
Veselin

Hi Veselin,
thank you for your help I will try to implement this accordingly.

Do you have another idea about how to fix the issue?

I have read through the other thread somehow addressing this issue, #259 and also the paper by Arnold et al. referenced therein. If I understood correctly, MFEM's modification only consists of un-marking the Pf type tets and performing at most 3 levels of bisection per tet. This is because DSTable is not able to insert newly created vertices/edges. So changing the object to something similar of std::map<std::pair,int> would have also been my first approach.
Best regards,
Andreas


Add spanish README

Linked to #3.
I finished converting the Spanish translations of the README.

If you take a look at my German README you can see the badge at the top, which leads you back to the root, maybe you should include it as well. If you need help, I'm there.

Ok i read all of your comments guys and i fixed the errors, hope i did well this time. I'm sorry it's my first contribution to open source

@frxncismor @santisoler One more question for all of us:
Do we wanna add the original name of the licenses in the translated READMEs or do you think that it's unnecessary?

I think it's unnecessary because that information is on the main language

Ok, then I will rework the German translation and yours is perfect!

I think it's done, please review it and thank you for give me the opportunity to contribute

Thanks a lot of tackling this @frxncismor!
I'll merge it right away.
I've just seen that you open this PR from the master branch of your fork.
As I told @cyb3rko on #2, your master will diverge from mine after I merge this. The easier way to solve it is to just delete your fork and refork it again if you want. But they way to prevent this is to create a branch where all your new commits will leave and then open the PR from that branch.
For example, @cyb3rko opened #5 from them spanish branch.
The good notice is that it's hard to break things in git and GitHub that aren't easily solved, so no big deal.
Thanks again for the contribution!


Queue using Two Stacks

Solution is missing for Java.
Please assign this to me.

Hey, pls assign me this for cpp

@Aarushi11H  cpp is already done.

If python's not done, give it to me for this language

Oh, it's only missing for Java, cool!


[Angular] Storybook doesn't work with typescript 2.6

angular works fine with 2.6 but Storybook show some errors
    static/manager.bundle.js    2.81 MB       0  [emitted]  [big]  manager
    static/preview.bundle.js    3.82 MB       1  [emitted]  [big]  preview
static/manager.bundle.js.map    3.43 MB       0  [emitted]         manager
static/preview.bundle.js.map    4.46 MB       1  [emitted]         preview
                  index.html    1.21 kB          [emitted]
                 iframe.html  592 bytes          [emitted]
 [337]<EMAIL_ADDRESS>74 bytes {0} {1} [built]
 [561] multi ./.storybook/addons.js<EMAIL_ADDRESS><EMAIL_ADDRESS>52 bytes {0} [built]
 [562] ./.storybook/addons.js 150 bytes {0} [built]
 [563]<EMAIL_ADDRESS>30 bytes {0} [built]
 [564]<EMAIL_ADDRESS>30 bytes {0} [built]
 [565]<EMAIL_ADDRESS>31 bytes {0} [built]
 [567]<EMAIL_ADDRESS>423 bytes {0} [built]
 [793]<EMAIL_ADDRESS>3.31 kB {0} [built]
 [798] multi<EMAIL_ADDRESS><EMAIL_ADDRESS>(webpack)-hot-middleware/client.js?reload=true ./.storybook/config.js 64 bytes {1} [built]
 [799]<EMAIL_ADDRESS>107 bytes {1} [built]
 [800] (webpack)-hot-middleware/client.js?reload=true 7.35 kB {1} [built]
 [804] ./node_modules/strip-ansi/index.js 161 bytes {1} [built]
 [806] (webpack)-hot-middleware/client-overlay.js 2.21 kB {1} [built]
 [812] ./.storybook/config.js 427 bytes {1} [built]
 [878] ./stories .stories.ts$ 183 bytes {1} [built]
    + 871 hidden modules

ERROR in<EMAIL_ADDRESS>Module build failed: Error: Typescript emitted no output for<EMAIL_ADDRESS>You should not need to recompile .ts files in node_modules.
Please contact the package author to advise them to use --declaration --outDir.
More https://github.com/Microsoft/TypeScript/issues/12358
    at successLoader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:47:15)
    at Object.loader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:29:12)
<EMAIL_ADDRESS>10:18-40
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS> @ ./.storybook/config.js
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>(webpack)-hot-middleware/client.js?reload=true ./.storybook/config.js

ERROR in<EMAIL_ADDRESS>Module build failed: Error: Typescript emitted no output for<EMAIL_ADDRESS>You should not need to recompile .ts files in node_modules.
Please contact the package author to advise them to use --declaration --outDir.
More https://github.com/Microsoft/TypeScript/issues/12358
    at successLoader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:47:15)
    at Object.loader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:29:12)
<EMAIL_ADDRESS>7:22-59
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS> @ ./.storybook/config.js
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>(webpack)-hot-middleware/client.js?reload=true ./.storybook/config.js

ERROR in<EMAIL_ADDRESS>Module build failed: Error: Typescript emitted no output for<EMAIL_ADDRESS>You should not need to recompile .ts files in node_modules.
Please contact the package author to advise them to use --declaration --outDir.
More https://github.com/Microsoft/TypeScript/issues/12358
    at successLoader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:47:15)
    at Object.loader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:29:12)
<EMAIL_ADDRESS>8:24-63
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS> @ ./.storybook/config.js
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>(webpack)-hot-middleware/client.js?reload=true ./.storybook/config.js

ERROR in<EMAIL_ADDRESS>Module build failed: Error: Typescript emitted no output for<EMAIL_ADDRESS>You should not need to recompile .ts files in node_modules.
Please contact the package author to advise them to use --declaration --outDir.
More https://github.com/Microsoft/TypeScript/issues/12358
    at successLoader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:47:15)
    at Object.loader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:29:12)
<EMAIL_ADDRESS>9:29-73
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS> @ ./.storybook/config.js
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>(webpack)-hot-middleware/client.js?reload=true ./.storybook/config.js

ERROR in<EMAIL_ADDRESS>Module build failed: Error: Typescript emitted no output for<EMAIL_ADDRESS>You should not need to recompile .ts files in node_modules.
Please contact the package author to advise them to use --declaration --outDir.
More https://github.com/Microsoft/TypeScript/issues/12358
    at successLoader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:47:15)
    at Object.loader (/home/user/projects/tests/sb/node_modules/ts-loader/dist/index.js:29:12)
<EMAIL_ADDRESS>11:14-32
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS> @ ./.storybook/config.js
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>(webpack)-hot-middleware/client.js?reload=true ./.storybook/config.js
Child html-webpack-plugin for "index.html":
         Asset    Size  Chunks  Chunk Names
    index.html  569 kB       0
       [0]<EMAIL_ADDRESS>1.69 kB {0} [built]
       [1] ./node_modules/lodash/lodash.js 540 kB {0} [built]
       [2] (webpack)/buildin/global.js 488 bytes {0} [built]
       [3] (webpack)/buildin/module.js 495 bytes {0} [built]
Child html-webpack-plugin for "iframe.html":
          Asset    Size  Chunks  Chunk Names
    iframe.html  568 kB       0
       [0]<EMAIL_ADDRESS>974 bytes {0} [built]
       [1] ./node_modules/lodash/lodash.js 540 kB {0} [built]
       [2] (webpack)/buildin/global.js 488 bytes {0} [built]
       [3] (webpack)/buildin/module.js 495 bytes {0} [built]

Steps to reproduce
ng new sb --skip-install
change typescript version to 2.6.1 in package.json
getstorybook
npm run storybook

storybook/angular ^3.4.0-alpha.1

@michaelgeorgeattard, with https://github.com/storybooks/storybook/pull/2846 these errors should be gone. This one just got merged and will probably be included in this week's alpha release

I have the same problem @alterx . Did you already solve the problem ? Thanks !

@alexandru-tomescu , as I mentioned in the comment, this one will probably be included in this week's alpha release.

Also, I'm curious, @michaelgeorgeattard, which are these "very specific circumstances" in which Angular is complaining if TS version is under 2.7.
As far as I know, TS 2.7 was released just yesterday and it seems pretty weird that Angular (that just released support for 2.6 ) would complain about the TS version being < 2.7
Are you guys using 6.0.0 beta or something like that? 🤔

I switched to<EMAIL_ADDRESS>(latest 2.5.x version) and now there are no more errors.

@alterx
Issue was emerging when trying to do an AOT build with a function being passed as a decorator parameter, something like below:
@foo(() => 5)
bar() {
}

Technical details: https://github.com/Microsoft/TypeScript/issues/17384

@alexandru-tomescu, well, the alpha hasn't been released yet and this issue was specific to TS 2.6, which versions of TS, Angular and Storybook you had before?
@michaelgeorgeattard I see, yeah. Hopefully now that we're compiling the .ts files this issue will go away and you'll be able to use TS 2.7
I'll keep you guys posted on this alpha so you can test :)

@alterx I just started a fresh Angular project. I didn't use TS before because i was using ReactJS.

Alpha 7 is out and we're now distributing compiled ts files :)
Please test and let us know how it goes.

@alterx https://github.com/storybooks/storybook/releases/tag/v3.4.0-alpha.7 worked fine with Typescript 2.7. Thanks :-)

Perfect @michaelgeorgeattard 😄
@user753 , is this also working for you?

@alterx it seems to work fine

still getting same errors with 2.7, 2.8 TS versions


Unable to download the RSS due to sslv3 alert handshake failure

I use Flexget and Transmission on Mac.
Yesterday everything was OK. But today I get the following error after running Flexget:
2015-12-23 23:35 CRITICAL plugin        Tommy
Unable to download the RSS for task Tommy
(https://hdchina.club/torrentrss.php?...): [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE]
sslv3 alert handshake failure (_ssl.c:590)

So maybe it is caused by SSL3 but I can not solve this.

First thing to try with any ssl issues is to upgrade python to >= 2.7.9, and/or pip install requests[security] (in your flexget virtualenv, if you are using a virtualenv.)

Thanks @gazpachoking for providing the solution.
I get no error after running pip install requests --upgrade with requests upgraded to 2.9.1 from 2.9.0.


[HOLD deploy #25618] App shows an unread count of 1 while no unreads appear in LHN

@fedirjh Here is the relevant Slack conversation.
It seems like the logic in this PR filters what is shown in the LHN as unread/read. However, I have noticed that a room that I have muted might have a new message, causing my unread count to go to 1, but this message does not show up in the LHN.
However, I see the unread message in Expensify.com:

cc @joelbettner @thesahindia @luacmartins @Beamanator as you were reviewers of the potentially offending PR.
and cc @fedirjh for conversation in Slack.

Yeah i think this will be solved once this is live. Perhaps we can revisit this issue once my PR is live. With my changes even if you muted a chat it will show up in your LHN so this way you should be able to see those unread muted chats.

Thanks for confirming @chiragsalian! Added a hold to this issue.

on hold

still on hold

Yes, we can remove the hold. Is this issue still reproducible?

@shawnborton @chiragsalian can you confirm if this is still reproducible, or list the repro steps so I can test. thanks!

Hmm well now what's happening is that I have the #announce room for the Lounge Workspace muted, but I still get unreads shown in my LHN for that room. Is that intended?

Curious for @chiragsalian's thoughts on that one.

Hmm well now what's happening is that I have the #announce room for the Lounge Workspace muted, but I still get unreads shown in my LHN for that room. Is that intended?

@shawnborton so you don't get notifications for it but the LHN still shows something as unread?

Maybe we need to update the logic in isUnread to return false if the report is muted?

Just chatted with Jason and apparently this is intended. According to E.cash: Default Rooms & Room Notifications  design doc, muted chats should count towards the unread count:
Chat room is bolded as “unread” in LHN, and the chat room moves in the LHN in-line with the existing lastMessage sorting logic in place for DMs

So I think there's nothing to do here since this is the expected behavior. I'm gonna close the issue. Please reopen if I missed something!


Use strings instead of numeric error codes (to align with other firebase SDKs)

Hey there,
I'm using firestore from firebase-admin in my cloud-functions and I noticed that this package uses numeric error codes instead of the string format used in other SDKs (e.g. in the firebase-js-sdk https://github.com/firebase/firebase-js-sdk/blob/master/packages/firestore/src/util/error.ts#L27).
Is there a way to get the mapping from the numeric code to the string format ?
This would allow better integration with other firebase sdks. For example, this would allows to easily return firebase errors as HttpsErrorfrom the firebase-functions package:
  try {
    // add vote to firestore
    await PostService.createVote(postId, context.auth.uid, vote);
  } catch (error) {
    console.log(error);
    throw new functions.https.HttpsError(error.code, error.message);
  }

It would just have to switch from the current
{
  code: number,
  details: string
}

to
{
  code: 'ok' | 'cancelled' | 'unknown' | 'invalid-argument' | 'deadline-exceeded' | 'not-found' | 'already-exists' | 'permission-denied' | 'resource-exhausted' | 'failed-precondition' | 'aborted' | 'out-of-range' | 'unimplemented' | 'internal' | 'unavailable' | 'data-loss' | 'unauthenticated',
  message: string
}

note: the details field is renamed to message to align with other firebase SDKs.
I've considered doing the mapping myself but I think this would be a great addition to the SDK itself.
What do you guys think ?
Happy to help if needed :)

@theochampion Thanks for chiming in!
Unfortunately, we are mostly a GCloud Server SDKs that tries to do the right thing for Firebase users. Our error codes are directly returned from the libraries that drive all GCloud SDKs, which use the error codes throughout. To maintain compatibility with the GCloud ecosystem, we will likely continue to return their error codes.
We do provide a mapping for what these errors mean in our type file: https://github.com/googleapis/nodejs-firestore/blob/master/types/firestore.d.ts#L1559

Thanks for your reply @schmidt-sebastian
I digged a bit more. It seems that the GrpcStatus enum you are referencing is not exported in firebase-admin. I therefore had to copy it and make convertion util function:
(if you see anything improvable in that solution, I'm all ears 😉 )
/**
 * Status codes returned by Firestore's gRPC calls.
 * from: https://github.com/googleapis/nodejs-firestore/blob/master/types/firestore.d.ts#L1559
 */
enum GrpcStatus {
  OK = 0,
  CANCELLED = 1,
  UNKNOWN = 2,
  INVALID_ARGUMENT = 3,
  DEADLINE_EXCEEDED = 4,
  NOT_FOUND = 5,
  ALREADY_EXISTS = 6,
  PERMISSION_DENIED = 7,
  RESOURCE_EXHAUSTED = 8,
  FAILED_PRECONDITION = 9,
  ABORTED = 10,
  OUT_OF_RANGE = 11,
  UNIMPLEMENTED = 12,
  INTERNAL = 13,
  UNAVAILABLE = 14,
  DATA_LOSS = 15,
  UNAUTHENTICATED = 16,
}

const GrpcStatusToStringMap: { [key in GrpcStatus]: string } = {
  [GrpcStatus.OK]: 'ok',
  [GrpcStatus.CANCELLED]: 'cancelled',
  [GrpcStatus.UNKNOWN]: 'unknown',
  [GrpcStatus.INVALID_ARGUMENT]: 'invalid-argument',
  [GrpcStatus.DEADLINE_EXCEEDED]: 'deadline-exceeded',
  [GrpcStatus.NOT_FOUND]: 'not-found',
  [GrpcStatus.ALREADY_EXISTS]: 'already-exists',
  [GrpcStatus.PERMISSION_DENIED]: 'permission-denied',
  [GrpcStatus.RESOURCE_EXHAUSTED]: 'resource-exhausted',
  [GrpcStatus.FAILED_PRECONDITION]: 'failed-precondition',
  [GrpcStatus.ABORTED]: 'aborted',
  [GrpcStatus.OUT_OF_RANGE]: 'out-of-range',
  [GrpcStatus.UNIMPLEMENTED]: 'unimplemented',
  [GrpcStatus.INTERNAL]: 'internal',
  [GrpcStatus.UNAVAILABLE]: 'unavailable',
  [GrpcStatus.DATA_LOSS]: 'data-loss',
  [GrpcStatus.UNAUTHENTICATED]: 'unauthenticated',
};

export const grpcErrorCodeToString = (code: number) => {
  try {
    return GrpcStatusToStringMap[code as GrpcStatus];
  } catch (err) {
    return GrpcStatusToStringMap[GrpcStatus.INTERNAL];
  }
};

@hiranya911 Can we add this enum to the Firebase Admin types?


Add uniq, nub and sorted to the Prelude

I had to add containers to the dependencies, but I guess that is not a problem anyway.

uniq: basically the same as the uniq commandline tool, discards adjacent duplicates
nub: does a global removal of duplicates, at the cost of having a Set in memory.  We could improve on this by using a hash, but I think adding that would be a lot more changes, although it is better ;)
sorted: This is not a function from and to Shell, because we have to run it to the end and then do the sorting.  I kept it the same as the commandline sort, so duplicates are not removed

The whole IO + IORef thing feels a little dirty though :D

Consider adding By variants.

Added the -By variants and removed the IORefs ;)

Added the -By

I think what you added are -On variants (compare sortBy and sortOn from base)

Yeah good catch.  Somehow I like the on variants better.  Maybe just rename it to -On?

Admittedly, I need sortOn more often than sortBy. But the -By variant is more general. Why not both?

Okay I added both -On and -By.  The only variant that is not present is nubBy, because here we need the Ord instance for the Set, so we only have nubOn.
Is the distinction and naming of nub vs uniq okay?  I am unsure currently...

I think the uniq and nub naming convention is good
If nobody has any other objections I'll merge this tomorrow

I object! Lightly! To sorted. Why sorted and not sort? We already clash with nub in this patch.
Also, it doesn't really do much, but I get that shell scripting should be nice and terse. Sort of at odds with my preference for a minimal API.

I'm also okay with sort, we can change that.
And yeah I was also hesitant to add it, but it mirrors the command line
utility and I guess it is nicer to provide it for less experienced
turtlers. Although I don't have a strong opinion about that, I wouldn't
mind removing it again
On Nov 10, 2017 02:48, "Mitchell Rosen"<EMAIL_ADDRESS>wrote:

I object! Lightly! To sorted. Why sorted and not sort? We already clash
with nub in this patch.
Also, it doesn't really do much, but I get that shell scripting should
be nice and terse. Sort of at odds with my preference for a minimal API.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Gabriel439/Haskell-Turtle-Library/pull/261#issuecomment-343350500,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAkGz_sGdrMmyVLI0CsNNE6goc4pMl1pks5s06t5gaJpZM4QYc0z
.

Okay renamed to sort, I agree to what @mitchellwrosen says ;)

I will push a new release to Hackage if nobody objects because I need to increase the upper bound on unix-compat for Stackage anyway


Use JavaScript to add hyphenation and ellipse

This is applied on the client side, because we want the original HTML on mobile.

[Current coverage][cc-pull] is 82.24%

Merging [#269][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master       #269   diff @@
==========================================
  Files            56         56
  Lines          1807       1807
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1486       1486
  Misses          321        321
  Partials          0          0

Powered by Codecov. Last updated by [79f2ace...ca4c05f][cc-compare]
[cc-base-branch]: https://codecov.io/gh/pycontw/pycontw2016/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/pycontw/pycontw2016/compare/79f2aceadc8142c410c7baeef5d882484f8af030...ca4c05ff7349b76e5486f78723c21dabf16bb368
[cc-pull]: https://codecov.io/gh/pycontw/pycontw2016/pull/269?src=pr

@flywindy :shipit:


Not all heapster REST endpoints GETable

The docs say that

api/v1/model/nodes/: Returns a list of all available nodes, along with their latest CPU and Memory Usage values.

Yet
/ # curl localhost:8082/api/v1/model
404: Page Not Found/
/ # curl localhost:8082/api/v1/model/
404: Page Not Found/

Though these work for example:
/ # curl localhost:8082/api/v1/model/nodes
[
  "ip-10-2-74-86.us-west-2.compute.internal",
  "ip-10-2-113-74.us-west-2.compute.internal"
/ # curl localhost:8082/api/v1/model/metrics
[
  "memory/request",
  "memory/limit",
  "cpu/usage_rate",
  "memory/usage",
  "cpu/request",
  "cpu/limit"
]

Docs should be fixed now.


Add integration testing coverage for Problems API

@bot-gradle test and merge

I've triggered a build for you. Click here to see all failures if there's any.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

I've triggered a build for you. Click here to see all failures if there's any.


L2-432: Disburse Neuron

Motivation
Add method to disburse neuron.
Changes

Add "disburse" to Governance Service.
New accounts utils file with verifyCheckSum util.
New Error "InvalidAccountIDError"
Move around some tests. There were many tests inside wrong "describe".

Tests

New test for new method on Governance Service.
New test for new accounts utils.

@bitdivine @peterpeterparker please review


Iteration Plan for April 2019

April 2019 Plan
Last month we landed the majority of our major workload, but are finishing up one carry over user request. A major release date for us always falls around the time of our Build conference early May so we'll be hunkering down this month and focusing on hitting our preview release goal for the new Identity and Storage service along with the initial version of the HockeyApp migration experience.
We recently updated the roadmap to include even more details on the future. You'll start seeing more public specifications from our team around highly requested support such as the Windows spec recently opened up by @winnieli1208. We encourage you to participate and share your experiences so we can build the best solutions possible.
We've recognized a big demand for improvements to our Build service and are committed to addressing some of these needs. Along with the currently open spec for cloning branch configurations you'll see some other plans for improvements trickle out over the coming months.
Services
Build

[ ] Support for building apps with Xcode 10.2 on macOS Mojave. All builds using Xcode 9.4.1 or above will begin building on macOS Mojave

Data

[ ] Configure new Cosmos DB database in App Center [#270]
[ ] Connect existing Cosmos DB database in App Center [#271]
[ ] View Utilization Metrics [#272]
[ ] Create the "Getting Started" page for the Data service [#273]

Diagnostics

[ ] Filter crash and error groups by build number [#133]
[ ] Search for handled errors [#269]

Distribution

[ ] Disable in-app update when in guided access mode [#46] (@florianbuerger)

General

[ ] Add support to indicate the environment or release type of an app [#120]

Identity

[ ] Create a new AD B2C directory in App Center [#113]
[ ] Manage AD B2C custom policies [#246]
[ ] View and search the list of users who have authenticated [#247]
[ ] Create the "Getting Started" page for Identity [#248]

Push

[ ] Publish Push to User API [#256]
[ [ Publish Push to User UI [#257]

Could you add support for xamarin Android 9.2 to this interation plan?
https://github.com/Microsoft/appcenter/issues/187

@toomasz definitely on our plans for this month. Adding it to the iteration plan

So more support for UWP, right?

Is there any update on the Apple ID issue? I can't use 2FA when connecting my company Apple ID. The 2FA code I get is always wrong and each time I put in the 'wrong' one I get another one that also doesn't work

Is there any update on the Apple ID issue? I can't use 2FA when connecting my company Apple ID. The 2FA code I get is always wrong and each time I put in the 'wrong' one I get another one that also doesn't work

@bernardoflynn Be sure to note the difference between the 2FA and the app-specific key. I'd start by disconnecting your apple account from your App Center account settings -> Developer accounts tab.

Could you elaborate on what Enterprise AAD support means?  We currently are using AAD for Azure Devops for some of our enterprise's apps.  We are transitioning additional off of TFS and are looking at some AppCenter capabilities maybe in Q3.


Taking a screenshot of an AppiumWebElement Returns 500

I'm opening Word for UI testing of a new task item:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("app", Path.Combine(programFiles, @"Microsoft Office\root\Office16\WINWORD.EXE"));
capabilities.SetCapability("appArguments", testFile);
capabilities.SetCapability("appWorkingDir", Path.Combine(homedir, "Desktop"));

And setting up a new driver to get past the splash screen issue.
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", "Root");
session = new WindowsDriver<WindowsElement>(hostUri, appCapabilities);
word = session.FindElementByName(String.Format("{0} - Word", testFile));

I'm able to get screenshots off of session, but I get a 500 error when getting a screenshot off of word.
==========================================
GET /session/11C9209C-E54E-4B70-A403-6551435E86F6/screenshot/42.852064 HTTP/1.1
Accept: application/json, image/png
Host: <IP_ADDRESS>:4723

HTTP/1.1 500 Internal Error

It seems like the URI getting called is incorrect, per the documentation.
Note I'm using WinAppDriver 1.0-RC. Windows 10 v1703 b15064.540 and VS2017. Appium.WebDriver v<IP_ADDRESS>.

Hi @pyee-li,
Thank you for bringing it up. It is a valid issue and I have a fix that will be included in the next release. This will be pushed out very soon. For the time being, you can always get a screenshot of the Microsoft Word session (session that points to the  Word application) the same way that you do for the Desktop session you showed above.

Thanks @timotiusmargo for the quick turnaround.

This should be addressed by our RC2 release.
Thanks for the patience.


Add ping pong game

🍅 Name*: The name of the author
🍄 Bio: introduce about you
♥ This is my first python project , a ping pong game

Hi @submissivecoder69, I am very excited about your cool game.
I wish you be a great developer in the nearest future!!
Let's share this project with your friends to earn T-shirts!
Thanks.


fix(fonts): Fix font scaling (points to pixels conversion)

Fixes font scaling from #387
Fonts are actually in points, not pixels. So we need to convert them.

What kind of change does this PR introduce?

Fix

Did this PR introduce a breaking change?

No

Awesome find btw. I wouldn't have caught this. This looks good to me.

Merged!


@conda-forge-admin, please add bot automerge

@conda-forge-admin add bot automerge

@conda-forge-admin, please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/magpylib-feedstock#11.


zf1-future: SameSite Cookie Modification

Zend Framework 1 reaches its End of Life (EOL) and is no longer maintained.
No Pull Requests will be accepted.
https://framework.zend.com/blog/2016-06-28-zf1-eol.html

This can be closed

in favor of https://github.com/cloudvox/zf1-future/pull/7


[4.2] ASTContext: Recompute the insert position in getSpecializedConformance after the SpecializedProtocolConformance constructor

The constructor can modify the SpecializedConformances FoldingSet so that the
insertPos is no longer valid. It calls computeConditionalRequirements which
calls Type::subst which recursively can call getSpecializedConformance again.
Therefore, we need to recompute the insertPos after calling the
constructor.
This bug manifest itself either as memory error with libgmalloc or as
spurious errors later on.

Explanation: Memory errors causing spurious failure later in the
compiler on our CI tests

Scope: Memory errors are bad. This bug dates back to when conditional
conformance were added sometime during 2017.

Risk: Low. A call to recompute the insertion point (a map lookup) is
added.

*Testing: Existing Swift CI test caught this
rdar://42082352

@swift-ci Please test

@swift-ci Please nominate


chore(detector-contrainer): remove orphan codecov script

Which problem is this PR solving?

we've switched to the codecov action, this script is unused and the dependency has also been removed already

failing tests will be fixed by #2446


NTVS v1.3 Alpha

:runner: in progress and preliminary planning notes for next release.

This release will ship for:

VS 2015 (Dev14)
VS "15" Preview (Dev15)

Emoji legend

:hotsprings: red-hots (like the candy!): should happen this week, otherwise may impede future efforts
:busts_in_silhouette: external dependency: requires coordination
:no_entry_sign: blocked
:crown: nice to have

"Big Rocks"
Product
Major platform improvements (VS "15")

[x] #821 Lightweight Visual Studio Installer (:busts_in_silhouette: VS Platform - pm: tims, dev: huyn)

[x] :hotsprings: #954 Create modern NTVS extension
[x] :hotsprings: #955 Update build / signing scripts to build for lightweight installer
[x] :hotsprings: #956 Appear in VS "15" Preview Installer Feed
[x] :hotsprings: #957 Verify chaining in partner dependencies (Salsa, Web Tools) with Lightweight VS installer

[ ] :crown: Improve File > Open Folder IntelliSense experience  (:busts_in_silhouette: VS Platform - wibu)

[ ] Take ownership of debug adapter code
[ ] #1112 Investigate open Qs

Improved ES6 / IntelliSense experiences

[ ] #1090 Enable ES6 IntelliSense in Node.js Interactive Window

Improved build and deployment experiences

[ ] :crown: Investigate hooking up task runner with existing project system

Improved Stability and Performance

[ ] Investigate and fix miscellaneous stability issues

User Feedback and engagement

[x] #965 Agree upon and add any additional telemetry points

(Mostly) Code Happiness

[x] CTI runs
[ ] driving dev build usage :bulb:

Targets (subject to change)

7/22: "Big Rocks" complete
7/25-7/29: Stabilization and release activities
TBD: Release

Closing this, as "Alpha" has been released with Visual Studio "15" Preview 4 as part of the Node.js workload. The lightweight install work was relatively involved and we had some other competing priorities, so we didn't quite finish up with everything, but more to come in our 1.3 Beta plan


tailscale.com outage

tailscale.com's webpage is hosted on fly.io, which is currently having an outage: https://status.flyio.net/
Other parts of Tailscale are operational.

The website is back up.

The website is back up after a 4 min outage.


make TextArea.jsx's Formik error handling consistent with Input.jsx

changed 'errors' prop to 'error'
only apply 'error' class to  if 'touched' also true

@keepforever @cwardzala given that error is a string, merging PR as-is

@keepforever @cwardzala given that error is a string, merging PR as-is


STMPE610 problem

im using IAR project , based ili9341 gfx and i added the SMPTE610, but i cant get the chip to response. i want the basic test of getting the ID (send 0x00 response 0x0811)or VER(0x02 response 0x01), but no luck. did any one had this problem?

we've never used IAR but check you're trying both MODE1 and MODE0, stmpe can come up in either mode depending on pin states (check datasheet for exact, its been many years since we wrote the code :)

ok , i can read it registers im writing to , also ID and VER
but no values from XY registers. i followed to example initialization, also the touch detection bit is not changing. any ideas?


Telegram: allow for chat_id to be stored in file same way as bot_token

What did you do?
I have an Ansible playbook for deploying/updating Alertmanager config on multiple servers with different notifiers.
I want to commit the Alertmanager config as a file, but it has some credentials that cannot be committed into a repository.
For Telegram, now it allows setting bot_token via file and specifying its path, but it doesn't allow storing chat_id in file as well, and it can also be sensitive (and for sure it's not something one wants to store in a repository, especially if it's public).
What did you expect to see?
Have a way to store chat_id for Telegram in a file, For example, having chat_id_file param that works similar to bot_token_file, which will be mutually exclusive with chat_id and if specified, it'll fetch the chat_id from this file instead of from config directly.
What did you see instead? Under which circumstances?
Not being able to set chat_id via file from config.
Environment

System information:
insert output of uname -srm here

Alertmanager version:
insert output of alertmanager --version here (repeat for each alertmanager
version in your cluster, if relevant to the issue)

Prometheus version:
insert output of prometheus --version here (repeat for each prometheus
version in your cluster, if relevant to the issue)

Alertmanager configuration file:

insert configuration here

Prometheus configuration file:

insert configuration here (if relevant to the issue)

Logs:

insert Prometheus and Alertmanager logs relevant to the issue here

Hi @freak12techno
I had a similar problem. I solved it by encrypting the chat_id with ansible-vault in the repo. If you choose a strong password it should be no problem to store a secret in the repo.
How encrypted strings with ansible-vault look like in your repo:
telegram_chat_id: !vault |
    $ANSIBLE_VAULT;1.1;AES256
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

To create the ansible-vault string I used:
set +o history

echo -n 'nobody_should_see_this' | ansible-vault encrypt_string
New Vault password:
Confirm New Vault password:

set -o history

I encrypted -111111111 with demo password mysecretpassword:
user@machine:~$ echo -n '-111111111' | ansible-vault encrypt_string
New Vault password:
Confirm New Vault password:
Reading plaintext input from stdin. (ctrl-d to end input, twice if your content does not already have a newline)

Encryption successful
!vault |
          $ANSIBLE_VAULT;1.1;AES256
<PHONE_NUMBER>6234623530343532303531383033303563646133373730373862633836376461313531
<PHONE_NUMBER>383465303830396238343865336138643031380a393933656234356239376638343138
<PHONE_NUMBER>3334336264303266383266343963383130303936323561373566623130393730326232
<PHONE_NUMBER>303065310a646361363833376461396635666233633066336438646138306465306337
          6564


Create a punchbox_data helper

Hi!
Sorry for creating a PR prematurely and without explaining the use of the added code.
The reason for a punchbox_data helper to exist is because Haml, Slim users, (and even Erb users that might be generating the body element with a Rails helper) will find it very easy to add the attributes with this helper.
In my case, I could do
 which is very handy. It's Slim by the way.
I know it's not a critical feature but I figured I'd still submit it in case you also find it useful!
Cheers.

Love it!  If you could please add a blurb to the README, I'll merge it!

I just did! Hope I got the wording right.

Merged!  Thank you for contributing!

No problem!


Fix padding on GOV.UK logo affecting hover and focus states

Address two minor issues with the hover and focus states for the GOV.UK logo (including product name, when present):
1. With product name
When the header includes a product name, the homepage link’s underline (on hover) and the focus state take up an additional 10px on the right hand side, because of the 10px right padding on govuk-header__product-name.

Before
After

This padding is there to ensure there is a gap left between the product name and the menu button. Remove it, and add a 10px margin to govuk-header__link--homepage instead which achieves the same result but without adding an additional 10px to the hover and focus states.
2. Without product name
When the header does not include a product name, the homepage link’s underline (on hover) and the focus state take up an additional 5px on the right hand side, because of a 5px margin on govuk-header__logotype.

Before
After

This margin has been present since the component was added to GOV.UK Frontend, and I believe it’s to ensure there’s a gap between GOV.UK and a product name. Remove this margin when the __logotype element is the last child of its descendent, so that the margin is only included when there is a product name to show.

@hannalaakso I've changed the approach for the second fix, by removing the margin if the __logotype element is the last child – in which case, there is no product name and so there's no need for the margin.
I think that addresses the issue you raised?


[feature] Homebrew tap for omnictl

Problem Description
It would be nice to manage omnictl installations via Homebrew like we can with talosctl. This would simplify installation and upgrades especially for users who rely heavily on cluster templates.
Some of the solutions proposed here might also help with general availability of omnictl for containerized tooling, etc.
Solution
Ideally, the omnictl binaries would be published as a release under https://github.com/siderolabs/omni-client. This would make it trivial to include the binaries in a Homebrew tap a la https://github.com/siderolabs/homebrew-talos.
Currently there are no releases for that repository, and versions newer than 0.11.1 are not tagged.
Alternative Solutions
Looking at the Talos structure, I'm assuming all Omni releases are maintained under a (understandably) closed-source upstream monorepo. Instead of duplicating the omnictl release across repos, a GitHubPrivateRepositoryReleaseDownloadStrategy could be used in a theoretical homebrew-omni tap to fetch the binaries from the private Omni repository. This would require help from the Omni team to set up an access token along with the tap.
Notes
I did notice the omnictl binaries are available without authentication from my personal subdomain at *.omni.siderolabs.io/omnictl. However, I'd prefer to not build integrations around these for the following reasons:

downloading from a particular Omni subdomain is not conducive to sharing
triggering an update upon release of a new version would still be a challenge

I like this idea. We recently are looking at revamping our Talos docs to use Brew.
@Unix4ever Is omnictl open source?
CC @rothgar

Closing per https://github.com/siderolabs/homebrew-tap/pull/60.


Compilation error

Fresh Minimal Centos 7 install....Asterisk 13.38...I think i have installed correctly dependencies...
Download asterisk-tiresias but on make i got
make
gcc -Wall -g -pthread -pipe -g3 -O6 -fPIC -DAST_MODULE="app_tiresias" -DAST_MODULE_SELF_SYM=__app_tiresias -I/usr/include/ -I/usr/local/include/ -c fp_handler.c -o build/fp_handler.o
In file included from /usr/include/aubio/aubio.h:62:0,
from fp_handler.c:18:
/usr/include/aubio/fft.h:31:19: fatal error: fftw3.h: File o directory non esistente
#include <fftw3.h

Hi @simone6868,
Have you installed all of the dependencies?
https://asterisk-tiresias.readthedocs.io/en/latest/installation.html#required-libraries
If so, please install this too.
libfftw3-dev

Have you installed all of the dependencies?  ----> at this point not sure.....Sorry   :-(
Can you post an idiot proof howto for the libs ?
Now after installing libfftw3-dev i go new errors....
gcc -Wall -g -pthread -pipe -g3 -O6 -fPIC -DAST_MODULE="app_tiresias" -DAST_MODULE_SELF_SYM=__app_tiresias -I/usr/include/ -I/usr/local/include/ -c fp_handler.c -o build/fp_handler.o
fp_handler.c: In function ‘create_audio_fingerprints’:
fp_handler.c:590:2: error: unknown type name ‘aubio_mfcc_t’
aubio_mfcc_t* mfcc;
^
fp_handler.c:594:2: error: unknown type name ‘aubio_source_t’
aubio_source_t* aubio_src;
^
fp_handler.c:604:2: warning: implicit declaration of function ‘new_aubio_source’ [-Wimplicit-function-declaration]
aubio_src = new_aubio_source(source, DEF_AUBIO_SAMPLERATE, DEF_AUBIO_HOPSIZE);
^
fp_handler.c:604:12: warning: assignment makes pointer from integer without a cast [enabled by default]
aubio_src = new_aubio_source(source, DEF_AUBIO_SAMPLERATE, DEF_AUBIO_HOPSIZE);
^
fp_handler.c:612:2: warning: implicit declaration of function ‘aubio_source_get_samplerate’ [-Wimplicit-function-declaration]
samplerate = aubio_source_get_samplerate(aubio_src);
^
fp_handler.c:613:2: error: too few arguments to function ‘new_aubio_pvoc’
pv = new_aubio_pvoc(DEF_AUBIO_BUFSIZE, DEF_AUBIO_HOPSIZE);
^
In file included from /usr/include/aubio/aubio.h:63:0,
from fp_handler.c:18:
/usr/include/aubio/phasevoc.h:48:16: note: declared here
aubio_pvoc_t * new_aubio_pvoc (uint_t win_s, uint_t hop_s, uint_t channels);
^
fp_handler.c:614:2: error: too few arguments to function ‘new_cvec’
fftgrain = new_cvec(DEF_AUBIO_BUFSIZE);
^
In file included from /usr/include/aubio/aubio.h:61:0,
from fp_handler.c:18:
/usr/include/aubio/sample.h:138:10: note: declared here
cvec_t * new_cvec(uint_t length, uint_t channels);
^
fp_handler.c:615:2: warning: implicit declaration of function ‘new_aubio_mfcc’ [-Wimplicit-function-declaration]
mfcc = new_aubio_mfcc(DEF_AUBIO_BUFSIZE, DEF_AUBIO_FILTER, DEF_AUBIO_COEFS, samplerate);
^
fp_handler.c:615:7: warning: assignment makes pointer from integer without a cast [enabled by default]
mfcc = new_aubio_mfcc(DEF_AUBIO_BUFSIZE, DEF_AUBIO_FILTER, DEF_AUBIO_COEFS, samplerate);
^
fp_handler.c:616:2: error: too few arguments to function ‘new_fvec’
mfcc_buf = new_fvec(DEF_AUBIO_HOPSIZE);
^
In file included from /usr/include/aubio/aubio.h:61:0,
from fp_handler.c:18:
/usr/include/aubio/sample.h:60:10: note: declared here
fvec_t * new_fvec(uint_t length, uint_t channels);
^
fp_handler.c:617:2: error: too few arguments to function ‘new_fvec’
mfcc_out = new_fvec(DEF_AUBIO_COEFS);
^
In file included from /usr/include/aubio/aubio.h:61:0,
from fp_handler.c:18:
/usr/include/aubio/sample.h:60:10: note: declared here
fvec_t * new_fvec(uint_t length, uint_t channels);
^
fp_handler.c:623:3: warning: implicit declaration of function ‘del_aubio_mfcc’ [-Wimplicit-function-declaration]
del_aubio_mfcc(mfcc);
^
fp_handler.c:626:3: warning: implicit declaration of function ‘del_aubio_source’ [-Wimplicit-function-declaration]
del_aubio_source(aubio_src);
^
fp_handler.c:633:3: warning: implicit declaration of function ‘aubio_source_do’ [-Wimplicit-function-declaration]
aubio_source_do(aubio_src, mfcc_buf, &reads);
^
fp_handler.c:642:3: warning: implicit declaration of function ‘aubio_mfcc_do’ [-Wimplicit-function-declaration]
aubio_mfcc_do(mfcc, fftgrain, mfcc_out);
^
fp_handler.c:651:4: error: incompatible type for argument 1 of ‘fabs’
ast_json_object_set(j_tmp, col_max, ast_json_real_create(10 * log10(fabs(mfcc_out->data[i]))));
^
In file included from /usr/include/features.h:375:0,
from /usr/include/inttypes.h:25,
from /usr/include/asterisk/compat.h:29,
from /usr/include/asterisk.h:27,
from fp_handler.c:10:
/usr/include/bits/mathcalls.h:182:1: note: expected ‘double’ but argument is of type ‘smpl_t *’
__MATHCALLX (fabs,, (Mdouble __x), (const));
^
make: *** [fp_handler.o] Errore 1

You need to install all of these libraries.
libaubio
libm
libcrypto

You can find more details here.
https://asterisk-tiresias.readthedocs.io/en/latest/installation.html#required-libraries

Hi...have read and tried this below...I had difficulties to find correct libs..
Are them correct ?
libaubio -----> aubio-0.3.2-16.el7.nux.x86_64 installed
libm --------> glibc-2.17-324.el7_9.x86_64 installed
libcrypto ----> openssl098e-0.9.8e-29.el7.centos.3.x86_64 installed

Hi...my fault....i have compiled libaubio from binary and everything is ok..
Thanks


Where can I find the MMBench-CN and CCBench data?

Where can I find the MMBench-CN and CCBench data?  The link in readme just jumps to opencompass.

Thank you for your attention. For more information about the release timeline of MMBench-CN and CCBench, please contact<EMAIL_ADDRESS>


kubernetes-helm/monocular#412 Add Values in API

Add keys

Codecov Report

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

@@           Coverage Diff           @@
##           master     #414   +/-   ##
=======================================
  Coverage   84.47%   84.47%
=======================================
  Files          26       26
  Lines        1462     1462
=======================================
  Hits         1235     1235
  Misses        176      176
  Partials       51       51

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 27e3a9e...35a2e8c. Read the comment docs.


Fix v2 evaluate wea 634

we don't need to upgrade the versions of both ape-common and ape-core as we didn't publish 0.2.0 and 0.9.0 - these should be the versions we release when merging dev