feat(markers,paths,geojson,watchOptions): More flexible watch options…

… and more
watch-options has been expanded to include paths and redesigned to handle
more types of watching. markersWatchOptions and geojsonWatchOptions are no
longer supported. Instead, this direcitve now supports the watch-options
attribute, which takes an object that contains the watch options for each
map element type:
watchOptions = {
    markers: <markerWatchOptions>,
    geojson: <geojsonWatchOptions>,
    paths: <pathsWatchOptions>
}

The watch options for these map element types looks like:
{
    type: <watchTypes>,
    individual: {
        type: <watchTypes>
    }
}

<watchTypes> can be one of:
-watch: $scope.$watch with no deep watch on the object
-watchDeep: $scope.$watch with a deep watch on the object
-watchCollection: $scope.$watchCollection on the object
-none: Do not watch the collection
I've removed support for the directive attributes watch-markers and
watch-paths. While these make sense when set to false, it's ambiguous
how they should function when set to true, especially when combined
with watch-options.
There are some other minor fixes in this commit (fixing breaking examples,
and another small bug).
BREAKING CHANGE: markersWatchOptions, geojsonWatchOptions, watch-markers,
and watch-paths are no longer supported. The format of the watch options has
also changed.
Before:
<leaflet defaults='defaults' markers-watch-options='markerWatchOptions'>

After:
<leaflet defaults='defaults' watch-options='watchOptions'>

<script>
    $scope.watchOptions = {
        markers: <watchOptions>
    }
</script>

The same can be said for geojson.
WatchOptions. shouldWatch and isDeep are no longer supported, but the
same behaviour can be achieved:
shouldWatch: true, isDeep: true == type: 'watchDeep'
shouldWatch: true, isDeep: false == type: 'watch'
shouldWatch: false, isDeep: false == type: 'none'
shouldWatch: false, isDeep: true == type: 'none'
Furthermore,
Before:
<leaflet watch-markers='false'>

After:
<leaflet watch-options='watchOptions'>

<script>
$scope.watchOptions = {
    markers: {
        type: 'none',
        individual: {
            type: 'none'
        }
    }
};
</script>

watch-paths='false' can be achieved in a similar manner.

This a continuation of this PR on angular-leaflet-directive https://github.com/tombatossals/angular-leaflet-directive/pull/993

So is this ready? I am not sure where we left off before.

I think so. As long as everyone is okay with the breaking changes. I wouldn't mind a code review, but if that's not necessary we can pull it in.

So this does look ready. It looks pretty good. I am waiting on feedback about the 'none' stuff.

Please resolve conflicts and I'll merge.

@cgat

@nmccready okay, this is ready.
Before I pull this in, I've got a question about the commit message protocol here.  My initial commit message on this branch is styled as per the angular guidelines. Subsequent commits (merging with upstream and changing 'none' to null) are not done in this style, as I expect you are using something like clog to modify the changelog, which will ignore commit messages that don't match the style. If this is the case, please make sure to modify the the changelog such that references to 'none' are null.
Alternatively, I could have amended my commit until it was correct, but this would have required a force push to the PR (bad practice among some), but would result in a much cleaner commit.
Let me know what I should be doing in the future.

Well as long as this feature is commented somewhere with a changelog intiention.. i guess were ok. But the best approach would be to rebase this entire PR into one single atomic commit.
WHY? Well if it turns out to be disastrous (doubtful) it is easy to revert (only one commit). Likewise the traceability is easier as well.

So ie rebase -i upstream/master , but since you already merged this may blow up. An alternative is to rebase from 000f59d or daece73 . One thing I am confused on is I thought you were not going to go the undefined / null approach. Your comment above states otherwise.

Ahh, sorry, miscommunication. When you said "Ok I'm good w that.", I took that as a yes to "I would support replacing 'none' with null (explicitly defined) if so desired.". The way I implemented it does not support undefined, but does support null (where undefined is the absence of something, while null was explicitly set). Whether it's null or 'none' doesn't matter to me, but not supporting undefined is. Let me know your preference.
I'll fix this up into a single commit with a proper commit message. Not sure how github handles force push in these situations, so if it comes down to it I may open another PR (though I will try to avoid this).

I'm fine with either. So if you want it to be null leave it.

leaving it as null and pulling this in.

@cgat you don't have write perms yet. Basically if you keep pushing; you will get it. There are 3 levels, leaflet-contrib-> leaflet-write-> leaflet-admin , contrib people are assignable for tickets and up for write perms.

LGTM

@nmccready Got it. Thanks for merging.


Upgrade Phoenix to 1.5.1

Minor changes for mix release
Upgrade Phoenix to 1.5.1

ping @jasonboukheir


ci: add semantic PR title check

Ensures PR title is a semantic commit message

Isn't this handled in https://github.com/aweris/tools/blob/main/.github/workflows/conventional-pr-title.yaml already?


updating the default health probe behavior

@abshamsft : Thanks for your contribution! The author, @vhorne, has been notified to review your proposed change.

Hi @abshamsft - Just a reminder that Microsoft authors should make updates to content through the private repository so the updates can be staged and validated by the validation rules. See this article for more information. Thanks

#sign-off


Map our work_type metadata field to DataCite's resourceTypeGeneral

DataCite requires us to provide a value for the field resourceTypeGeneral. I need a mapping that translates our work_type to DataCite's.
This needs to be completed before we release the DOI minting UI
Our list is below:
article
audio
book
capstone_project
collection
conference_proceeding
dataset
dissertation
image
journal
map_or_cartographic_material
masters_culminating_experience
masters_thesis
other
part_of_book
poster
presentation
project
report
research_paper
software_or_program_code
thesis
unspecified
video

I took a stab at this a while back. Take a look at this and tell me if if helps:
https://docs.google.com/spreadsheets/d/1wGVdGFIfsJOC-nVHPzYEAdYgfpadSPgRwEQ7xsBOFQo/edit#gid=372862448

Sweet! Looks good

@srerickson We are missing three entries from this list:
["collection", "thesis", "unspecified"] are all valid Work Types that have no corresponding row in the spreadsheet you linked to above

@rschenk, I updated the spreadsheet with those entries.


Add tests

In this branch

I created tests
I added README.md

Hi @uchexm  👋,

Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Highlights

No linter errors 👍
Well written PR description 👍
Good looking readme file 👍

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Simplify F.accuracy test

Simplifies test_accuracy using testing.FunctionTestCase
Refer to #6071

LTGM. Jenkins, test this please.

Jenkins CI test (for commit ecd1ebb0ff07c484952ded04eaaace73902380a6, target branch master) succeeded!

pfnCI, please


Detect System AutofillService usage within WebView

Task/Issue URL: https://app.asana.com/0/488551667048375/1205669280706362/f
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #3643   👈

This comment was auto-generated by Graphite.


Fix missing deploy:prepare step

This problem was introduced in #54

fixes:
[production:hypernode] run cd /data/web/apps/some.store && (echo 1 > .dep/latest_release)
[production:hypernode] bash: line 1: .dep/latest_release: No such file or directory
[production:hypernode]  error  in release.php on line 105:
[production:hypernode] exit code 1 (General error)


Edit categories

Should be possible to edit categories in the question set page. Should be possible to change the category name, description and aggregation.
This is possible via the API, just not yet exposed on the web app.

@tomdohnal as you suggested this functionality is not possible via the API as I had thought. I have raised impactasaurus/server#22 to introduce an edit category mutation.

A new EditCategory mutation is now available which should allow this issue to be completed.


New feature: node graph comparison

I'm developing a library that does annotation processing and generates code using KotlinPoet. While before I had this working by just comparing the raw generated text against that of a golden file, I'm now using kastree to parse both to rule out trivial differences like comments and whitespace.
To improve my ability to spot where the generated and expected code diverge in case the test fails, I made a SyntaxTreeComparer object that traverses two node graphs in tandem and returns the first divergence found between them, if any. I can then pretty-print this in my failure messages.
For example, given this golden file to compare against:
// Package statement and various imports...

class MinAndMax<T: Comparable<T>>(id: String) : ElementaryNode(id) {
    private val `_values`: SinglePortInputBoundary<Iterable<T>> = inputBoundary("values")

    val values: InputPort<Iterable<T>> = `_values`.exposed

    private val `_min`: SinglePortOutputBoundary<T?> = outputBoundary("min")

    val min: OutputPort<T?> = `_min`.exposed

    private val `_max`: SinglePortOutputBoundary<T?> = outputBoundary("max")

    val max: OutputPort<T?> = `_max`.exposed

    override suspend fun executeOnce() {
        val foo = "Bar" // Shouldn't really be in generated code
        coroutineScope {
            val values = async {
                `_values`.inner.yield()
            }
            val output = nodeBody(values.await())
            `_min`.inner.forward(output.min)
            `_max`.inner.forward(output.max)
        }
    }

    private fun nodeBody(values: Iterable<T>): ReturnValue<T> = ReturnValue(values.min(), values.max())
    private class ReturnValue<T>(val min: T?, val max: T?)
}

And a test case that involves this custom kotlintest matcher, where diff passes both node graphs to SyntaxTreeComparer:
fun matchTree(expectedTree: Node) = object : Matcher<Node> {
    override fun test(value: Node): Result {
        val divergence = value diff expectedTree
        val ifShouldMatch = "Trees should match, but diverge:\n${divergence?.prettyPrint()}"
        val ifShouldNotMatch = "Trees should not match, but they do"
        return Result(divergence == null, ifShouldMatch, ifShouldNotMatch)
    }
}

I get this failure message:
Trees should match, but diverge:
EXPECTED
{
    val foo = "Bar"
    coroutineScope {
        val values = async {
            `_values`.inner.yield()
        }
        val output = nodeBody(values.await())
        `_min`.inner.forward(output.min)
        `_max`.inner.forward(output.max)
    }
}
ACTUAL
{
    coroutineScope {
        val values = async {
            `_values`.inner.yield()
        }
        val output = nodeBody(values.await())
        `_min`.inner.forward(output.min)
        `_max`.inner.forward(output.max)
    }
}

Anyway, point is - would you be interested in incorporating something like this into your library? If so, I can open a PR with the code for the syntax tree comparer and add some unit tests later on.

TBH, not particularly wanting to include it here because the conditions on which to diff a set of AST are different for each use case.

It just relies on standard equality comparison between the nodes so it should just suit the very general use case "are these two chunks of code syntactically equivalent?".

you might be able to do this easily by extending Visitor, keeping track of nodes, and run it twice for each AST and throw/stop as soon as the tree stops matching.

I tried something like this first, where I used a visitor to flatten each AST to a list, zipped both lists together and started iterating through it. The problem is that if there is any difference at all between the trees, the very first comparison (where you're comparing the roots of each tree) will fail as the equality logic between them relies on equality comparisons extending all the way through their descendants i.e. there's no way to just check "are these two nodes equal, ignoring their children". I tried iterating through the nodes in reverse order but that didn't work so well either.
The easiest way from a pure logic perspective is to just traverse both ASTs at the same time, although it involves writing a lot of code. It's what I ended up doing though - implemention here.

I am a bit too busy to look at this moment, but I'll try to provide an example that overrides visit, uses a stack, calls super, and pops the stack after done to keep track of diff'd nodes. May need a day or two, but I like the challenge :-)

Here's something I hacked together that shows the idea. The differ:
import kastree.ast.Node
import kastree.ast.Visitor
import kotlin.reflect.KClass

open class NodeDiffer {
    fun diff(expected: Node, actual: Node): List<Diff> {
        val expected = PathVisitor().apply { visit(expected) }
        val actual = PathVisitor().apply { visit(actual) }

        // Find the longest paths that are not the same
        val pathDiffs = expected.children.mapNotNull { (expectedPath, expectedChild) ->
            // If the path isn't even in the actual, not a diff (the diff is one higher).
            val actualChild = actual.children[expectedPath] ?: return@mapNotNull null
            // If the children are the same, not a diff
            if (actualChild == expectedChild) return@mapNotNull null
            // Also, if the children are the same type and there is a child path for it, not a diff
            if (actualChild::class == expectedChild::class) {
                val childPath = ParentPath(actualChild::class, expectedPath.parents + expectedPath)
                if (actual.children.containsKey(childPath) && expected.children.containsKey(childPath))
                    return@mapNotNull null
            }

            // Otherwise, it's a diff
            expectedPath to Diff(
                expectedParents = expectedPath.parents.map { expected.parents[it]!! },
                expected = expectedChild,
                actualParents = expectedPath.parents.map { actual.parents[it]!! },
                actual = actualChild
            )
        }.toMap()

        // Remove all lower paths that have higher path diffs
        return pathDiffs.filterKeys { it.parents.none(pathDiffs::containsKey) }.values.toList()
    }

    class PathVisitor : Visitor() {
        var stack = emptyList<ParentPath>()
        val children = mutableMapOf<ParentPath, Node>()
        val parents = mutableMapOf<ParentPath, Node>()

        override fun visit(v: Node?, parent: Node) {
            // Node must be present
            v ?: return
            // Create unique path
            var path = ParentPath(parent::class, stack)
            while (children.containsKey(path)) path = path.copy(index = path.index + 1)
            // Add this node to the known children
            children[path] = v
            // Add the parent to the known parents
            parents[path] = parent
            // Go deeper
            stack += path
            super.visit(v, parent)
            stack = stack.dropLast(1)
        }
    }

    data class ParentPath(val cls: KClass<*>, val parents: List<ParentPath>, val index: Int = 0)
    data class Diff(
        val expectedParents: List<Node>,
        val expected: Node,
        val actualParents: List<Node>,
        val actual: Node
    )

    companion object : NodeDiffer()
}

A main test:
package kastree.ast.psi.temp

import kastree.ast.Writer
import kastree.ast.psi.Parser

fun main(args: Array<String>) {
    val expectedCode = Parser.parseFile("""// Package statement and various imports...

class MinAndMax<T: Comparable<T>>(id: String) : ElementaryNode(id) {
    private val `_values`: SinglePortInputBoundary<Iterable<T>> = inputBoundary("values")

    val values: InputPort<Iterable<T>> = `_values`.exposed

    private val `_min`: SinglePortOutputBoundary<T?> = outputBoundary("min")

    val min: OutputPort<T?> = `_min`.exposed

    private val `_max`: SinglePortOutputBoundary<T?> = outputBoundary("max")

    val max: OutputPort<T?> = `_max`.exposed

    override suspend fun executeOnce() {
        coroutineScope {
            val values = async {
                `_values`.inner.yield()
            }
            val output = nodeBody(values.await())
            `_min`.inner.forward(output.min)
            `_max`.inner.forward(output.max)
        }
    }

    private fun nodeBody(values: Iterable<T>): ReturnValue<T> = ReturnValue(values.min(), values.max())
    private class ReturnValue<T>(val min: T?, val max: T?)
}""")
    val actualCode = Parser.parseFile("""// Package statement and various imports...

class MinAndMax<T: Comparable<T>>(id: String) : ElementaryNode(id) {
    private val `_values`: SinglePortInputBoundary<Iterable<T>> = inputBoundary("values")

    val values: InputPort<Iterable<T>> = `_values`.exposed

    private val `_min`: SinglePortOutputBoundary<T?> = outputBoundary("min")

    val min: OutputPort<T?> = `_min`.exposed

    private val `_max`: SinglePortOutputBoundary<T?> = outputBoundary("max")

    val max: OutputPort<T?> = `_max`.exposed

    override suspend fun executeOnce() {
        val foo = "Bar" // Shouldn't really be in generated code
        coroutineScope {
            val values = async {
                `_values`.inner.yield()
            }
            val output = nodeBody(values.await())
            `_min`.inner.forward(output.min)
            `_max`.inner.forward(output.max)
        }
    }

    private fun nodeBody(values: Iterable<T>): ReturnValue<T> = ReturnValue(values.min(), values.max())
    private class ReturnValue<T>(val min: T?, val max: T?)
}""")
    val diffs = NodeDiffer.diff(expectedCode, actualCode)
    diffs.forEach {
        println("EXPECTED:\n------\n" + Writer.write(it.expectedParents.last()) + "\n------")
        println("ACTUAL:\n------\n" + Writer.write(it.actualParents.last()) + "\n------")
    }
}

Returns:
EXPECTED:
------
{
    coroutineScope {
        val values = async {
            `_values`.inner.yield()
        }
        val output = nodeBody(values.await())
        `_min`.inner.forward(output.min)
        `_max`.inner.forward(output.max)
    }
}
------
ACTUAL:
------
{
    val foo = "Bar"
    coroutineScope {
        val values = async {
            `_values`.inner.yield()
        }
        val output = nodeBody(values.await())
        `_min`.inner.forward(output.min)
        `_max`.inner.forward(output.max)
    }
}
------

Now, there are little bugs and what not and if I were developing a full solution, I'd change it up and add tests and what not. But in general, the idea of keeping paths of classes and then comparing at the end is reasonable, and future proof when I add more AST classes as more language features get developed.

@TAGC - Note, it may not work on top-level changes and you need to add some test cases. Basically, it just keeps a path of the classes it has traversed and then compares paths at the end.


Copy & Paste Don't function on Android 9

[X] I have read the FAQ.
[X] I have searched in existing issues.

Environment

OS: Windows 11
scrcpy version: 2.3.1
installation method:  Windows release
device model: SM-N950U1
Android version: 9

Describe the bug
CTRL-V Does nothing.
If I use the legacy paste parameter for scrcpy, i get this:
[server] WARN: Could not inject char u+3057

Please do not post screenshots of your terminal, just post the content as text instead.

+1
can‘t input chinese from mac

can‘t input chinese from mac

Use UHID kehboard: https://github.com/Genymobile/scrcpy/blob/master/doc/keyboard.md#physical-keyboard-simulation


[FEATURE] Expose functionality to convert TLA+ expressions to Informal Trace Format

Problem
I would like to convert the counterexamples produced by TLC into Informal Trace Format.
Desired Solution
Solve the more general problem of converting TLA+ expressions to the sub-component of the Informal Trace Format that is used to represent states ('State object'). Do not solve the problem of converting the entire TLC trace to Informal Trace Format.
Problem Domain
Here are examples of the kinds of expressions that should be parseable:
/\ one_indexed_sequential_map = <<42, 42, 42, 42, 42>>
/\ string_indexed_map = [two |-> 42, one |-> 42]
/\ record = [foo |-> 42, bar |-> 43]
/\ tuple = <<1, 2>>
/\ bool = TRUE
/\ set = {1, 2, 3}
/\ list = <<1, "two">>
/\ map = ( 0 :> 42 @@
  1 :> 42 @@
  2 :> 42 @@
  3 :> 42 @@
  4 :> 42 @@
  5 :> 42 @@
  6 :> "forty-two" @@
  8 :> "forty-two" @@
  13 :> "forty-two" )
/\ json_int = 123
/\ string_literal = "hello"
/\ zero_indexed_sequential_map = (0 :> 42 @@ 1 :> 42 @@ 2 :> 42 @@ 3 :> 42 @@ 4 :> 42 @@ 5 :> 42)

/\ actionOutcome = "None"
/\ action = [type |-> "None"]
/\ reserved = (0 :> 0 @@ 1 :> 0 @@ 2 :> 0 @@ 3 :> 0 @@ 4 :> 0)
/\ indices = << [who |-> -1, deposit |-> 0, perm |-> FALSE],
   [who |-> -1, deposit |-> 0, perm |-> FALSE],
   [who |-> -1, deposit |-> 0, perm |-> FALSE],
   [who |-> -1, deposit |-> 0, perm |-> FALSE] >>

Alternatives I have considered

Use SANY to parse TLA+ expressions and walk the SANY XML to convert to Informal Trace Format state
Use tla_python to obtain a walkable TLA+ AST and then conver to Informal Trace Format state

Motivation
I give some motivation for this feature, as @shonfeder rightly suggests:
TLC is sometimes more useful than Apalache because

it is sometimes faster than Apalache
it can generate very long traces

This is probably not the right place to have an extensive discussion on the above points.
Context
https://github.com/informalsystems/mbt-python/issues/9

Closed as not really needed anymore.


Add updates schema in view query ref

In my usage scenario, I need to define a schema for my "_update" table. Therefore, it is also crucial to reference this same schema in the query that constitutes the view. I conducted some tests, and the original behavior remained unchanged.

Thanks, looks great! Will merge.

does this change anything in the usage. I am not able to pass the target schema:


Updated Package.swift to relax requirements

Codecov Report

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

@@           Coverage Diff           @@
##           master      #39   +/-   ##
=======================================
  Coverage   92.27%   92.27%
=======================================
  Files           9        9
  Lines         492      492
=======================================
  Hits          454      454
  Misses         38       38

Flag
Coverage Δ

#KituraWebSocket
92.27% <ø> (ø)
:arrow_up:

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 592bd2a...34700f0. Read the comment docs.


[Move] Replaced syntax highlighting with a more advanced version #201_109

Motivation
A more advanced implementation of Move's syntax highlighting is available and this PR replaces the existing one with the new one by pulling the right extension dependency.
Test Plan
CI/CD Tests were performed

/canary

/land


OSD-13048: Add must gather skeleton script to init must gather commands in hosted cluster and management cluster

/lgtm

/approve


MD031 - Fenced code blocks should be surrounded by blank lines (fixes #63)

If you like this change, I'm part of the way through a similar change to fix #26 for lists and will send a pull request for that as well.
Note: I fixed a few minor typos in RULES.md because I was already editing it.
Note: The exclusion for MD014 doesn't seem like it should be necessary, but maybe I don't understand that rule correctly.

Hi David. This looks awesome, thanks!
You're right, the exclusion for MD014 shouldn't be necessary and I'm guessing there's a bug in MD014 somewhere. I just opened #69 to look at it.


Allow setting custom NodeVisitor on StubbedEnvironment

This is already supported and used by Twig when doing a Parse.
See #249

This also needs an entry in the Config. Will work on that.

Seems perfect, can you also add a mention in the
## Token parser & Twig Extension

sections of the docs/configuration.md file (even if the doc is currently far from being perfect ^^')

@VincentLanglet Done, also fixed the code style failure.

Thanks


is append working right here?

hi,
when i look at line 100 at  https://github.com/DanielSlater/PyGamePlayer/blob/master/examples/deep_q_pong_player.py#L100 i see

current_state = np.append(self._last_state[:, :, 1:], screen_resized_binary, axis=2)

when i use this test code:

import numpy as np

a = np.array([[1,2,3],[4,5,6]])
print a.shape
print a
b = np.stack(tuple(a for _ in range(4)), axis=2)
print b.shape
print b
c = np.array([[7,8,9], [10,11,12]])
print c.shape
print c
d = np.reshape(c, (2,3,1))
print d.shape
e = np.append(b[:,:,1:], d, axis=2)
print e.shape
print e
f = np.array([[13,14,15],[16,17,18]])
g = np.reshape(f, (2,3,1))
h = np.append(b[:,:,1:], g, axis=2)
print h.shape
print h

it prints:

(2, 3)
[[1 2 3]
 [4 5 6]]
(2, 3, 4)
[[[1 1 1 1]
  [2 2 2 2]
  [3 3 3 3]]

 [[4 4 4 4]
  [5 5 5 5]
  [6 6 6 6]]]
(2, 3)
[[ 7  8  9]
 [10 11 12]]
(2, 3, 1)
(2, 3, 4)
[[[ 1  1  1  7]
  [ 2  2  2  8]
  [ 3  3  3  9]]

 [[ 4  4  4 10]
  [ 5  5  5 11]
  [ 6  6  6 12]]]
(2, 3, 4)
[[[ 1  1  1 13]
  [ 2  2  2 14]
  [ 3  3  3 15]]

 [[ 4  4  4 16]
  [ 5  5  5 17]
  [ 6  6  6 18]]]

but should it not be shifted-like inserted, so that the old values (frames) will all get lost after time ? or do i think wrong ?

i am sorry, my code is wrong, this si more correct
import numpy as np

a = np.array([[1,2,3],[4,5,6]])
print a.shape
print a
b = np.stack(tuple(a for _ in range(4)), axis=2)
print b.shape
print b
c = np.array([[7,8,9], [10,11,12]])
print c.shape
print c
d = np.reshape(c, (2,3,1))
print d.shape
e = np.append(b[:,:,1:], d, axis=2)
print e.shape
print e
f = np.array([[13,14,15],[16,17,18]])
g = np.reshape(f, (2,3,1))
h = np.append(e[:,:,1:], g, axis=2)
print h.shape
print h

Hi Flo, Sorry just to check it's OK in it's current form?(I very much hope so)

hi @DanielSlater
sorry for stress. i hope it will also work with my code :)

No problem, glad your finding it useful :) if you do find bugs, very happy for you to tell me so I can fix them.

very useful, thanks alot
i dont think so, but if i find one, i will send issue to you

hi @DanielSlater ,
i just wanna ask, how do you extract the data from self._observations ? you do it on line 152  https://github.com/DanielSlater/PyGamePlayer/blob/master/examples/deep_q_pong_player.py#L152
but when i try to do it the same way like you, i get the error:
TypeError: tuple indices must be integers, not list
i searched alot on web but cannot find anything that helps me, perhaps you could help me
my line of code is here, line 317
https://github.com/flobotics/flobotics_tensorflow_controller/blob/master/nodes/listener.py#L317

Hi @flobotics
So the problem you have here is that in your code the line
OBS_LAST_STATE_INDEX = range(5)
Give you a tuple, contrast that with the line in PyGamePlayer
OBS_LAST_STATE_INDEX, OBS_ACTION_INDEX, OBS_REWARD_INDEX, OBS_CURRENT_STATE_INDEX, OBS_TERMINAL_INDEX = range(5)
In PyGamePlayer because of python unpacking OBS_LAST_STATE_INDEX will be an int. In your version it will be a tuple(the number 1 through 5).
Hope this helps

aaahh, got it, after days :)  thank you


Update (Put) Method Not Working ?

The update is in progress. But the app crashes

@volkankoc this is related to missing Redis connection. I will clarify the error message. Also, I will fix the crash issue. The new version will be released today.  ☺
Thank you very much for the report. ❤

To solve the issue, update the axe-api version to ^1.0.2.


Bug Report - curatorial student with data entry can't see catalog record

Describe the bug
When user mriggs2 is logged in and tries to look at UWYMV:Mamm:2303 (https://arctos.database.museum/guid/UWYMV:Mamm:2303) she gets error messages starting at the transaction window (see screen pics below). When she goes into the edit windows she can see the info for attributes and parts, but she can not see them in the record page window. We've tried both Chrome and FireFox, and she has logged out and in again and it still happening.
When I log in or when I am logged out I can see the catalog record fine.
Is there something we can do to fix this? Melyssa is working on the Ranges project, so she needs to be able to see those attributes.
Screenshots

Desktop (please complete the following information):
Firefox and Chrome

This is an interesting (in a 'pull all my hair out..' sort of way) situation!

the record belongs to UWYMV:Mamm
the accession belongs to UWYMV:Bird
both are RLS-partitioned data
public users have access to both, no problem
@ewommack has access to both, no problem
mriggs2 does not have access to the accession, the transaction-fetching query fails, and then a subsequent query that's expecting an integer (because everything has an accession - unless you're a user from which it doesn't...) fails and explodes

To address the bug (which I'm no longer sure is a bug!), I added a check of the existence (from the user's perspective) of the accession and, if it's not found,...

Loans are not expected to exist, so that won't error - although what it reports may not exactly be accurate (from any other user's perspective) either.
I think I've done the strictly correct and most secure thing I can, but it's also potentially a little weird/misleading in some situations. I could definitely be convinced to do something else (eg run the init query as goduser), which would potentially expose some data (accn status and dates, but I expect that to change a bit over time) to Operators who don't have access to the collection.
Everyone, please feel free to start a discussion here if this needs more thought.

@dustymc - I'm sorry, what was the solution? Just checking, because we will have multiple animals from different accessions under Bird Accessions. And I know Melyssa has been able to access other historic mammals in that accession just fine.


Wrap errors in _error key

Previously, the task helper would rescue errors in the run method and
simply print their hashified version. This caused Bolt to synthesize its own
_error object (simply stating the task failed and its exit code) which
took precedence over the actual underlying cause.
We now properly wrap the result in _error so Bolt knows that it should
display that information to the user.

This seems like a great change, though it'll also need a 1.0 release. I don't think that will be a problem?

The beauty of semver is that pre-1.0 there are no rules! And honestly I would call this a bug. It's a bug that a user or two may rely on, but it's pretty unambiguously a bug.

I guess I don't see the harm in doing a 1.0. The risk is that there are people who rely on it who this breaks, and even if it doesn't break the letter of the semver law it feels like it'll give people a bad day. That said I guess folks will have to pin in their puppetfile either way, so maybe it doesn't matter?

I ported over this update to the python task helper (and included the status: failure key, based on what we decide here I can remove it if necessary).
I agree this is a bug that does not need a x release. If you look at the CHANGELOG every y release has been a bug fix kind of like this. So I think we just bump the y.


smimesign --list-keys get nothing

I follow the github page.
I get nothing when I ran command smimesign --list-keys.

What operating system are you running? What version of smimesign are you running? Do you have any certificates installed on your computer that can be used for signing?

hi @mastahyeti
$ echo $SHELL
/bin/zsh
$ smimesign --version
0.0.13

The version of my mac is macOS High Sierra 10.13.4. I downloaded the gpg from here.

Thanks for the additional information. The smimesign app isn't intended to work with PGP keys. You should use GPG for that. This tool is meant for working with X.509 certificates. This tool will search your macOS keychain (not your GPG keychain) looking for certificates that you have the private key for. The GPG key you generated won't show up in this list.

Thanks for your help.

For those who just want to sign their commits but are struggling against this error, follow explanation on the doc then run
git config --local --get gpg.x509.program
If it's say that you are using smimesign, change it to gpg with
git config --local gpg.x509.program gpg
You can check values used by git with
git config --list --show-scope --show-origin


worldAlignment bug?

Hi Viro team and community,
We are setting worldAligment="GravityAndHeading" but the the AR scene's Z-axis only aligns to North-South when the scene is initialized. No alignment adjustments seem to happen later on.
So if I launch the app near a magnetic source (motor, refrigerator, etc), the scene's Z-axis is of course completely off (totally expected). But less expected is the fact that the Z-axis stays off, and never realigns to North-South over time as I walk away from the source, unless the scene is reinitialized.
Is this a Viro issue? Or could this be how ARKit behaves? Our goal is to be constantly aligned. Any feedback or workaround is hugely appreciated.  Thanks.

Hey @domvon,
This is currently how ARKit behaves.
However, we do have a function resetARSession() on the ViroARSceneNavigator that will allow you reset tracking and that should also re-align the ARSession's world origin with heading.
You should invoke that method within your ViroARScene with this.props.arSceneNavigator.resetARSession(true, true).
To determine whether or not your heading is off, you can consider calculating the difference between the detected heading and the camera's Y rotation (keep in mind axis-rotations are dependent on the values of the other axis).
To grab the heading, you should be able to use any React Native compass/geolocation component such as react-native-simple-compass or react-native-compass.
You can get the camera's position with getCameraOrientationAsync() on ViroARScene.
Let us know if this works for you


Default java.library.path not removed for jdk20

Describe the bug
When I was checking https://github.com/NixOS/nixpkgs/pull/247542, I found that jdk20 outputs no clang in java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib, and these paths obviously doesn't meet thet NixOS directory structure, are mutable, and can cause havoc on other Linux distributions.
There was already an issue #103493 here but it was thought to be fixed, despite just for 8, 11 and 17.
Related PR: https://github.com/NixOS/nixpkgs/pull/123708 https://github.com/NixOS/nixpkgs/pull/183760
Is there a good reason not to patch java.library.path for other jdk versions, or just because no one has hit a bug on those versions?
Notify maintainers
@edwtjo @Sohalt

While jdk20 no longer exists in Nixpkgs, I suspect this still applies to JDKs beyond jdk20.
Related code:
https://github.com/NixOS/nixpkgs/blob/e92d5eb3085079eb92d8a2c6981205827512b497/pkgs/development/compilers/openjdk/generic.nix#L187-L196


File Download UI mocks and transitions

Need
For the files tab, we will allow the user to manually download files to their local file system. They may download multiple files at a time. We need a version of the file download experience that integrates with the updated designs.
The current approach can be exercised on the existing data browser pick a small file and download it to see the states.

On small nit about the current design is that on hover the download icon gets fainter. Seems to me it should be more emphasized not less on the hover but whatever standard behavior is works form.
Approach
Create a Figma for an updated download experience that handles multiple simultaneous downloads and uses our updated icon set, and generally matches the new designs.  We don't need a progress bar or anything fancy for this round as we wont have time to implement it in any case.
Definition of Done

Updated Figma showing the different states.
Modify the AnVIL Data Explorer demo prototype to have file download available on the files tab.
Provide a click-through of the states of one download on the prototype/clickthrough

https://www.figma.com/proto/i4uZsYkKAML9ivi2TIo6ug/explore-dashboard?node-id=1947%3A24667&scaling=min-zoom&page-id=1008%3A14844&starting-point-node-id=1047%3A16475
1-3 done. Not sure if you wanted me to include the OS file browser pop-up.

Hey @KasparsNaglis, this is looking great, thank you! Would you be able to add an intermediate "in progress" state to the download button? The file download functionality can sometimes take a fair bit of time between the initial click and the actual download of the file.

Hi @KasparsNaglis, would you also be able to add a "disabled" state to the download button?

Done


Zinnia will not run on Jython due to the ImageField on the EntryAbstractClass

I'm one of the few running Django on Jython rather than Python. As the Python Image Library (PIL) is required for the models.ImageField to be used, Zinnia will not run on a Jython installation. PIL is a C library, and has not been ported to Java to be used with Jython.
There isn't really a good solution that I'd be aware of here. There are work-arounds available (using FileField with additions to settings and extra variables in views), but none are very clean that I can find.
The options that I can come up with are -
1. Bad luck Jython. The field has been there, and is used by X projects. A backward breaking change to support Jython is a bad trade off
2. Remove the field as it isn't really used by many people anyway, and therefore bring support to Jython
3. Implement one of the horrible work-arounds by using a FileField instead.
I think that option 1 will win in nearly any discussion, but I still feel it's necessary to log an issue incase any future Jython programmers come across this application and wish to use it.

Hi jarshwah,
I see your problem, and you are right about the option 1. :)
And you are right too when you want to log an issue for future Jython programmers.
I think a good solution for using Zinnia with Jython is to remove this field by extending the Entry model, setting the image field to an URLField for example.
http://django-blog-zinnia.readthedocs.org/en/latest/extending_entry_model.html
Regards

Hi Fantomas42,
I tried your suggestion of extending the entry model, but unfortunately, django doesn't support shadowed fields. The only option I have left is to essentially copy the model, and manually replace that one field. Thanks for the pointers though.

It's really annoying that Django does not support shadowed fields...
Maybe I should review my classes defining the Entry model,
to separate the "core" fields and the "decoration" fields.

I don't think that would be such a bad idea. Provide a set of Mixins that developers can use to tailor the Entry model to their needs. However, things would get kind of complicated when providing a fully built admin application, and designing prebuilt templates. I'm making the switch to Python though (from Jython), so it won't be such an issue for myself.


StorageCipher initialization failed on API 27

Hello, I recently upgraded my flutter app to android embedding v2, so I could update some of my packages. One of the packages was also Flutter secure storage and after this upgrade, everything runs fine (iOS, Android) except Android Emulator API 27 where I get following error when starting app. FlutterSecureStorage doesnt load, so many stuff in my app doesnt work, as it relies on this package.
Flutter version: 1.22.1
FlutterSecureStorage version: 3.3.5
My error:
E/FlutterSecureStoragePl( 8556): StorageCipher initialization failed
E/FlutterSecureStoragePl( 8556): java.security.UnrecoverableKeyException: Failed to obtain information about private key
E/FlutterSecureStoragePl( 8556): 	at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePublicKeyFromKeystore(AndroidKeyStoreProvider.java:223)
E/FlutterSecureStoragePl( 8556): 	at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStoreKeyPairFromKeystore(AndroidKeyStoreProvider.java:259)
E/FlutterSecureStoragePl( 8556): 	at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePrivateKeyFromKeystore(AndroidKeyStoreProvider.java:269)
E/FlutterSecureStoragePl( 8556): 	at android.security.keystore.AndroidKeyStoreSpi.engineGetKey(AndroidKeyStoreSpi.java:94)
E/FlutterSecureStoragePl( 8556): 	at java.security.KeyStore.getKey(KeyStore.java:1062)
E/FlutterSecureStoragePl( 8556): 	at com.it_nomads.fluttersecurestorage.ciphers.RSACipher18Implementation.createRSAKeysIfNeeded(RSACipher18Implementation.java:118)
E/FlutterSecureStoragePl( 8556): 	at com.it_nomads.fluttersecurestorage.ciphers.RSACipher18Implementation.<init>(RSACipher18Implementation.java:38)
E/FlutterSecureStoragePl( 8556): 	at com.it_nomads.fluttersecurestorage.ciphers.StorageCipher18Implementation.<init>(StorageCipher18Implementation.java:31)
E/FlutterSecureStoragePl( 8556): 	at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin.ensureInitStorageCipher(FlutterSecureStoragePlugin.java:72)
E/FlutterSecureStoragePl( 8556): 	at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin.access$000(FlutterSecureStoragePlugin.java:30)
E/FlutterSecureStoragePl( 8556): 	at com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin$MethodRunner.run(FlutterSecureStoragePlugin.java:182)
E/FlutterSecureStoragePl( 8556): 	at android.os.Handler.handleCallback(Handler.java:790)
E/FlutterSecureStoragePl( 8556): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/FlutterSecureStoragePl( 8556): 	at android.os.Looper.loop(Looper.java:164)
E/FlutterSecureStoragePl( 8556): 	at android.os.HandlerThread.run(HandlerThread.java:65)
E/FlutterSecureStoragePl( 8556): Caused by: android.security.KeyStoreException: Invalid key blob
E/FlutterSecureStoragePl( 8556): 	at android.security.KeyStore.getKeyStoreException(KeyStore.java:697)
E/FlutterSecureStoragePl( 8556): 	at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePublicKeyFromKeystore(AndroidKeyStoreProvider.java:224)
E/FlutterSecureStoragePl( 8556): 	... 14 more

My flutter doctor
[✓] Flutter (Channel stable, 1.22.1, on Mac OS X 10.15.7 19H2, locale en-GB)
    • Flutter version 1.22.1 at /Users/simonvaros/Development/flutter
    • Framework revision f30b7f4db9 (3 weeks ago), 2020-10-08 10:06:30 -0700
    • Engine revision 75bef9f6c8
    • Dart version 2.10.1

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/simonvaros/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.10.0

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[!] IntelliJ IDEA Ultimate Edition (version 2020.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.dev/intellij-setup/#installing-the-plugins

[✓] Connected device (1 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

Same for me too!

Me too - is there a fix for that ?

Same problem here after upgrading to Android embedding V2.
[✓] Flutter (Channel beta, 1.26.0-17.8.pre, on Linux, locale de_DE.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
Running on emulator with Android 8.1/API 27

With the same setup as above, problem does not show on Android Oreo 10.0 API 29

Just found out that failure goes away after deinstalling my app. Possible this clears any previous keys and the failure does not occur next time.
According to documentation, UnrecoverableKeyException from getKey indicates that the key was present but could no be recovered, e.g. due to wrong password.

I am also facing same issue....
If you clear app data manually you will see this error...
any fix for it??

I'm currently facing this issue.
Does anyone has a fix for this?

Same problem here using 4.2.0.
I have to wipe data and start emulator again.

Can someone please confirm this is still happening with version 4.2.0 on a real device?

@juliansteenbakker Seems that @fundup reports error with 4.2.0

With #270 you can now use the following code to enable EncryptedSharedPreferences:
  AndroidOptions _getAndroidOptions() => const AndroidOptions(
        encryptedSharedPreferences: true,
      );

This method doesn't use the custom StorageCipher but rather a Jetpack Compose library that automatically encrypts the data. Please note that on API < 23 it will fall back to the 'regular' secure storage.

If you send any options, (Ex. encryptedSharedPreferences: true in Android) StorageCipher18Implementation is always initialized regardless of whether it is needed or not:
`        if (options != null) {
useEncryptedSharedPreferences = useEncryptedSharedPreferences(options);
resetOnError = resetOnError(options);
        if (storageCipher == null) {
            try {
                storageCipher = new StorageCipher18Implementation(applicationContext);
            } catch (Exception e) {
                Log.e(TAG, "StorageCipher initialization failed", e);
            }
        }

`


Rename modular content to linked items

Based on our vision regarding content items, we have to rename "Modular content element" to "Linked items element". From the Delivery SDK's point of view, it means that we are going to rename everything that contains "modularContent" to "linkedItems".
Checklist:

[x] updated all members (methods/properties/classes/...)
[x] updated .MD files
[x] updated tests
[x] updated github wiki

Keep in mind, that the Delivery API responses will remain the same. They'll still contain "modular_content".
Example implementation: https://github.com/Kentico/delivery-sdk-net/pull/130
Notes:

this will result in a breaking change because of changes in public members -> major version number has to be increased
plan your release so that the changes go live on 2018-10-03 and onwards.

Done, will be released as part of 5.0.0


Search Guard not initialized Elasticsearch 5.5.0 - no permissions for indices:admin/exists

Hello,
i updated Elasticsearch from 5.2 to 5.5.0.
After installing searchguard i become the following error, when i want to initialize searchguard.

Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
ERR: An unexpected ElasticsearchSecurityException occured: no permissions for indices:admin/exists
Trace:
ElasticsearchSecurityException[no permissions for indices:admin/exists]
        at com.floragunn.searchguard.filter.SearchGuardFilter.apply(SearchGuardFilter.java:147)
        at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:168)
        at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:142)
        at org.elasticsearch.action.support.HandledTransportAction$TransportHandler.messageReceived(HandledTransportAction.java:64)
        at org.elasticsearch.action.support.HandledTransportAction$TransportHandler.messageReceived(HandledTransportAction.java:54)
        at com.floragunn.searchguard.ssl.transport.SearchGuardSSLRequestHandler.messageReceivedDecorate(SearchGuardSSLRequestHandler.java:177)
        at com.floragunn.searchguard.transport.SearchGuardRequestHandler.messageReceivedDecorate(SearchGuardRequestHandler.java:191)
        at com.floragunn.searchguard.ssl.transport.SearchGuardSSLRequestHandler.messageReceived(SearchGuardSSLRequestHandler.java:139)
        at com.floragunn.searchguard.SearchGuardPlugin$2$1.messageReceived(SearchGuardPlugin.java:336)
        at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
        at org.elasticsearch.transport.TcpTransport$RequestHandler.doRun(TcpTransport.java:1544)
        at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
        at org.elasticsearch.common.util.concurrent.EsExecutors$1.execute(EsExecutors.java:110)
        at org.elasticsearch.transport.TcpTransport.handleRequest(TcpTransport.java:1501)
        at org.elasticsearch.transport.TcpTransport.messageReceived(TcpTransport.java:1385)
        at org.elasticsearch.transport.netty4.Netty4MessageChannelHandler.channelRead(Netty4MessageChannelHandler.java:74)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1267)
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1078)
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:544)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
        at java.lang.Thread.run(Thread.java:748)

Does anyone know this error?

maybe the same problem like https://groups.google.com/forum/#!msg/search-guard/cbSUX9q4Bp0/46tuDCvtBgAJ

I'm experiencing the same problem. (5.4.0-12 -> 5.5.0-14)

Yes, it seems to be the same problem.
But I can not get the workaround to run.

check that your certificate is a client admin cert (not a node certificate)

It is a node certificate, but this worked before.

i generated new certificate with search-guard-ssl-ves-5.5.0-22/example-pki-scripts/example.sh
now i have the following error:
Error.txt
i can connect to elasticsearch and the login is working.
Only Kibana is not running.
Any idea what the error is? I will check the doku for now, maybe i can find there anything.

@jens-ab seems like the (root) CA Certificate is not trusted, did you update the truststore?

i updated everything. Maybe some settings in the scripts were wrong. i will check it again.

Are there some changes in searchguard, where the CA Certificate and truststore from search-guard-ssl-ves-5.5.0-22/example-pki-scripts/example.sh not allowed anymore?
I generate the root CA Certificate and use the generated files from gen_client_node_cert.sh
I have done the same changes like before.
Elasticsearch is running and login is working. But Kibana can not conect with message
[security_exception] no permissions for indices:data/read/mget
To check, i have given the kibana user admin rights.
Also there is the exception from sgadmin.sh. The diagnose gives the following file:
sgadmin_diag_trace_2017-Jul-13_16-30-32.txt
I don't understand what happend between com.floragunn:search-guard-5:5.2.1-11 and com.floragunn:search-guard-5:5.5.0-14
Are there any hints I can follow here?

There are no changes where CA Certificate and truststore example.sh not allowed anymore. I guess you missed something to update (you need to update all nodes and sgadmin as well).
Pls post your elasticsearch.yml and your sgadmin command. The Kibana issue we will fix later if anything else is running.
@hex2a Seems we missed to document this change but node certificates where never really supported for sgadmin and where never supposed to be working like that.

@hex2a is it now working for you again?

@floragunncom the sgconfig files are managed through a configuration management tool on the nodes, and then pushed into elasticsearch using the respective node certificate. Is there any possibility to keep this behaviour?

Hello,
i was on vacation and could not answer earlier.
the sgadmin command is:
/usr/share/elasticsearch/plugins/search-guard-5/tools/sgadmin.sh  -cd /srv/elasticsearch/config/  -ks /srv/elasticsearch/config/vm_dev-keystore.jks  -kspass password  -ts /srv/elasticsearch/config/truststore.jks  -tspass password  -nhnv  -icl --diagnose
The entry in elasticsearch.yml is:
`#############################################################################################
SEARCH GUARD SSL
#############################################################################################
searchguard.ssl.transport.keystore_type: JKS
searchguard.ssl.transport.keystore_filepath: vm_dev-keystore.jks
searchguard.ssl.transport.keystore_alias: vm_dev
searchguard.ssl.transport.keystore_password: password
searchguard.ssl.transport.truststore_type: JKS
searchguard.ssl.transport.truststore_filepath: truststore.jks
searchguard.ssl.transport.truststore_alias: root-ca-chain
searchguard.ssl.transport.truststore_password: password
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.transport.resolve_hostname: false
searchguard.ssl.transport.enable_openssl_if_available: true
searchguard.ssl.http.enable_openssl_if_available: true
#############################################################################################
SEARCH GUARD
#############################################################################################
searchguard.authcz.admin_dn:

"CN=vm_dev, OU=client, O=client, L=test, C=de"
"CN=<IP_ADDRESS>, OU=SSL, O=Test, L=Test, C=DE"
`

I'm using this setting since elasticsearch 2.4.

Hello,
i have solved my problem. Apparently one must now use the node name in elasticsearch.yml.
Kibana is running to and sgadmin doesn't produce any errors.

@jens-ab could you write where exactly did you use the node name? in CN of searchguard.authcz.admin_dn or somewhere else?
I run into the same issue as you did after upgrading from 5.4.2 to 5.5.0

yes, i will try to write down all changes:
elasticsearch.yml:
#############################################################################################
SEARCH GUARD SSL
#############################################################################################
searchguard.ssl.transport.keystore_type: JKS
searchguard.ssl.transport.keystore_filepath: NODENAME-keystore.jks
searchguard.ssl.transport.keystore_alias: NODENAME
searchguard.ssl.transport.keystore_password: changeit
searchguard.ssl.transport.truststore_type: JKS
searchguard.ssl.transport.truststore_filepath: truststore.jks
searchguard.ssl.transport.truststore_alias: root-ca-chain
searchguard.ssl.transport.truststore_password: changeit
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.transport.resolve_hostname: false
searchguard.ssl.transport.enable_openssl_if_available: true
searchguard.ssl.http.enable_openssl_if_available: true
#############################################################################################
SEARCH GUARD
#############################################################################################
searchguard.authcz.admin_dn:

"CN=NODENAME, OU=client, O=client, L=test, C=de"
"CN=LOCALIP, OU=SSL, O=Test, L=Test, C=DE"

search-guard-ssl-ves-5.5.0-22/example-pki-scripts/example.sh:
#!/bin/bash
set -e
./clean.sh
./gen_root_ca.sh capass changeit
./gen_client_node_cert.sh NODENAME changeit capass
rm -f ./tmp
sgadmin command is:
/usr/share/elasticsearch/plugins/search-guard-5/tools/sgadmin.sh  -cd /srv/elasticsearch/config/  -ks /srv/elasticsearch/config/NODENAME-keystore.jks  -kspass changeit  -ts /srv/elasticsearch/config/truststore.jks  -tspass changeit  -nhnv  -icl --diagnose
This ist working for me with 1 Node.
Elasticsearch version 5.5
if there is any question just ask

Thank you for sharing your configuration. Unfortunately it doesn't work for me in my 3 nodes setup. I created client cert with CN=NODENAME where NODENAME was name of the node where I executed sgadmin.
I get this error:

at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) ~[netty-codec-4.1.11.Final.jar:4.1.11.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) ~[netty-codec-4.1.11.Final.jar:4.1.11.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) ~[netty-codec-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:544) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458) [netty-transport-4.1.11.Final.jar:4.1.11.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.11.Final.jar:4.1.11.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:352) ~[?:?]
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:260) ~[?:?]
at sun.security.validator.Validator.validate(Validator.java:260) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136) ~[?:?]
at io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$ExtendedTrustManagerVerifyCallback.verify(ReferenceCountedOpenSslClientContext.java:223) ~[?:?]
at io.netty.handler.ssl.ReferenceCountedOpenSslContext$AbstractCertificateVerifier.verify(ReferenceCountedOpenSslContext.java:645) ~[?:?]
... 25 more
Caused by: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:153) ~[?:?]
at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79) ~[?:?]
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:292) ~[?:1.8.0_131]
at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:347) ~[?:?]
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:260) ~[?:?]
at sun.security.validator.Validator.validate(Validator.java:260) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281) ~[?:?]
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136) ~[?:?]
at io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$ExtendedTrustManagerVerifyCallback.verify(ReferenceCountedOpenSslClientContext.java:223) ~[?:?]
at io.netty.handler.ssl.ReferenceCountedOpenSslContext$AbstractCertificateVerifier.verify(ReferenceCountedOpenSslContext.java:645) ~[?:?]
... 25 more

So it seems I have the same problem as you had earlier but there must be something another. My setup worked in all earlier versions, including 5.4.2. It stopped working in 5.5.

Sorry, there i can't help you. I haven't use searchgurd with more than one node.

Sure, thanks anyway. Maybe your config will help other people.
As I have the same problem as you had earlier, I would like to get help from somebody another here as well - as further people may have the same problem when trying to setup more than 1 node.
I have 3 nodes and for each of them I have config like that:
elasticsearch.yml content:
   path:       logs: /tmp       conf: /usr/share/elasticsearch/config       repo: /usr/share/elasticsearch/backups     network:       host: <IP_ADDRESS>     cluster:       name: sg-cluster     node:       name: ${NODE_NAME}       master: ${IS_NODE_MASTER}       data: ${IS_NODE_DATA}       attr.tag: ${NODE_TAG}     discovery:       zen:         ping.unicast.hosts: ${DISCOVERY_SERVICE}         minimum_master_nodes: ${NUMBER_OF_MASTER_NODES}     http.max_header_size: 32kb     searchguard:       ssl:         transport:           keystore_filepath: node-keystore.jks           keystore_password: ${KEYSTORE_PASSWORD}           truststore_filepath: truststore.jks           truststore_password: ${TRUSTSTORE_PASSWORD}           enforce_hostname_verification: false         http:           enabled: true           keystore_filepath: node-keystore.jks           keystore_password: ${KEYSTORE_PASSWORD}           truststore_filepath: truststore.jks           truststore_password: ${TRUSTSTORE_PASSWORD}     searchguard.authcz.admin_dn:       - CN=${NODE_NAME},OU=Test,O=Test,L=Test,ST=test,C=DE
All env variables are correctly filled with proper names (I also tried to hardcode all of them to be sure).
I generated 3 node certs - one per elastic node + 1 client cert with proper data: CN=${NODE_NAME},OU=Test,O=Test,L=Test,ST=test,C=DE
I used certs generated by scripts from example-pki-scripts.

The solution is quite easy: Do not use a node certificate for sgadmin and searchguard.authcz.admin_dn. Instead use a client certificate (like spock or kirk if you use the example pki scripts). Even if you get it working somehow we will not guarantee that this will work in later versions too. It is not (it it never was) supported to use a node certificate with sgadmin.
Btw: We understand that all the different certificates are complex to handle and therefore sgadmin and all the other certificate stuff will become way easier with ES 6/SG 6. But there will be no backport to ES 5/SG 5 for this.

Use the spock-keystore.jks with sgadmin and configure

searchguard.authcz.admin_dn:
  - "CN=spock, OU=client, O=client, L=Test, C=DE"

on all nodes. That should work without any hassle.

I was using client certificate (when I used node cert previously I got no permissions for indices:admin/exists error).
But I started whole procedure from scratch and it finally worked. I generated my own client cert with CN not containing node name and it works - just as it works for spock-keystore.jks. So it seems that CN may be anything.
I found also the reason of my previous failure (see: https://github.com/floragunncom/search-guard/issues/366#issuecomment-315808991): I forgot to replace truststore.jks file on one of nodes but replaced on two others. Maybe it helps someone too.
Thank you @floragunncom for your help.

The CN for a client certificate maybe anything (and normally is above all not related to a hostname or nodename or similar) because the CN in a client certificate is like the "username" whereas the private key part of certificate is the "password". To make a client certificate a sgadmin/sg admin certificate you have to list the CN of it in searchguard.authcz.admin_dn:. Client certificates who are not admin certificates are also supposed to be used with TransportClienst to connect programmatically to elasticsearch using the transport protocol (port 9300, not related to REST/HTTP).
Node certificates instead should contain the hostname in the CN attribute to make hostname verification work. But they are supposed to identify nodes to each other, that is why they contain this mystery OID so that we can distinguish them from a client certificate and must not be used as such.

in SG v15 we added a explanatory error message to sgadmin.
Will close this issue.


Swift 4

Codecov Report

Merging #25 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master      #25   +/-   ##
=======================================
  Coverage   97.37%   97.37%
=======================================
  Files          10       10
  Lines         229      229
=======================================
  Hits          223      223
  Misses          6        6

Impacted Files
Coverage Δ

Source/Media.swift
100% <100%> (ø)
:arrow_up:

Source/Result.swift
100% <100%> (ø)
:arrow_up:

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 dc18763...e547b82. Read the comment docs.


Make storage format code crash-safe

add CRCs to files to detect partial writes
add fsync() calls where needed

the remainder of this task was moved over to #1083

When should we fsync in the pageserver? With walkeepers and S3, is it ever necessary?

When should we fsync in the pageserver? With walkeepers and S3, is it ever necessary?

Failure scenario that would be good to have is protection from hard restart of physical host. If we know that data on the local disk is valid on some LSN we can use that files without loading them from S3 (that is possibly tens of TB).
So we can fsync all not yet synced files with lsn <= disk_consistent_lsn before updating timeline metadata with the new disk_consistent_lsn.

Checksums have been added to metadata files, still waiting on review for the bookfile PR to get checksums for everything else

there may be some fsyncs missing for s3


Use srcset for images

This script is fantastic, it's exactly what I was looking for.  Is there a way to use an image srcset instead of just a single source.  I would just like to serve smaller images to mobile but it doesn't seem to work.  Thanks.

Hello,
I'm not planning to add srcset.
I think you can simply handle it with checking screen width and load a different slide array.


Merge feature/pyan/update-payment-trigger into feature/pyan/update-payment-trigger__kiet-date-validations

This pull request was automatically generated because an automated merge hit a merge conflict

Will delete this branch as the child one has all the changes and has been merged


Non-image and non-json inputs and outputs in inference.py

Should we add a placeholder function for reading input files that are not json files or images? I don't think we need to provide actual read functions for all file mimetypes that we support, but might be good to have a load_file() function with a comment that the challenge admin needs to fill that in. That function should then be output for all inputs of type FILE where the file extension in the relative_path is not .json.  Same goes for writing outputs, of course.

This also applies to the evaluation. An algorithm might produce outputs that are not json files or images.


CocoaPod not updated to 1.1.0 release

Last Pod published was 1.0.0-convergence.1 https://cocoapods.org/pods/SwiftMetrics

whoops, sorry, on it

oops, I don't have permissions to do that:
$ scripts/build_podspec.sh -u 1.1.0
Building podspec in /tmp/.build_podspecseHHJW5
Uploading /tmp/.build_podspecseHHJW5/SwiftMetrics.podspec
Updating spec repo `master`
Validating podspec
 -> SwiftMetrics (1.1.0)
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | xcodebuild:  note: Planning build
    - NOTE  | xcodebuild:  note: Constructing build description

[!] You<EMAIL_ADDRESS>are not allowed to push new versions for this pod. The owners of this pod are<EMAIL_ADDRESS>
over to @tomerd

@prafsoni done: https://cocoapods.org/pods/SwiftMetrics
thans for reporting!


Package uber JAR with Proguard

As I see there are 2 variants now:

packageReleaseUberJarForCurrentOS produces uber jar, but it's not obfuscated even in Release version
createReleaseDistributable/packageReleaseDistributionForCurrentOS use proguard, but it produces the same jars as input because of this code from AbstractProguardTask:

jarsConfigurationFile.ioFile.bufferedWriter().use { writer ->
    for ((input, output) in inputToOutputJars.entries) {
        writer.writeLn("-injars '${input.normalizedPath()}'")
        writer.writeLn("-outjars '${output.normalizedPath()}'")
    }
    // ...
}

Can you please add a possibility to package all classes to the single uber JAR after proguard, for example by specifying a single output jar in proguard config?

Thank you for the enhancement. We have more urgent tasks for now, you may provide a PR for this to facilitate.

may provide a PR for this to facilitate

done :)

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Missing feature (DNS) for Tokio

When trying to build a project using tiberius = { version = "0.4", features = ["sql-browser-tokio"] } I get an error saying:

Which seems to be fixed by enabling the Tokio feature "dns":

So should this line be updated to: features = ["dns", "udp"], or is there a better way to fix this?

Cool, thanks 👍


ARPA integration: copy DB table schema from ARPA reporter

This adds a script generate_arpa_table_migrations.js that uses the pg_dump and knex migrate:make utilities to generate migrations that recreate certain ARPA reporter tables in GOST. This PR also includes the output generated by that script.
TODO:

Decide if we should rename any tables to make ARPA-specific use clearer?

In #296, I updated the GOST's agencies table to add the code field that ARPA's had. The other shared tables user, access_tokens, and roles do not require schema changes to support ARPA code using them.
See overall integration plan: https://www.notion.so/usdr/GOST-ARPA-integration-technical-plan-cffc5800c0414660816a0920b959da82

@ajhyndman not urgent, but this is ready to look at


fix p110 power monitor

Yes. I am aware my fix was a hack, and would have too much impact, but all my devices are P110 :)  Thanks for the quick fix.


Swift 5 "upgrade" warning -- needs to be Swift '5.0' instead of just '5'

I have read the guidelines for contributing and I understand

[x] My issue is happening in the latest version of SideMenu (older versions are no longer maintained).
[x] My issue was not solved in the README.
[x] My issue can not be answered on stackoverflow.com.
[x] My issue is not a request for new functionality that I am unwilling to build and contribute with a pull request.
[x] My issue is reproducible in the demo project.

Describe the bug
Installed using CocoaPods, Xcode creates a warning that 'Swift 5 conversion is available' for this library (although it IS Swift 5)
To Reproduce
Build a project using SideMenu... look at warnings
Expected behavior
No warning :)
Screenshots
none
Additional context
The problem is that s.swift_version is '5' and not '5.0'.  CocoaPods copies this setting directly into SWIFT_VERSION=... in the xcodeproj without any checking, and Xcode, I guess, doesn't think '5' >= '5.0'.

Fixed in 6.1.3.


Support setter

Required for WebStorage.

This issue has been moved to https://github.com/w3c/web-platform-tests/issues/7144; please continue all discussion there.


Implement libp2p tls upgrade

Task summary

tls security should be implement to allow more options for upgrade authentication. Currently Lotus supports both noise and tls, with a preference toward noise, but having both would allow more clean connections to peers.
It is not implemented in rust-libp2p, so ideally this change would go upstream. Issue on their end: https://github.com/libp2p/rust-libp2p/issues/1109
I'm also not sure if rust-libp2p supports selecting between these two in their authentication, since I only see the single option in examples, so this might need to be investigated too.
Not super high priority, but more left as a tracking issue.
Specification reference

Other information and links

Stale.


Feature request: Save query builder state

Is your feature request related to a problem? Please describe.
The query builder currently generates a query that can be saved and re-used (v useful!)
Sometimes it’s handy to modify this generated query (e.g. change the sector code or recipient country).
Describe the solution you'd like
It would be useful to be able to load the generated query back into the query builder, and edit it there. I imagine this being done via (for instance) an extra edit=true query parameter, so that it can easily be appended to an existing query.
Describe alternatives you've considered
The current alternative is to build the query again from scratch. If the query involves a lot of fields, this can be quite time-consuming.

This is possible in QB:
https://iatidatastore.iatistandard.org/search/activity?q=recipient_country_code:(KE NE NG RW) AND activity_status_code:(2) AND humanitarian:(0)&wt=json&rows=50
Added 4 countries, 2 additional filters etc. So I will close this. Do feel free to change if you had something else in mind!

Apologies, I think you’ve misunderstood this request.
In order to add more countries to your query, I have to edit the query string. That’s okay for a technical user, but not so good for a less technical user.
This ticket is about allowing the user to edit the query via a web interface. So, some means of recovering a populated form, rather than JSON output.
I understand if this is a wontfix. But I don’t think it’s correct to say it’s already possible in the QB.

Ah, gotcha! Moving this back as we may do some interface updates in the final quarter on the QB to facilitate some other requests from the past.

Ace – thanks Siem.
I appreciate this is a “nice to have” rather than a crucial feature. I think there was some more discussion on this on discuss… I’ll try and track that down!


packaging: fixed some issues found on portus.spec

Signed-off-by: Miquel Sabaté Solà<EMAIL_ADDRESS>

This is already being done on OBS for 2.4, and I've already test it locally.


fix(config): support CRLF config files

Sorry I didn't add any tests for this. I'm not sure of any ways to easily test config:pull and config:push because I need to mock os.ModeCharDevice and I don't have the time to investigate it right now. 😢
How to manually test:
Create a .env file with CRLF line endings and...
Before fix:
deis config:push
...
deis run 'printf %q $TEST'
Running 'printf %q $TEST'...
$'123456\r'

After fix:
deis config:push
...
deis run 'printf %q $TEST'
Running 'printf %q $TEST'...
123456

Current coverage is 24.32% (diff: 0.00%)

No coverage report found for master at 05892a7.

Powered by Codecov. Last update 05892a7...03993f7

This PR needed a rebase. Opened a new, rebased PR here: https://github.com/deis/workflow-cli/pull/250

Does anybody else have a chance to review this PR?

This LGTM but i see another PR opened with your commit #250

Yep. Either one works for me! I can LGTM the other one if you'd rather see that one merged.

i LGTM the #250 as it has ci passing thought i don't see jenkins job on it.


How to exclude code from Stylelint parsing in Vue files

Hi @ota-meshi!
Is there a way of ignoring certain lines in Vue files? For example, it's possible to ignore code in CSS files using comments: https://stylelint.io/user-guide/ignore-code/
Stylelint sees font-size: var(--zz-text--1) in one of my Vue files as a mistake because of the -- at the end of the CSS variable name. We are using --1 because this variable representing a negative value. At the moment I've fully excluded this file, but I would prefer to just skip that one line so that I can still lint the rest of the file.
Here's a screenshot of the error:

Thanks!

We can use suppress comments in the same way in vue files as well.
https://stylelint.io/demo/#N4Igxg9gJgpiBcIA8AXGBbADgGwIZoD4AdAOyJSSgEsA3AAjDwGcmBeIkAMwgg4KQD01GsRKC0WPIVKkkTFAE9sMUQDpuEOsBkoBAKjrylMbFRIoAtNSa4ARsoskYAD0umndPQJ0WLALz8LNFdfAEZ4OlDQzGcAbh1ucwsmKj8YCJpcACcACl8AoJdLC1CASniSAF9ZASNlAhAAGi4qZQA5XHQ4RBdOnBhVGgBXOGbIEk4qAHMEEHRoIeVVF0wILJQmOlYtUjo9ug4imBIoJg4IjjqTM0txyamLLJhIdC6TmCgLYZgORt39jhZRYwM4IHYkfYA8BDeQQdAWTBZCCYGDrBQI-BoLJkMECAB6AG1cP4AAwWACcAF0ANQ5AD88AsRNJFJppT0ABIBEN-ntqlUmuAIBNpgAxNbofCzABWTEFsEwcsQ2ghBxAV3cKHOaqkIK1TX+l0Uyk1Fju02SKFwJ2yUG1HF18l+hvVxuuSXNDyeLzesE+33tIEd+tIlRAlSAA

@ota-meshi Great, thanks!


Implement style transfer on video

Deepart.io Paper
GitHub repo
How can we get this done in a reasonable time/effort?

I have tested running Gatys' algo independently on each frame of a video. Results are very promising to me. Iron Man rendered by Kandinsky to get a sense of it.

Clear issues:

it takes 50 minutes to process 17 seconds, i.e. 540 frames (50 iterations of the optimization algo). Quite slow. It could be costly to run this kind of model in production even for relatively cheap GPUs.
a 6 MB original video turned into 120 MB

Easy potential fixes:

Use L-BFGS instead of SGD. This has nothing to do with this video challenge per se but it could help us get better results at a frame level.
Use VGG16 as it is lighter and faster than 19.
We could change the loss function to have a third term (in addition to content and style which are already there). This term would be the MSE between frame i we are updating and frame i-1 we have already style-transferred (NOT frame i-1 content only!). This would encourage the model to restore similar pixel values in frame i compared to the previous frame.
We could apply this concept to a moving average. I.e. the third term mentioned at point 3 does not need to be related to frame i-1 only. With a rate of 30 fps, we could calculate the average of the pixel values in a 15-frame window of already style-transferred frames and use that instead.
Depending on how hard it is to calculate the flow motion (unclear to me from the paper), we could try implementing that. Maybe just use section 4.1 from the paper. Section 4.2 seems already too complex to me.
The rest of the paper seems a moon-shot to me. I think the marginal benefit we would get from implementing all of it from scratch would be minimal compared to more baseline methods. People don't really care. This is IMO, of course.

I took a look at the comments and at the paper, and it seems to me that the approach is pretty hard to implement I think (just look at the number of options these guys have). So it may not be justified to spend so much time with other approach and I favor something simpler.
But I think it's worth researching if it exists a better way to do it anyway, for example this may be more feasible:
https://medium.com/coinmonks/real-time-video-style-transfer-fast-accurate-and-temporally-consistent-863a175e06dc

The PyImageSearch post (using these guys' work) is quite insane. It is fantastic at frame level but at video level, it is a for loop, so nothing better than what we get, just faster.
Haven't seen the Medium post yet.

For the pyinagesearch it looks to me the frames are quite stable (it's the
same technique of the videogame demo I think?)  probably because there is
no optimization being performed (it's what makes it random). Which makes me
think doing an initialization on the previous frame could technically help
(and also the loss)
On Sat., Apr. 27, 2019, 3:21 a.m. Francesco Pochetti, <
<EMAIL_ADDRESS>wrote:

The PyImageSearch
https://www.pyimagesearch.com/2018/08/27/neural-style-transfer-with-opencv/
post (using these guys' work
https://github.com/jcjohnson/fast-neural-style) is quite insane. It is
fantastic at frame level but at video level, it is a for loop, so nothing
better than what we get, just faster.
Haven't seen the Medium post yet.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/gabrielelanaro/ml-prototypes/issues/37#issuecomment-487273884,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB2SA64QSAU5ZJ3FMNBZ3TPSQSJTANCNFSM4HIUIV7Q
.


Renames PageSize -> Pages

@ncruces  PageSize is not appropriate name as it's defined in the spec as 65536 bytes.

I might revert the API in the first place before the next release (as I still not sure if anyone needs this) but this is anyway better than the original

We can always use Grow(0). If so, we should update the documentation noting that workaround.

That sounds better I think


refactor: new alert components

addresses #30

Thx for working on webimint!

There seems to be a children property for what we want to do https://docs.rs/leptos/latest/leptos/attr.component.html


clicking on username logs me out on dev site

This is intended behavior, but I think the intention should be changed...@thinkloop? :)

It's like augur1 except we display the handle instead of "logout", eventually there will be an account page linked from there, is it better for now to go back to "logout"?

I expected to go to an account page or nothing to happen, didn't expect to be logged out

We're thinking of changing it to have this functionality: http://bit.ly/1SQOQG8


Current master references github.com/src-d/crypto which is not publicly available

The only change in 649de29be54e62ed40a2bc6466f2eac2884fc8f9 was to change the import from golang crypto to src-d crypto and the latter is not available in public domain. So the current master is not usable with ssh:
plumbing/transport/ssh/auth_method.go:12:2: cannot find package "github.com/src-d/crypto/ssh/knownhosts

Changing the import back to github.com/src-d/crypto/ssh/knownhosts fixes the issue temporarily.

I just fixed, sorry for that

Thanks!


Fix BH test_bert_ops.py hang

In BH, test_bert_ops.py::test_bert_linear_batch4 hanging

Test can be called by
pytest "tests/tt_eager/python_api_testing/unit_testing/misc/test_bert_ops.py::test_bert_linear_batch4"

Adding in write flushes fixes this issue. See https://github.com/tenstorrent/tt-metal/issues/12600#issuecomment-2420401891 for details.

https://github.com/tenstorrent/tt-metal/pull/13987 adds write flushes and has been merged.


[doc > thirdPartyRunPlugins.md] Move thirdPartyRunPlugins.md to learn.msft

Provide a description of requested docs changes
In think we should move the third-party plugin docs to learn.msft as it is an end-user documentation. We can add it as sub page of the PowerToys Run page.
@crutkas, @alvinashcraft
What do you think?

https://github.com/microsoft/PowerToys/pull/27566#discussion_r1287015877
"https://aka.ms/powerToysRunPlugins" -> "https://github.com/microsoft/PowerToys/blob/main/doc/thirdPartyRunPlugins.md"
I think the alias redirect should change too.

As it isn't technically officially supported, I do not believe we should.

As it isn't technically officially supported, I do not believe we should.

Why do we have an info bar with a link to the docs on the settings page then?


Refactor env permissions + modify getTrustAccount

Feature or Bugfix

Refactoring
Feature

Detail

Add permissions to getTrustedAccount API
Remove usage of central account in administrator view dashboard tab
refactor environment Service functions to use decorator for resource policies
Added LINK_ENVIRONMENT permissions instead of GET_ORGANIZATION to get_pivot_role, get_external_id, get_pivot_role_template

Testing:

[X] CICD deployment completes
Add permissions to getTrustedAccount API

[X] in environment creation form view we can get the trusted account

Remove usage of central account in administrator view dashboard tab

[X] admin view renders without issue

refactor environment Service functions to use decorator for resource policies

[X] enable_subscriptions with unauthorized user = unauthorized
[X] enable_subscriptions with authorized user = success
[X] disable_subscriptions with unauthorized user = unauthorized
[X] disable_subscriptions with authorized user = success
[X] get environment assume role url with unauthorized user = unauthorized -- it throws error of user does not belong to group
[X] get environment assume role url  with authorized user = success
[X] get environment access token with unauthorized user = unauthorized
[X] get environment access token with authorized user = success

Added LINK_ENVIRONMENT permissions instead of GET_ORGANIZATION to get_pivot_role, get_external_id, get_pivot_role_template

[X] Now we get an Unauthorized error message when LINK_ENVIRONMENT permissions are missing before hitting the create Environment button

Relates

Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10.

Does this PR introduce or modify any input fields or queries - this includes
fetching data from storage outside the application (e.g. a database, an S3 bucket)?

Is the input sanitized?
What precautions are you taking before deserializing the data you consume?
Is injection prevented by parametrizing queries?
Have you ensured no eval or similar functions are used?

Does this PR introduce any functionality or component that requires authorization?

How have you ensured it respects the existing AuthN/AuthZ mechanisms?
Are you logging failed auth attempts?

Are you using or adding any cryptographic features?

Do you use a standard proven implementations?
Are the used keys controlled by the customer? Where are they stored?

Are you introducing any new policies/roles/users?

Have you used the least-privilege principle? How?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks @noah-paige, I will remove (1) and fix (2) in a separate PR. This one is getting out of hands :)

@noah-paige Done! I removed the unused getPlatformAuthorSession


⚠ Game Join API Endpoint has degraded performance

In 6867b55, Game Join API Endpoint (http://gamejoin.roblox.com/) experienced degraded performance:

HTTP code: 503
Response time: 1121 ms

Resolved: Game Join API Endpoint performance has improved in 61d48fa after 1 hour, 36 minutes.


 This resolves that issue.

This is already fixed in dev.


Add props continuesAfter & continuesPrior to Event (content) component

Clear and concise description of the problem
In the TimeGrid views custom Event component doesn't know if the event continuesAfter or continuesPrior. I would love to display different event content based on wether the event  continuesAfter or continuesPrior when showMultiDayTimes is active.
Suggested solution
In TimeGridEvent.js change:
from:
{Event ? <Event event={event} title={title} /> : title}

to:
{Event ? <Event event={event} title={title} continuesPrior={continuesPrior} continuesAfter={continuesAfter}  /> : title}

Types in @types/react-big-calendar should be updated to reflect this change
Alternative
No response
Additional context
No response
Validations

[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Would you like to open a PR for this feature?

[X] I'm willing to open a PR

i also needs this, it would be extremely helpful to differentiate between the first half or the second half of an event, for cases where we need to customize rendering depending on the half, for my case i need to show the timestamp on the first half and a button in the second half


Compilation fails after disk full condition is resolved

Recently I had a situation where disk got full while Crystal program compilation was going on.
The error was, expectedly:
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
LLVM ERROR: IO failure on output stream: No space left on device
cc: error: U-nibilium5858X-wA-.o: No such file or directory
cc: error: S-pec5858E-qualE--105ff32cf1d08854d584bd47258d7dc8.o: No such file or directory
cc: error: S-pec5858E-qualE--0bd60a1583657679b0e2f8960921d528.o: No such file or directory
cc: error: S-pec5858E-qualE--392231f409d85494628279e72da6d6e8.o: No such file or directory
Error: execution of command failed with code: 1: `cc "${@}" -o /home/user/.cache/crystal/crystal-run-spec.tmp  -rdynamic -L/opt/crystal-0.35.1-1/bin/../lib/crystal/lib -L/usr/local/lib -lunibilium -lpcre -lm -lgc -lpthread /opt/crystal-0.35.1-1/share/crystal/src/ext/libcrystal.a -levent -lrt -ldl`

However, after the disk space issue was resolved, compilations wouldn't continue working until the cache directory ~/.cache/crystal/ was deleted:
$ crystal  s
/usr/bin/ld: _main.o: in function `->':
/home/docelic/p/labs/unibilium-shim.cr/spec/unibilium-shim_spec.cr:51: undefined reference to `*Unibilium::Terminfo#run<Pointer(UInt8), Int32, Int32>:Slice(UInt8)'
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc "${@}" -o /home/docelic/.cache/crystal/crystal-run-spec.tmp  -rdynamic -L/opt/crystal-0.35.1-1/bin/../lib/crystal/lib -L/usr/local/lib -lunibilium -lpcre -lm -lgc -lpthread /opt/crystal-0.35.1-1/share/crystal/src/ext/libcrystal.a -levent -lrt -ldl

rm -rf ~/.cache/crystal
crystal  s
....

Finished in 811 microseconds
4 examples, 0 failures, 0 errors, 0 pending

Can this be improved, or we are aware of and accept the current behavior?
Thanks.

This is likely already fixed on master (#9558).

Thanks, will reopen in case I don't manage to confirm.


transpiled version: #private to _public for backwards compatibility

For this repo it's a straight text substitution: # to _ for all of the private properties and methods.  There are no overlapping names.
I have yet to find a clean automated way to do this. Babel does the "accurate" thing and converts private properties to weak maps, but I don't need that here. The public properties perform better and use less code.
The regex for finding # but not when prefixed by & or any kind of quotation mark is (?<!['`"&])[#].  In addition to that I need all the declarations (re)moved, but I can rely on Babel for that.

I created babel-plugin-private-to-public to solve this, and it's working so far.


Clip to shape of vector file

Alike in java script how to clip the image and image collection files to the shape of vector file in geemap

General questions should be posted on the Discussion Board https://github.com/giswqs/geemap/discussions.
Only open an issue for bug report or feature request.
No difference from JS API: image.clip(geometry) or image.clipToCollection(collection)


Find a better way to recognize Stellar Classic Assets from Soroban Contracts

I took the CODE:ISSUER from the name of the token here:
https://github.com/soroswap/frontend/commit/f2c6987df631a2a64dd0d1bf57af56d955774f7c
This is in order to let the user create a trustline with a stellar classic asset that its not in the list.
However this might have a risk of a user

creating a token with a name with abother CODE:ISSUER
social engineer a second user to use that soroban address
let him think that it is the CODE:ISSUER

We need a way to know 100% if a contract is a wrapped stellar classic asset

I think it could be a check like:
function checkContractId(contractId: string, code: string, issuer: string): boolean {
	const asset = new Asset(code, issuer);
    return asset.getContractId() === contractId;
}


Remove unsupported characters from task name

@ericsciple Sorry for the delay, thank you for your contribution, I am merging it now and it should be live shortly.


Filter result in Nodes vs. Deployments view

Filter in Nodes and Deployments seem not to match up. Also, the filter result in deployments seems to contain multiple identical entries?
Not sure how to interpret the Deployed flag, but if it matches current deployments, the deployment result list should contain entries without end date, or end date in the future, right?
Or, if the Deployed flag means that the node has been deployed in the past, there should be more entries in the Nodes result list?

deployed: has this node ever been, is it or will it be deployed (i.e. do deployment records exists for this node)

Difference between nodes and deployments filter forms is by design: These are views for different record types.

Filter-results contain multiple identical entries: Fixed with https://github.com/mitwelten/mitwelten-db-backend/commit/f4684df656c3d87816c1d7c5ff682a0f4566ba29


Search-box markdown name overflow

Using a long markdown_name for a search-box source definition leads to an ugly text overflow.  Is there anything we can do to allow this sort of longer help string to be available?  Some kind of truncated (cursor?) scrollable div, or a new tooltip field?

From conversation during standup we talked about adding an info icon. Think about how to customize this info button separate from our heuristics for the placeholder text. We talked about the following:
source-definitions: {
  sources: {
    source-1: {
      source: [...],
      entity: true,
      aggregate: "array_d"
    },
    search-box: {
      or: [...]
    }
  }
}

did you paste the wrong thing?  I'd expect something like:
"source-definitions": {
"sources": {
...
"search-box": {
"markdown_name": "shorter inline name",
"comment": "A potentially long name to show on the tooltip with wrapping",
"or": [...]
}
}
}

I think we are talking about the same thing Karl. The json objects are the same, just that you added a markdown_name as well.
I think for markdown_name you are suggesting that be used for the placeholder? Then if it's not defined, we default to our previous heuristics.

Sorry, I didn't see either field in what you pasted... not sure if
that happened on your end or somehow in how the notification got
rendered to me via email.
Anyway, yes, I'm saying keep the current name as placeholder and allow
the extra comment for tooltip documentation.

The changes in https://github.com/informatics-isi-edu/chaise/commit/11130c75bf4a8f1f76f3fcb8c808ea9ed963428f commit makes sure the placeholder doesn't overflow, and behave the same as facet options (where we're showing a ... if text is wider than its container, and the tooltip will show the original text).
I also created a new issue for the proposed changes to the search-box. So I'm going to close this issue.


Nearly Round navigation bar

Describe the project you want to add with tech stack

This project contains a nearly  round navigation bar.Can you assign this task to me?
Expected behavior

Screenshots (optional)

Additional context (optional )

@MohitGupta121 ,
@TusharKesarwani Can you assign this task to me?