Explain what 'bump cacheName' means

The phrase 'bump cacheName' in Step 6 is assuming a lot of pre-knowledge. You're assuming people know you mean increment the string with the variable name cacheName at the top of service-worker.js.

Hi!
Thanks for the feedback. I've rewritten the codelab from scratch and believe I have fixed this issue. The code has been updated, and the new guide is now live.
If you find any issues with the new codelab, please let us know!
Thanks!


Please consider these two changes

Elasticsearch local deployment might also access via APIKEY.
date_histogram is a very powerful aggregation function in Elasticsearch and rawSearch() seems the current only method to perform such a search without violating the norm of Eloquent ORM. So I suggest allowing rawSearch() to perform raw construct aggregations and get the values back.

Thanks @kenken-vpl - the PR's look good, but I would like to add this rawSearch() variant to my tests, could you provide me with some query examples (Ideally 3 if you can)? Then I'll take them from there.
Confirming that you're on Laravel 11, yes?
Happy to accept the APIKEY commit once the tests clear with rawSearch()

Dear David Philip,
Thanks for considering these two enhancements.

About rawSearch below DSL is an example on my data. It aggregates by a 5-minutes interval, for records matching a particular serial number (sn) and category, with time range filtering.

I’ve also included the PHP code fragment that extracts the labels for time axis and the aggregate data.

Most of our projects were still using Laravel 10.x but new ones including this starts moving to Laravel 11.x.

Best Regards,
Ken
    {
        "aggs": {
            "result": {
                "date_histogram": {
                    "field": "ts",
                    "fixed_interval": "5m",
                    "time_zone": "+08:00"
                },
                "aggs": {
                    "avg": { "avg": { "field": "AH" } }
                }
            }
        },
        "size": 0,
        "query": {
            "bool": {
                "must": [
                    { "match": { "sn": "aabbccddeeff" } },
                    { "match": { “category": "r" } }
                ],
                "filter": [
                    {
                        "range": {
                            "ts": {
                                "gte": "2024-04-18T00:00:00Z",
                                "lt": "2024-04-19T00:00:00Z"
                            }
                        }
                    }
                ]
            }
        }
    }

    $agg = self::rawSearch($q)
    $axis = [];
    $data = [];
    foreach ($agg['result']['buckets'] as $row) {
        $axis[] = $row['key_as_string'];
        $data[0][] = rand(0, 100); // $row['avg']['value'];
        if (is_array($field)) {
            for ($i = 1; $i < count($field); $i++) {
                $name = "avg_$i";
                $data[$i][] = rand(0, 100); // $row[$name]['value'];
            }
        }
    }

    return [
        'axis' => $axis,
        'data' => $data,
    ];

On 9 Apr 2024, at 19:17, David Philip @.***> wrote:
Thanks @kenken-vpl https://github.com/kenken-vpl - the PR's look good, but I would like to add this rawSearch() variant to my tests, could you provide me with some query examples (Ideally 3 if you can)? Then I'll take them from there.
Confirming that you're on Laravel 11, yes?
Happy to accept the APIKEY commit once the tests clear with rawSearch()
—
Reply to this email directly, view it on GitHub https://github.com/pdphilip/laravel-elasticsearch/pull/25#issuecomment-2044781590, or unsubscribe https://github.com/notifications/unsubscribe-auth/BHKW7NSATMDAQC7BUKICB5LY4PE5PAVCNFSM6AAAAABF6FAAV2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBUG44DCNJZGA.
You are receiving this because you were mentioned.

@kenken-vpl , having looked into these, my approach is to keep aggregations separate from search queries. Mainly because search comes back to hydrate a model where as aggs usually just bring back a result.
To that, I'll keep rawSearch() for searching and have created a new method for raw aggs rawAggregation() which will format the results - on dev branch now for you to try: https://github.com/pdphilip/laravel-elasticsearch/tree/dev
I updated this branch with your APIKEY suggestions as well.
Please test this and let me know


Add themeVariant and color props to WebPartTitle

Q
A

Bug fix?
[ ]

New feature?
[x]

New sample?
[ ]

Related issues?
fixes #258

What's in this Pull Request?
Two new properties have been added to the webPartTitle control:

color
themeVariant

Either can be used to override the colour of the web part title, to support section backgrounds.
When following the published guidance on enabling section backgrounds, the themeVariant property can be supplied to the webPartTitle component to apply the appropriate color.
Alternatively, the color property can be supplied to provide a direct override of the web part title's foreground color.

Codecov Report

Merging #316 into dev will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev     #316      +/-   ##
==========================================
+ Coverage   72.84%   72.88%   +0.03%
==========================================
  Files          17       17
  Lines         766      767       +1
  Branches      148      149       +1
==========================================
+ Hits          558      559       +1
  Misses        161      161
  Partials       47       47

Impacted Files
Coverage Δ

src/controls/webPartTitle/WebPartTitle.tsx
87.5% <100%> (+0.54%)
: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 e0df446...aeddd6e. Read the comment docs.

@mpowney thank you very much for this! I'll merge this soon.

Thanks @mpowney, this will be available in 1.14.0. I did a change to remove the color property, as this could be better achieved by specifying a custom class (which was already supported).


chore(main): release 1.0.1

:robot: I have created a release beep boop
1.0.1 (2024-08-13)
Bug Fixes

dhis2: allow single lastUpdated param (#50) (df64006)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/BLSQ/openhexa-toolbox/releases/tag/v1.0.1 :sunflower:


Update to next to v12.0.2

~Currently failing because 12.0.1 doesn't include this fix: https://github.com/vercel/next.js/pull/30466, we can either wait for 12.0.2 or switch to canary.~

Blocking the PR because I have found issues in the following two previews while looking for errors:

https://edge-functions-redirects-upstash-git-update-to-next-latest.vercel.sh/ -> navigations don't work
https://edge-functions-query-params-filter-git-update-to-next-latest.vercel.sh/ -> redirects don't work


Upgrade to libXC version 6.0.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

Dear maintainers (@bjodah @jan-janssen @loriab), since we need libXC >=v6.0.0 on conda-forge for one of our projects, this is an attempt to perform the upgrade manually (the bot failed due to changes in the installation directory I suppose). I have also significantly reduced the number of regression tests to shorten the workflow runtimes (a regular execution of all tests is already ensured at other places). If this is not desired, I can of course undo the change. Currently the CI backend seems to have some problems and I am not sure if the failing runs are due to an erroneous recipe or backend.

@conda-forge-admin, please rerender

@conda-forge/core Dear core-team, the problems with failing checks that this PR experiences since a while do not seem to resolve themselves simply by re-running jobs. Is there anything that I can do to avoid the "##[error]An error occurred while provisioning resources (Error Type: Disconnect)." message/error? Many thanks in advance.

Thanks for keeping this PR up-to-date. But I think since #40 was merged, this is now redundant and should be closed, right?

Hi @loriab, the reason for me to start working on 6.0.0 (and not 6.1.0) in the first place was that our code is extensively tested using 6.0.0 and I'm still working on getting test coverage to a more reliable percentage. Since #40 has been merged already I guess for this repo there is no point in merging 6.0.0 as well and would be fine with closing this one.

Since #40 has been merged already I guess for this repo there is no point in merging 6.0.0 as well and would be fine with closing this one.

We could also create a separate branch for 6.0.0 if that would help your package.

We could also create a separate branch for 6.0.0 if that would help your package.

Thanks; let me close this PR and check some things on our side for v6.1.0. If it turns out that for whatever reason v6.0.0 is required I will reach out to you again.


Added angular_scale_turbo to teleop.config.

Updates based on ros-teleop/teleop_twist_joy#11.

LGTM, @paulbovbel to merge.


Improve documentation

This library has no documentation beyond the README, not even in the source code. It's hard to know the difference between methods like: gcpMetadata.project() and gcpMetadata.instance(). It also leads me to question: Do I have to pass the project-id into project() in order to get my project id?
const projectId = await gcpMetadata.project('project-id');
console.log(projectId); // ...Project ID of the running instance

Is your feature request related to a problem? Please describe.
Need more guidance on using this library.
Describe the solution you'd like
Reference docs or better examples and samples. Links to info on the metadata server would be nice as well.

Is this module available for other languages as well? I'm trying to create a sample, but am not sure if I can use this library in other languages besides Node. Or if this library is not recommended for simple use-cases like getting the project ID.

Is this module available for other languages as well? I'm trying to create a sample, but am not sure if I can use this library in other languages besides Node. Or if this library is not recommended for simple use-cases like getting the project ID.

I haven't been able to find anything similar for other languages besides the google auth libraries. It seems functionality with that library also varies between languages.

Hey folks!  Answering a few of these:

It's hard to know the difference between methods like: gcpMetadata.project() and gcpMetadata.instance()
So, for the difference between .instance() and .project() it's mostly just exposing the different end points that are available here:
https://cloud.google.com/compute/docs/storing-retrieving-metadata#project-instance-metadata

Do I have to pass the project-id into project() in order to get my project id?
Nope!  It gets the project Id from the current executing environment automatically.  You should be able to do something like this:

const projectId = await gcpMetadata.project('project-id');

The magic project-id path thing is from here:
https://cloud.google.com/compute/docs/metadata/default-metadata-values#project_metadata
In 99% of cases though, you wouldn't want to do this - you generally want to use the more generic auth.getProjectId() that's described here:
https://github.com/googleapis/google-auth-library-nodejs/#choosing-the-correct-credential-type-automatically
google-auth-library will do all the magic to check env vars, local credentials, and only finally the metadata server.
So on documentation - we have reference documentation, it's just not linked from the README right now 🤦♂
https://googleapis.dev/nodejs/gcp-metadata/latest/miscellaneous/functions.html#project
I have a PR here to at least bring the README closer to what's happening elsewhere.

Is this module available for other languages as well? I'm trying to create a sample, but am not sure if I can use this library in other languages besides Node. Or if this library is not recommended for simple use-cases like getting the project ID.

I don't believe other languages chose to split this functionality out, and rather integrated it into their authentication libraries.  Not sure if that's a good or bad thing :)

The docs look improved since this issue was filed. Feel free to reopen if you need anything else!


Wire up deleteColumn for WDS

AJ-1275: Allow Delete Column in WDS workspaces.
Use the new getCapabilities call to activate the Delete Column extra action in WDS data tables.  This starts bringing Azure data tables to parity with GCP.
Reviewer suggestion: read individual commits which are a intentionally coherent and incremental.
Testing strategy
Existing and new unit tests.  Manual testing using localhost terra-ui against bee backends (both old and new WDS workspaces).
Video of uploading a sample TSV then deleting the two non-primary-key columns:
https://github.com/DataBiosphere/terra-ui/assets/111856/21450275-46ee-47fd-8bc8-45b9f6435efa

Reviewer suggestion: read individual commits which are a intentionally coherent and incremental.
The eslint config file change will be merged independently in https://github.com/DataBiosphere/terra-ui/pull/4619, so this PR will be rebased onto dev after that.


Unable to stop Tracking EP right after startup

At the very beginning of an application startup, the status of TEP is running, but active threads are 0. If we try to shutDown TEP at this point in time it will not succeed since it waits for the number of active threads to come to 0 (which is already the case). When processing loop is triggered it will start threads causing TEP not to be in running state but to have active threads.

This issue has been tackled in commit 11b64fc17a508f311be6c6e00b93a43608e3f7b2.
Henceforth, this issue will be closed as resolved.


Added support for “bang” optionals in classes (by converting to quest…

Hello,
when starting to use Cuckoo on our code, I ran into some compatibility issues. Cuckoo doesn't like all our code :-)
First I added support for vars with the ! instead of ? optional indicator.
Second I noticed that the converter would crash on a var without type that is being initialized inline:
var value = Int(5)
After some investigation it turns out that the tokenizer doesn't now the type of value and crashes the generator. Now at least there is some warning in the generated code. Its not ideal, but I thought I would share it with you to get some feedback on a better implementation.
Regards,
Louis

@lvdstam Hi, thank you for this PR and the discussion. I assigned @FilipDolnik to implement it as we discussed and it's now merged. I'll close this PR and I'd like you to try it out before I release it to CocoaPods. Thanks!

Looks fine to me. I will wait for the cocoapods update and then try it in our project again.

Didn't see the update on the cocoapods repo yet....


Integrate Istio with AWS Certificate Manager Private Certificate Authority

Describe the feature request
It would be great to have Istio ( mainly nodeagent's caclient at this point ) integrate with AWS Certificate Manager Private Certificate Authority to deliver signed certificates from a managed CA instead of running our own.
Describe alternatives you've considered
Affected product area (please put an X in all that apply)
[] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Additional context

I think this will be largely a community driven design/proposal.

I know this is several years later, but in case someone else lands here looking for a solution. Here you go:
GitHub: GitHub - LukeMwila/how-to-setup-external-ca-in-istio: This repository contains steps and source code for configuring an external CA in Istio.
YouTube: How to Setup External CA Integration in Istio - YouTube


Error with test data, informant.py ValueError: cannot set a frame with no defined columns

I was trying to test the installation of phylofisher and keep getting an error at informant.py step from testinstall.sh.
Fisher completes without errors but at the next step it gives the error below.
Traceback (most recent call last):
  File "/Users/yonghengphua/opt/anaconda3/envs/fisher/bin/informant.py", line 278, in <module>
    res = table_with_routes(matrix, routes)
  File "/Users/yonghengphua/opt/anaconda3/envs/fisher/bin/informant.py", line 101, in table_with_routes
    df.loc[taxon] = len(df.columns) * [0]
  File "/Users/yonghengphua/opt/anaconda3/envs/fisher/lib/python3.7/site-packages/pandas/core/indexing.py", line 692, in __setitem__
    iloc._setitem_with_indexer(indexer, value, self.name)
  File "/Users/yonghengphua/opt/anaconda3/envs/fisher/lib/python3.7/site-packages/pandas/core/indexing.py", line 1629, in _setitem_with_indexer
    self._setitem_with_indexer_missing(indexer, value)
  File "/Users/yonghengphua/opt/anaconda3/envs/fisher/lib/python3.7/site-packages/pandas/core/indexing.py", line 1903, in _setitem_with_indexer_missing
    raise ValueError("cannot set a frame with no defined columns")
ValueError: cannot set a frame with no defined columns

Hi @pyongheng,
Thank you for bringing this to our attention.
Can you confirm you are using v1.1.2 of PhyloFisher?
Best,
Robert

Hi @pyongheng,
After looking into this and discussing the matter with @atice, we have concluded that testinstall.sh is antiquated. If your conda install was successful, which it seems to have been, you are fine to proceed.
I am going to go ahead and close the issue. Please let us know if any other issues arise.
Best,
Robert


Application fails to load with Electron v1.1.0 (NOT COMPATIBLE YET!!! DO NOT USE!!!)

Description
When opening the application, it hangs on the 'Starting app' dialog, and refuses to load. I have tried running it via terminal and receive no output. This started yesterday when I updated my version of electron.
Specifications

Version of Electron v1.1.0
Version of Node.js v6.1.0
OS: Archlinux Kernel 4.5.4-1
Architecture x86_64

Electronic WeChat is NOT compatible with Electron v1.1.0 for now.
@jediofthecode
Please use previous versions such as 0.36.7 instead. This issue can be reproduced with the latest electron. I'll investigate my code when I get some time.

Good news! The problem has been solved. Actually it's caused by electron API changes, and there are a lot to keep up.
Luckily, we've got this app running on electron v1.1.0 successfully. I believe it's worth migrating to v1.1.0 for its performance improvement and a bunch of new features.
Electronic WeChat v1.3, which supports electron v1.1.0, will come tomorrow.

Awesome ! thanks for the quick fix!

@jediofthecode
Please checkout the master branch. Packed app will come tonight with release v1.3.0.


Secondary ComposeWindow does not respond to data changes in its composables

This is the smallest reproducible code that I could find. The idea here is to use ComposeWindow in undecorated mode for displaying popup content (let's say combobox or a complex menu). The content in this secondary ComposeWindow is interactive. Clicking on content in that window changes the underlying data and these changes should be reflected on the screen.
Here's the code first:
import androidx.compose.desktop.AppManager
import androidx.compose.desktop.ComposeWindow
import androidx.compose.desktop.Window
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCompositionContext
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp

@ExperimentalComposeUiApi
fun main() {
    Window(
        title = "Main window",
        size = IntSize(400, 300),
        centered = true
    ) {
        val topCountA = remember { mutableStateOf(0) }
        val topCountB = remember { mutableStateOf(0) }
        val secondaryCount = remember { mutableStateOf(0) }

        val topDataA = Data("Text top A", topCountA.value) { topCountA.value++ }
        val topDataB = Data("Text top B", topCountB.value) { topCountB.value++ }
        val secondaryData = Data("Text secondary", secondaryCount.value) { secondaryCount.value++ }

        Column(modifier = Modifier.fillMaxSize()) {
            BoxContent(topDataA)
            Spacer(modifier = Modifier.height(12.dp))
            BoxContent(topDataB)
            Spacer(modifier = Modifier.height(12.dp))

            val parentComposition = rememberCompositionContext()

            Box(
                modifier = Modifier.size(100.dp, 50.dp).background(color = Color.Yellow)
                    .clickable(onClick = {
                        val secondWindow = ComposeWindow()
                        secondWindow.focusableWindowState = false
                        secondWindow.type = java.awt.Window.Type.POPUP
                        secondWindow.isAlwaysOnTop = true
                        secondWindow.isUndecorated = true

                        val locationOnScreen =
                            AppManager.focusedWindow!!.window.locationOnScreen

                        secondWindow.setBounds(
                            locationOnScreen.x,
                            locationOnScreen.y + 300,
                            500,
                            200
                        )

                        secondWindow.setContent(
                            parentComposition = parentComposition
                        ) {
                            BoxContent(secondaryData)
                        }

                        secondWindow.invalidate()
                        secondWindow.validate()
                        secondWindow.isVisible = true
                    })
            ) {
                BasicText(text = "Open second window!")
            }
        }
    }
}

data class Data(val text: String, val counter: Int, val onClick: () -> Unit)

@Composable
fun BoxContent(data: Data) {
    Box(
        modifier = Modifier.size(100.dp, 50.dp)
            .background(color = Color(255, 0, 0, 92))
            .clickable(onClick = {
                data.onClick.invoke()
            })
    ) {
        BasicText(text = "${data.text} ${data.counter}")
    }
}

The top-level window shows two red boxes. Clicking on each box increments the counter which then updates the screen. Clicking on the yellow box creates a ComposeWindow, configures it to be an undecorated "popup", and then places the same "red" composable in it.
Click on the yellow box to see this secondary window. Now click in its red box - nothing changes in the display. Click a couple more times. Now click on the yellow box in the main window again to open another secondary window. Note that in this new window, the counter is displaying correct (updated) count. So the underlying data has changed, but those changes are not being reflected in the secondary window.
This is with build 0.5.0-build224.
The bigger example is in https://github.com/kirill-grouchnikov/aurora where popup content can be interactive - such as toggle menu buttons in popup menus that do not automatically close the popup. In this case, clicking on a toggle menu button should visually update its state, but it doesn't - even though the underlying data is changed as the result of a click.

The line val parentComposition = rememberCompositionContext() comes from my attempt to track the implementation from https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/window/v1/DesktopDialog.desktop.kt;l=86 but it doesn't work

secondaryData by itself is not observable state, so when it is changed in the root composition - it is not visible to the child composition. To make it visible you can use rememberUpdatedState. It wraps the value to mutableStateOf:
val secondaryData by rememberUpdatedState(Data("Text secondary", secondaryCount.value) { secondaryCount.value++ })

So in a more real-world example I'd need to wrap parts of the data with rememberUpdatedState?
Let's say I have a User object from the database. Some user fields are displayed in the main window, and some are displayed in the secondary window. Do I need to wrap each field that is displayed in the secondary window in rememberUpdatedState?
Or in a case of a split button that has the main action and a popup menu with let's say 5 actions. Do I need to wrap the part of the data object that is used to compose the popup menu content in rememberUpdatedState?

I asked the similar question in Compose Compiler issues (recompose the child composition when we use CompositionLocal) and answer was it works as expected (there was another issue though).
Alternative to using rememberUpdatedState is to define setContent's lambda in the Composable function, so compiler will have enough information, when to recompose this lambda:
val secondaryData = Data("Text secondary", secondaryCount.value) { secondaryCount.value++ }

val childContent = @Composable {
   BoxContent(secondaryData)
}

You can also extract the second window to the separate function, that will also work:
val secondaryData = Data("Text secondary", secondaryCount.value) { secondaryCount.value++ }

BoxWithPopup {
   BoxContent(secondaryData)
}

@chuckjaz, is it possible to recompose the content of the child composition (println(data)) when we change data in the parent composition?
import androidx.compose.desktop.ComposeWindow
import androidx.compose.desktop.Window
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCompositionContext
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.delay
import java.awt.Dimension

@ExperimentalComposeUiApi
fun main() = Window {
    val count = remember { mutableStateOf(0) }
    val data = Data(count.value)
    val parentComposition = rememberCompositionContext()

    Box(
        modifier = Modifier.size(100.dp).background(color = Color.Yellow)
            .clickable(onClick = {
                val window = ComposeWindow()
                window.size = Dimension(200, 200)

                window.setContent(parentComposition = parentComposition) {
                    println(data)

                    LaunchedEffect(Unit) {
                        delay(1000)
                        println("change")
                        count.value++
                    }
                }

                window.isVisible = true
            })
    )
}

data class Data(val counter: Int)

Change Data to,
class Data(counter: Int) {
var counter by mutableStateOf(counter)
}
Chuck.
On Tue, Jun 15, 2021 at 3:58 AM Igor Demin @.***> wrote:

@chuckjaz https://github.com/chuckjaz, is it possible to recompose the
content of the child composition (println(data)) when we change data in
the parent composition?
import androidx.compose.desktop.ComposeWindow
import androidx.compose.desktop.Window
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCompositionContext
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.delay
import java.awt.Dimension
@ExperimentalComposeUiApi
fun main() = Window {
val count = remember { mutableStateOf(0) }
val data = Data(count.value)
val parentComposition = rememberCompositionContext()
Box(
    modifier = Modifier.size(100.dp).background(color = Color.Yellow)
        .clickable(onClick = {
            val window = ComposeWindow()
            window.size = Dimension(200, 200)

            window.setContent(parentComposition = parentComposition) {
                println(data)

                LaunchedEffect(Unit) {
                    delay(1000)
                    println("change")
                    count.value++
                }
            }

            window.isVisible = true
        })
)

}
data class Data(val counter: Int)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/compose-jb/issues/777#issuecomment-861401514,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAC22LIZC57BVUSYSWX3ZK3TS4W6VANCNFSM46UBHGGQ
.

Is the expectation that every single data object in the Compose app that has a non-trivial structure - including nested data objects - needs to shadow its attributes by these mutable variables?
I guess at some point somebody will write a generator plugin if this is indeed the recommended approach. Just trying to understand how this is "recommended" / "expected" to work for complex data objects that are driving multiple windows on a large desktop-sized screen.

Change Data to,

Yes, it is one of the ways to solve the issue, but it is not always convinient.
If we don't use a child composition explicitly, just call another Composable, everything works:
import androidx.compose.desktop.Window
import androidx.compose.foundation.layout.Box
import androidx.compose.material.Text
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.ExperimentalComposeUiApi
import kotlinx.coroutines.delay

@ExperimentalComposeUiApi
fun main() = Window {
    val count = remember { mutableStateOf(0) }
    val data = Data(count.value)

    LaunchedEffect(Unit) {
        delay(1000)
        println("change")
        count.value++
    }

    Box {
        Text(data.counter.toString())
    }
}

data class Data(val counter: Int)

Can we theoretically implement automatic recomposition in case above, where we define a child composition via setContent, or it is impossible?

In general, yes. Usually the direction is the opposite however. The data
source is a stream of immutable data (such as a Flow) that is sync'ed to
a single mutable state which is the latest with asState() or similar API.
We started with @Model that would transform a class as you described but
it was too magical and had very difficult to handle edge conditions around
initialization so we removed it.
Reading the above more closely this can be performed with derivedStateOf
instead. For example,
val data = derivedStateOf { Data(count.value) }
data.value will always produce a new Data instance whenever the value of
count.value changes.
Chuck.
On Tue, Jun 15, 2021 at 9:33 AM Kirill Grouchnikov @.***>
wrote:

Is the expectation that every single data object in the Compose app that
has a non-trivial structure - including nested data objects - needs to
shadow its attributes by these mutable variables?
I guess at some point somebody will write a generator plugin if this is
indeed the recommended approach. Just trying to understand how this is
"recommended" / "expected" to work for complex data objects that are
driving multiple windows on a large desktop-sized screen.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/compose-jb/issues/777#issuecomment-861652139,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAC22LMUIKMM5DYUP6KCNMTTS56G5ANCNFSM46UBHGGQ
.

There needs to be something to track that data.counter is invalid when
count.value changes. The dervivedStateOf() technique above will do
that. It ensure first that a new version of Data will be produced for every
new value of count and will also ensure that only one is created per
snapshot and typically on one per value of count.value thought
uniqueness is not guaranteed.
Chuck.
On Tue, Jun 15, 2021 at 9:38 AM Igor Demin @.***> wrote:

Change Data to,
Yes, it is one of the ways to solve the issue, but it is not always
convinient.
If we don't use a child composition explicitly, just call another
Composable, everything works:
import androidx.compose.desktop.Window
import androidx.compose.foundation.layout.Box
import androidx.compose.material.Text
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.ExperimentalComposeUiApi
import kotlinx.coroutines.delay
@ExperimentalComposeUiApi
fun main() = Window {
val count = remember { mutableStateOf(0) }
val data = Data(count.value)
LaunchedEffect(Unit) {
    delay(1000)
    println("change")
    count.value++
}

Box {
    Text(data.counter.toString())
}

}
data class Data(val counter: Int)
Can we theoretically implement automatic recomposition in case above,
where we define a child composition via setContent, or it is impossible?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/compose-jb/issues/777#issuecomment-861655418,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAC22LJJIE5SQEJLBMLJPOLTS56WPANCNFSM46UBHGGQ
.

derivedStateOf is combined here with a full copy of the data part needed for the secondary window, right? That can get pretty heavy for big data objects, or a need to create data "slice" objects to pass around.

If the value is immutable it doesn't need to be copied, a reference is fine.
In general, for Compose, a model must be either immutable or observable, we call objects with this property stable. If it is mutable it must also be observable to be stable If the model is a flow of immutable objects, that is fine, we observe the flow. If the model is mutable we provide mutableStateOf() to allow compose to observe the changes. deriviedStateOf allows observing function results that are produced from values of observable objects.

Reading back to the origin of this issue, the use of setContent to imperatively create a window requires a observable object bridge to track when the lambda passed to setContent changes. Since the call to setContent is in the clickable() callback handler, all the changes in the lambda capture variables must be explicitly observable. If the code was more declarative, then this observation would be handled automatically. For example,
Window {
  val count = remember { mutableStateOf(0) }
  val data = Data(count.value)
  val showWindow by mutableStateOf(false)
  Button(click = { showWindow = !showWindow) }) { Text("Show window") }
  Button(click = { count.value++ }) { Text("Add to count") }
  if (showWindow) {
      Window {
          Text("Data = $data")
      }
  }
}

Changes to count produces a new lambda instance if showWindow is true causing the nested Window to receive an updated captured data value.  It is the imperative nature of the code above that requires the explicit use of observable objects to communicate the changes.

Using showWindow to keep track of whether the Window composable needs to be shown is going to be a lot more complicated for popup windows. A popup window can be opened from any number of comboboxes, split buttons, popup buttons and just plain right-click with the mouse. And a popup window can be closed by clicking an item in it, or clicking outside of the menu, or hitting the Escape key, or the window losing focus, or others.
So it might not be straightforward to flip the showWindow back to false.

In this case create a hoisted model that can be created by the caller but defaults to a local model such as,
fun Popup(popupModel: PopupModel = remember { PopupModel() }, popupContent: @Composable () -> Unit) {
  ...
  if (popupModel.showPopup) {
      Window(content = popupContent)
  }
}

where the popupModel will control whether the sub-window is visible.  Close request would go through  the model provided.

Thanks Chuck. I'll need to think of how this more declarative way of working with secondary windows can be squared with the complex world of handling multi-level popups.
I think this can be closed now as I have a working solution as suggested by Igor, and something to think of as well from Chuck.

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


Hide Advancement Setting

Hi. Can you add an setting to hide the Advancement in the Actor Sheet if you don't use it?
Hide:

Also hide this from the actor directory


fix: fixed lost this handle while parsing schema

Fixes #2170

Just confirmed the bug in a pairing session!
Let me or @brianwarner know if you or your company has any questions about the CLA

@waterfoul I will re-create this PR and give you credit in the changeset. thank you!


Column Major Arrays

#260

not working swig stuff on another branch https://github.com/Dekken/tick/tree/col_maj_swig

Failing due to timeouts (at least)


Fix option validation for log-drivers without it

There is no option validation for "journald" log-driver, so it makes no
sense to fail in that case.
Pro-hint: now journald isn't working in master :)

LGTM

LGTM


Rust-analyzer from v2029 case issues with breakpoints

Hi,
I posted in rust-analyzer repo an issue that occurs from v2029 and code LLDB: no breakpoints are respected, the code just flows when clicking the debug inlay button.
The original issue: https://github.com/rust-lang/rust-analyzer/issues/17568
Is there something to update in code LLDB according to this ?
Right now, RA past v2020 causes unusable debug sessions.
Thanks,

Looks like this was a configuration problem (--release flag)


Refactor to move functionality from controller to model, and adding source link

In the course of adding link functionality to resolve #35, it became apparent how fragile the system by which songs were stored and mutated was because of an over reliance on the controller layer.  To fix this I refactored a lot of functionality into an immutable Song object which will make further changes and maintenance safer.

Thanks i will be check better on weekend but I wanted to know somethign. If I understand  are you searching sequentially on each plugin now ? Before we launched the search on all plugins (using async lib) and we use the result of the first plugin that finished. I don't understand very well why was needed to change the design so much here.

The existing implementation is sequential as well.  It uses the async library, but it uses detectSeries which per the documentation "runs only a single async operation at a time." (https://caolan.github.io/async/docs.html#detectSeries).  The existing implementation was an abuse of that method that precluded any surfacing of plugin errors so I decided to explicitize it with a simpler recursive loop.

Sorry for the delay. Yes it is sequential. It was parallel but it was changed. You are right. The idea is to change the algorithm easily. But still not sure about this changes.
Some parts of the refactor makes not sense to me and goes too beyond of the scope of the issue. Usually I have no problem with a major refactor but I'm not seeing any gain here. I like the idea of a new Song class with immutable properties but it's like here it's mixed the search strategy inside this class and there is too much parameters passing.
I'm using parts of this pull request to add the functionality of Plugin Source / url. But I'm not fully merging this. If you want add me to google hangout to discuss a major refactor like this.

Hey Emilio, I'm free to talk to you tomorrow about this refactor, what email should I add you on hangout on?


Add support for determining MAC address on FreeBSD systems

Background
I noticed that the system node part of the UUID was always random on our FreeBSD systems.  After reviewing the code I see that SystemNodeProvider uses the output of php_uname to determine the OS it's running on.
It doesn't specifically test for FreeBSD, and the default uses a netstat command that isn't supported on FreeBSD.
Solution
I have updated SystemNodeProvider to check for FreeBSD specifically and have included a net stat command that will provide output such as the following:
Name    Mtu Network       Address              Ipkts Ierrs Idrop    Opkts Oerrs  Coll
em0    1500 <Link#1>      08:00:27:71:a1:00    65514     0     0    42918     0     0
em1    1500 <Link#2>      08:00:27:d0:60:a0     1199     0     0      535     0     0
lo0   16384 <Link#3>      lo0                      4     0     0        4     0     0

This should be compatible with the current netstat/ifconfig output parser.
I have also updated SystemNodeProviderTest with the new system.

I took care of the conflicts.
Thank you for contributing! 🎉

Thank you!  I'm sorry I wasn't able to get to that sooner!

No worries. Thanks again!


No horizontal scroll on Data Explorer Filter

It is not possible in my browser (Firefox, macOS) to scroll the filter selection window horizontally. This means I can't read the tag values properly.

It looks like this is a bug. When I use Chrome I can see the scroll bar. Further, in Firefox I can scroll using the horizontal scroll wheel on my mouse, so it's just the UI component that's missing.

Yeah I would expect the width of the list would be adjusted according to the widest element in the list.

looks like this has been fix by adding a horizontal scroll


fliplinux.com

fliplinux.com

Unable to implement.

https://ubuntu.fliplinux.com
there is also subdomains

Duplicate of #52


Make InvalidType picklable

The following error is often occurred while using multiprocessing, then hide details of InvalidType exception.
This PR fixes this problem.
>>> from chainer.utils.type_check import InvalidType
>>> import pickle
>>> pickle.loads(pickle.dumps(InvalidType('foo', 'bar')))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() missing 1 required positional argument: 'actual'

Jenkins, test this please

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

LGTM
Thanks!


Dev working branch port of stabilisation fixes

Overview
Replicates Stabilisation fixes back in to dev_working
Changes

Fixes: #1752  .

Updated @StephenHodgson

@DDReaper we probably should have waited to merge this until stabilization got released into master.

rofl, nah. Dev_Working is development and (should) be ahead of Master / Stabilisation really.  Fixes can be tested much more easily in dev.


Add considerations about metric evolution?

@sumeer said in https://github.com/RichiH/OpenMetrics/issues/2#issuecomment-316855917
"There is still the issue that different versions of the same library may have incompatible metric types if the developer is not careful, but that should be less common, especially if the standard provides guidelines on how users should evolve their metric (such guidelines are beneficial even in a backend that doesn't enforce the type at data ingestion time, for queries to work sanely across library versions)."

I'm not sure what we can do here beyond documenting that basically all changes are breaking (I think changing HELP and appending to an enum are the only things that are okay), and that accordingly you need to be careful.

Seems about right. As it's non-obvious to a large portion of traditional sysadmins, this bears (short) repeating.

Would there be two decisions to be made here?

Should we have a version at the top of the metrics format?
How should future changes be made? (i.e. should they all be additive like some Protobufs protocols?)

This kssje is about individual metrics changing over time, e.g. adding a label. You're looking more for #27

@brian-brazil I was thinking less about meta-data specifically and more about the format (meta and metrics) as a whole. I assume we'll want to version it for library authors to be able to specify what they support.

The libraries we're talking about in this issue are the ones using the instrumentation.

How about to use an implicit and always assigned version label.
I'm thinking about having some kind of hash out of HELP value put into some __version ancillary label. So whenever the meaning of a metric changes and HELP is changed accordingly, it starts to being recorded as a separate, new time serie.
The backend can give control to the user or make some implicit magic with it.

I'm thinking about having some kind of hash out of HELP value put into some __version ancillary label.

This is not a label semantically, as you can't aggregate it away sanely.
Users will change the meaning of metrics over time, and are unlikely to fully follow any versioning we set (particularly across organisations). Thus the most we can do it point out that it's going to happen, and will break things in almost all cases.


This is great! Can you add testing though?

I think that adding a set of unit tests would complement this boilerplate and help people new to Serverless.
Regardless, thanks for assembling and sharing this project!

Yeah! This is a great idea!
But, a need help to find a simple and lightweight way to mock AWS Resources locally.
Do you have suggestions?


Parameter not retrieved from request body in POST?

The docs say:

Parameters which do not correspond to a URL path parameter will be treated as query parameters for GET and DELETE requests, or part of the request body for POST, PUT, and PATCH requests.

which let me to expect that POSTing to this handler
def search_docs(term: typesystem.String):
    print('term ', term)
    # do stuff
    return result

with a json body of {'term': 'blabla'} would fill the 'term' parameter from the body with the value 'bla', instead of None.
Tested in ApiStar 0.2.10.
Route is: Route('/api/search', 'POST', search_docs),
If OTOH I use:
def search_docs(data: RequestData):
    print('term ', data['term'])
    # do stuff
    return result

it works fine

Those docs were out of date and have just recently been updated.
Scalars (int, str, etc...) default to query parameters. List and Dict types default to the request body.
One feature on the to-do list is ensuring that you can control the locations if you need to change from the default behavior.

Thx Tom.
Based on the current docs "Parameters which do not correspond to a URL path parameter will be treated as query parameters for scalar types such as int or str, or part of the request body for composite types of dict and list." it is not clear (to me) what to do if I want to extract a parameter from the body automatically.
Given a body: {"term": "blabla"} What should be the function signature to extract the parameter "term"?
Neither
def search_docs(term: typesystem.String):
nor
def search_docs(term):
work.

@tomchristie Same question as @mjmare here!

@mjmare, I don't think there's a way to extract post data into function parameters. As you mentioned, the following way works, right? You get post data inside view function.
def search_docs(data: RequestData):
    print('term ', data['term'])
    # do stuff
    return result

@randvis Correct.


Include searchable metadata and keywords in compressed file formats

[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Is your feature request related to a problem? Please describe.
I have a large and growing collection of solution design diagrams scattered across local folders and in SharePoint as dictated by the various projects I work on.  Organising these files so that I can easily search and find diagrams based on the content proves difficult.
Describe the solution you'd like
To simplify finding relevant diagrams myself and colleagues need to search embedded text of diagrams for metadata or content within the DRAWIO/XML, PNG, PDF, or SVG files.  While it is possible to search and index words in non-compressed drawio/xml files, files saved/exported to PNG's, SVG or PDF format always include a compressed mxfile diagram stream.  Therefore I am unable to search the collection of files for relevant content.
If diagrams.net would permit inclusion of "metadata" or "tags" or "keywords" to be added at file level outside of the compressed page data in all file formats, we'd be able to search documents for keywords even when in compressed format.  PDF's have such as feature by embedding XMP metadata in a document as a stream.  XML and SVG files could include an additional uncompressed keyword tag separate to the diagram/page content.
This is not about the "tags" associated with elements of diagrams that may be edit with "Edit Data" function, it relates to metadata (author, creation date, modified date, type of editor) and keywords about the file itself.
Describe alternatives you've considered
Options I've considered:

Store sufficient detail in the file names.  This is unrealistic when the content of the diagrams may have many concepts and entities that would be too long to list in the file name .
Always save files as uncompressed XML therefore enabling a full text search on its contents.  Results in very large XML files and would require saving diagrams more than once if PDF/PNG/SVG were also required.
Maintain an external register of all diagrams and tags/metadata about the content of the diagrams.  Very inconvenient and could rapidly get out of sync with reality.

Additional context
Embedding XMP metadata in a PDF document:  https://docs.devexpress.com/OfficeFileAPI/403105/pdf-document-api/xmp-metadata

I am still looking for a solution to this problem.  Any chance it can be considered a feature request?

We conducted additional tests on the search functions of OneDrive and Google Drive. Neither service appears to include data inside .drawio files, even when these files are uncompressed. Furthermore, only Google Drive seems to search descriptions added through its web interface, whereas OneDrive does not include file descriptions added in its web interface in search results. In summary, the best approach is to add a description to the file using the cloud storage web interface, though this may not always ensure inclusion in search results.


Pagination not working properly for issues in some cases

Gogs version (or commit ref): <IP_ADDRESS>8

Hello,
We currently have a webhook on our gogs instance that check code for unused classes/files on each push on a specific branch.
So far, so good, that works as expected.
The called script pushes new issues on gogs itself, specifying the class name, file path and so on.
So far, so good, still working.
The "small" issue is that many issues are created at the same time. This leads to a nice issue on the «issue display page», where we're in fact unable to sort the issues by age (many are created at the same minute). It also appears the pagination goes amok, as page 2 displays the 4 last issues of page one, then 6 "new" issues that weren't displayed on the later page, and this is for every pagination.
I'm not sure if this has to do with the fact we create many issues at the same time on the same repository, but I suspect it plays a role as the issue IDs aren't following on the page (with default order)…
It might be useful to order the issues with two keys:

creation datetime
issue id

That would sort out the problem in a smart way, and shouldn't really impact the other ordering stuff in a negative way:
as the ID seems to be a simple increment, the older issues will get a smaller ID while the newer a bigger one.
Cheers,
C.

No, it's not ever possible for a human create two issues in the same nano second.
Please test and verify your situation on https://try.gogs.io or latest master branch.


Move neostandard to devDependencies

When researching repos that would be good candidates for canary tests (https://github.com/neostandard/neostandard/pull/85) I noticed that it had accidentally been added as a dependency when moved to from eslint-config-standard
Would you be interested in being added to the canary tests?

Hello @voxpelli ,
It is on dependencies by mistake, thanks for noticing.
Also, yes, I am interested in being added to the canary tests.


sort the results from "pachctl list-*" commands

I can't seem to find related topics, so hope this is not a duplicate.
Taking repos as an example: as repos get larger, it makes harder to spot the exact repo we are interested in. It'd be great to have additional command line arguments that facilitate sorting the list. Possibly by CREATED and by SIZE, and both increasing and decreasing.
Thank you

Hi @willguxy. We can definitely add some convenience flags like this. After v1.4 lands, we plan to do a bunch small usability polishes like this so thanks for pointing that out. If you have others please open issues for them too. :)
In the meantime, you can certainly use either unix or Go sorting functions to accomplish this in the short-term. You can pipe pachctl list-repo to unix sort or use Go's sorting function from the Go client.

stale


Azure Key Vault not being successfully mounted on pod

What steps did you take and what happened:
Followed MS guide to mount Azure Key Vault Secrets into pods: MS Guide.

Created Service Principal and key vault instance and granted permissions for SP to access the key vault and retrieve secrets

Installed the Secrets Store CSI driver and the Azure Key Vault provider for the driver with:

helm repo add csi-secrets-store-provider-azure https://raw.githubusercontent.com/Azure/secrets-store-csi-driver-provider-azure/master/charts
helm install csi-secrets-store-provider-azure/csi-secrets-store-provider-azure --generate-name

Created the following SecretProviderClass object:

apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
  name: "keyvault"
spec:
  provider: azure
  parameters:
    keyvaultName: "dev1-keyvault"
    objects:  |
      array:
        - |
          objectName: example
          objectType: secret
          objectVersion: ""
        - |
          objectName: secret1
          objectType: secret
          objectVersion: ""
    tenantId: "X-X-X-X-X"

Deployed following single pod where secrets should be mounted:

kind: Pod
apiVersion: v1
metadata:
  name: busybox-keyvault
spec:
  imagePullSecrets:
   - name: <credentials_repo>
  containers:
   - name: busybox
     image: <private_repo>
     command:
       - sleep
       - "3600"
     volumeMounts:
      - name: secrets
        mountPath: "/mnt/secrets"
        readOnly: true
  volumes:
    - name: secrets
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: "keyvault"
        nodePublishSecretRef:
          name: secrets-store-creds

What did you expect to happen:
Secrets mounted into pod under the '/mnt/secrets' folder
Anything else you would like to add:
Pod seems stuck into 'ContainerCreating' Status.
By describing the pod following messages can be seen:
Events:
  Type     Reason       Age    From               Message
  ----     ------       ----   ----               -------
 Normal   Scheduled    8m7s                default-scheduler  Successfully assigned keyvault-test/busybox-keyvault to aks-workflow-69744767-vmss000001
  Warning  FailedMount  91s (x3 over 6m4s)  kubelet            Unable to attach or mount volumes: unmounted volumes=[secrets], unattached volumes=[secrets default-token-lp5kh]: timed out waiting for the condition
  Warning  FailedMount  3s (x4 over 6m7s)   kubelet            MountVolume.SetUp failed for volume "secrets" : kubernetes.io/csi: mounter.SetupAt failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded

A ticket was created directly with the Azure technical support from Microsoft. Given this is an open source project not supported by them, we were advised to create an issue.
Cluster was created after March 2020.
Most of the time, after hours, they eventually get created and secrets are mounted. Sometimes it can take 2 hours, sometimes 12 and, sometimes, even 24 hours later, secrets are not mounted.

Which access mode did you use to access the Azure Key Vault instance:
Service Principal
Environment:

Kubernetes version: v1.16.10
Cluster type: AKS

Could you provider more info -

Which version of the driver and provider are running on the cluster?
Logs from the driver pods running on the same node as the workload
Logs from providers pods running on the same node as the workload
kubectl get nodes -o wide output

Thanks for the response.
1. Which version of the driver and provider are running on the cluster?
Version of the driver is 0.0.14
Version of the provider is 0.0.9
2. Logs from the driver pods running on the same node as the workload
I1019 16:19:01.825797       1 main.go:110] Version: v1.2.0-0-g6ef000ae
I1019 16:19:01.825841       1 main.go:120] Attempting to open a gRPC connection with: "/csi/csi.sock"
I1019 16:19:01.825851       1 connection.go:151] Connecting to unix:///csi/csi.sock
I1019 16:19:03.898564       1 main.go:127] Calling CSI driver to discover driver name
I1019 16:19:03.898644       1 connection.go:180] GRPC call: /csi.v1.Identity/GetPluginInfo
I1019 16:19:03.898681       1 connection.go:181] GRPC request: {}
I1019 16:19:03.922548       1 connection.go:183] GRPC response: {"name":"secrets-store.csi.k8s.io","vendor_version":"0.0.13"}
I1019 16:19:03.922993       1 connection.go:184] GRPC error: <nil>
I1019 16:19:03.922999       1 main.go:137] CSI driver name: "secrets-store.csi.k8s.io"
I1019 16:19:03.923050       1 node_register.go:58] Starting Registration Server at: /registration/secrets-store.csi.k8s.io-reg.sock
I1019 16:19:03.923192       1 node_register.go:67] Registration Server started at: /registration/secrets-store.csi.k8s.io-reg.sock
I1019 16:19:03.954512       1 main.go:77] Received GetInfo call: &InfoRequest{}
I1019 16:19:04.954576       1 main.go:77] Received GetInfo call: &InfoRequest{}
I1019 16:19:04.990749       1 main.go:87] Received NotifyRegistrationStatus call: &RegistrationStatus{PluginRegistered:true,Error:,}

3. Logs from providers pods running on the same node as the workload
E1029 17:33:40.434585       1 grpc.go:29] GRPC error: failed to mount objects, error: failed to get objectType:secret, objectName:example, objectVersion:: keyvault.BaseClient#GetSecret: Failure sending request: StatusCode=0 -- Original Error: context deadline exceeded
I1029 17:35:42.482023       1 provider.go:243] unmarshaled keyVaultObjects: [{example   secret  } {secret1   secret  }]
I1029 17:35:42.482431       1 provider.go:244] keyVaultObjects len: 2
I1029 17:35:42.483008       1 auth.go:151] azure: using client_id: 3f4f##### REDACTED #####43c3, client_secret: uX6u##### REDACTED #####gQ4~ to retrieve access token
E1029 17:37:42.461313       1 server.go:54] failed to process mount request, error: keyvault.BaseClient#GetSecret: Failure sending request: StatusCode=0 -- Original Error: context deadline exceeded
failed to get objectType:secret, objectName:example, objectVersion:
github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider.wrapObjectTypeError
        /home/azureuser/agent/_work/24/s/go/src/github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider/provider.go:423
github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider.(*Provider).GetKeyVaultObjectContent
        /home/azureuser/agent/_work/24/s/go/src/github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider/provider.go:305
github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider.(*Provider).MountSecretsStoreObjectContent
        /home/azureuser/agent/_work/24/s/go/src/github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider/provider.go:262
github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/server.(*CSIDriverProviderServer).Mount
        /home/azureuser/agent/_work/24/s/go/src/github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/server/server.go:52
sigs.k8s.io/secrets-store-csi-driver/provider/v1alpha1._CSIDriverProvider_Mount_Handler.func1
        /home/azureuser/agent/_work/24/s/go/pkg/mod/sigs.k8s.io/secrets-store-csi-driver@v0.0.14/provider/v1alpha1/service.pb.go:687
github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/utils.LogGRPC
        /home/azureuser/agent/_work/24/s/go/src/github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/utils/grpc.go:27
sigs.k8s.io/secrets-store-csi-driver/provider/v1alpha1._CSIDriverProvider_Mount_Handler
        /home/azureuser/agent/_work/24/s/go/pkg/mod/sigs.k8s.io/secrets-store-csi-driver@v0.0.14/provider/v1alpha1/service.pb.go:689
google.golang.org/grpc.(*Server).processUnaryRPC
        /home/azureuser/agent/_work/24/s/go/pkg/mod/google.golang.org/grpc@v1.31.0/server.go:1180
google.golang.org/grpc.(*Server).handleStream
        /home/azureuser/agent/_work/24/s/go/pkg/mod/google.golang.org/grpc@v1.31.0/server.go:1503
google.golang.org/grpc.(*Server).serveStreams.func1.2
        /home/azureuser/agent/_work/24/s/go/pkg/mod/google.golang.org/grpc@v1.31.0/server.go:843
runtime.goexit
        /usr/lib/go-1.15/src/runtime/asm_amd64.s:1374

4. kubectl get nodes -o wide output
NAME                                STATUS   ROLES   AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
aks-workflow-69744767-vmss000000    Ready    agent   70d   v1.16.10   <IP_ADDRESS>    <none>        Ubuntu 16.04.6 LTS   4.15.0-1093-azure   docker://3.0.10+azure
aks-workflow-69744767-vmss000001    Ready    agent   70d   v1.16.10   <IP_ADDRESS>    <none>        Ubuntu 16.04.6 LTS   4.15.0-1095-azure   docker://3.0.10+azure
aks-workflow-69744767-vmss000002    Ready    agent   70d   v1.16.10   <IP_ADDRESS>    <none>        Ubuntu 16.04.6 LTS   4.15.0-1092-azure   docker://3.0.10+azure```

Please do let me know if any other log is required.

Thank you for the logs.
E1029 17:37:42.461313       1 server.go:54] failed to process mount request, error: keyvault.BaseClient#GetSecret: Failure sending request: StatusCode=0 -- Original Error: context deadline exceeded

This seems to be a timeout error while requesting for a token from AAD and using that to access Key Vault.

Do you have any firewall rules blocking egress?
Network policies configured on the cluster that's blocking traffic?
Are you able to get on the node and check if there is connectivity to AAD from the node?

Thank you for the investigation. We weren't able to understand that was the problem from the logs.
We have been doing tests today and we have found out the problem was the firewall blocking the outgoing traffic to the key vault.
Working now. Thanks

I've had the same problem using AKS. I realized the kubernetes cluster vnet was not configured to use Azure-provided DNS server, but Google and Microsoft defined mannually. Because of that, some requests to Azure KeyVault was done via internet, and others via private endpoint. That's why intermittent. I forced Azure-provided DNS, to get only private endpoint, and it was solved. I was not expecting this communication through internet, and probably it was blocking as mentioned by @JuanFryS. Just adding this information to help others.


[Feature Request] Could checkbox group returns value sorted by checkbox's order?

Existing Component
是
Component Name
checkbox-group
Description
Checkbox group returns array value sorted by update time now. Could it returns value sorted by checkbox's order?

Sorry, this doesn't seem to be a common use case, so we'll not be supporting this.


[SPARK-46881][CORE] Support spark.deploy.workerSelectionPolicy

What changes were proposed in this pull request?
This PR aims to introduce a new configuration, spark.deploy.workerSelectionPolicy, in order to allow users to decide a
policy to assign executors on one of the assignable workers.

CORES_FREE_ASC: Choose a worker with the least free cores
CORES_FREE_DESC: Choose a worker with the most free cores (default)
MEMORY_FREE_ASC: Choose a worker with the least free memory
MEMORY_FREE_DESC: Choose a worker with the most free memory
WORKER_ID: Choose a worker with the smallest worker id

Why are the changes needed?
This is very helpful for users to manage Spark Standalone cluster dynamically based on their workload and underlying cluster management policy.
Does this PR introduce any user-facing change?
No. The default policy, CORES_FREE_DESC, follows the existing behavior.
How was this patch tested?
Pass the CIs with the newly added test cases.
Was this patch authored or co-authored using generative AI tooling?
No.

Could you review this when you have some time, @viirya ?

Thank you, @viirya !

Merged to master for Apache Spark 4.


Update apps.md

Adding a new application submission for MeetMap.

@edo1991 thanks for the pull request! We're trying to make sure these are listed alphabetically for now. Do you mind doing for your addition?

Hi!! I've maintained the alphabetical order of the list!

cool

thanks @edo1991!


Fixing #58

Fixing issue #58

I made it wrong in a different version, I will fix and send again.
Sorry.


Changed == to === (strict)

Now it works.

Don't make pull requests for master, only for development.


gdk cannot build with -luuid mingw64

I installed mingw64 through msys2.
$ pkg-config --cflags --libs gtk+-2.0
-mms-bitfields
-pthread
-mms-bitfields
-IC:/msys64/mingw64/include/gtk-2.0
-IC:/msys64/mingw64/lib/gtk-2.0/include
-IC:/msys64/mingw64/include/pango-1.0
-IC:/msys64/mingw64/include/fribidi
-IC:/msys64/mingw64/include
-IC:/msys64/mingw64/include/cairo
-IC:/msys64/mingw64/include/atk-1.0
-IC:/msys64/mingw64/include/cairo
-IC:/msys64/mingw64/include/pixman-1
-IC:/msys64/mingw64/include
-IC:/msys64/mingw64/include/freetype2
-IC:/msys64/mingw64/include
-IC:/msys64/mingw64/include/harfbuzz
-IC:/msys64/mingw64/include/libpng16
-IC:/msys64/mingw64/include/gdk-pixbuf-2.0
-IC:/msys64/mingw64/include/libpng16
-IC:/msys64/mingw64/include
-IC:/msys64/mingw64/lib/libffi-3.2.1/include
-IC:/msys64/mingw64/include/glib-2.0
-IC:/msys64/mingw64/lib/glib-2.0/include
-IC:/msys64/mingw64/include
-LC:/msys64/mingw64/lib
-lgtk-win32-2.0
-lgdk-win32-2.0
-lgdi32
-limm32
-lshell32
-lole32
-Wl,-luuid
-lpangowin32-1.0
-lpangocairo-1.0
-lpango-1.0
-latk-1.0
-lcairo
-lgdk_pixbuf-2.0
-lgio-2.0
-lgobject-2.0
-lintl
-lglib-2.0

$ find /mingw64/ -name "*uuid*"
/mingw64/include/glib-2.0/glib/guuid.h
/mingw64/lib/python3.7/test/test_uuid.py
/mingw64/lib/python3.7/test/__pycache__/test_uuid.cpython-37.opt-1.pyc
/mingw64/lib/python3.7/test/__pycache__/test_uuid.cpython-37.opt-2.pyc
/mingw64/lib/python3.7/test/__pycache__/test_uuid.cpython-37.pyc
/mingw64/lib/python3.7/uuid.py
/mingw64/lib/python3.7/__pycache__/uuid.cpython-37.opt-1.pyc
/mingw64/lib/python3.7/__pycache__/uuid.cpython-37.opt-2.pyc
/mingw64/lib/python3.7/__pycache__/uuid.cpython-37.pyc
/mingw64/x86_64-w64-mingw32/include/ksuuids.h
/mingw64/x86_64-w64-mingw32/include/uuids.h
/mingw64/x86_64-w64-mingw32/lib/libmfuuid.a
/mingw64/x86_64-w64-mingw32/lib/libuuid.a
/mingw64/x86_64-w64-mingw32/lib/libwbemuuid.a
/mingw64/x86_64-w64-mingw32/lib/libwmcodecdspuuid.a

$ cd ~/go/src/github.com/mattn/go-gtk

$ make clean
rm -f _example/action/action  ...

$ make
cd pango && go get -x
WORK=C:\Users\User\AppData\Local\Temp\go-build946488878
cd glib && go get -x
WORK=C:\Users\User\AppData\Local\Temp\go-build579667830
cd gdk && go get -x
WORK=C:\Users\User\AppData\Local\Temp\go-build641725406
mkdir -p $WORK\b001\
cd C:\Users\User\go\src\github.com\mattn\go-gtk\gdk
pkg-config --cflags -- gdk-2.0 gthread-2.0
pkg-config --libs -- gdk-2.0 gthread-2.0
go build github.com/mattn/go-gtk/gdk: invalid flag in pkg-config --libs: -Wl,-luuid
make: *** [Makefile:8: all] Error 1

Please specify CGO_LDFLAGS_ALLOW.

I could not get it to work with that flag. Apparently it's some kind of bug. See this other project's recommendation: https://github.com/gotk3/gotk3/wiki/Installing-on-Windows

I could not get it to work with that flag.

What the value did you set the environment variable? You should set the flag or .*.

FYI, if you did like the recommendation, as far as i know, it will be fail.

What the value did you set the environment variable? You should set the flag or .*.

I tried that.
$ CGO_LDFLAGS_ALLOW='.*'

It did not work.

FYI, if you did like the recommendation, as far as i know, it will be fail.

Yes, their suggestion did not work for this package, but it worked for their package.

You must export CGO_LDFLAGS_ALLOW from your shell.

You must export CGO_LDFLAGS_ALLOW from your shell.

Yes, this fixed it. Sorry. I did not realize the difference between setting bash variables and environment variables.


Using IPv6 address in work-spaces does not connect

IPv6 format does seem to connect to Broker.
https://[put address here]:5444

https://github.com/Microsoft/RTVS-docs/issues/50


LifetimeDependenceScopeFixup: handle nested access

After extending access scopes, rewrite the mark_depenendence to be on the outermost scope.
NFC without -enable-experimental-feature NonescapableTypes

@swift-ci smoke test

@swift-ci smoke test


[Bug] useRowSelect and useTable#getSubRows does not work as expected

Describe the bug (required)
TLDR; When getRows defined, subRows are not get selected when parent selected.
Looking into the src code, https://github.com/tannerlinsley/react-table/blob/master/src/plugin-hooks/useRowSelect.js#L170
useSelected retrieve subRows using getSubRow(), it pass the row instance instead of row original data. Which cause the problem.
I think we are safe to use row.subRows here since subRows already computed inside useTable https://github.com/tannerlinsley/react-table/blob/master/src/hooks/useTable.js#L549-L558

Provide an example via Codesandbox! (required)
https://codesandbox.io/s/priceless-currying-5mwss?file=/src/App.js
Steps To Reproduce (required)
Steps to reproduce the behavior:

Go to
Click on first row
Click on expand

Expected behavior (Recommended)
All sub rows should get selected
Additional context
Add any other context about the problem here.

This should be fixed in the latest version.

@tannerlinsley  I also tried this one for v7.5.2, the problem still exist ?

@tannerlinsley this is definitely still a bug and should be re-opened. You can confirm it via the original codesandbox link (with the latest react-table version).

There is a PR maybe related this problem #2886, looks like @tannerlinsley working on the next version and not accept any PR for v7. :-(


Pre-cache images?

[x] Show thumbnails
[x] Show artworks
[ ] Show install shots
[x] Artwork View Controllers?

They will need to cancel when a VC disappears though.

@orta I can really FEEL the show installs not being cached...any chance of getting that in before EOD tomorrow?

So, the problem here is that we have to make multiple network calls in order to get the install shots, so precaching here is super slow - it is actually doing it, but I was wondering if I could find a better way to do it.

I found a way, which seems to hit pretty often.
Because a show's thumbnail could either be an install shot or an artwork, I check to see if it's already downloaded the show installation shot image, move that to be the first installation shot we show and use the pre-cached version.


GH-4592 Replace a Junit4 Suite with v5 DynamicTest

Also replaces a static so more tests should be runnable in parallel in the future.
GitHub issue closes #4592

PR Author Checklist (see the contributor guidelines for more details):

[x] my pull request is self-contained
[ ] I've added tests for the changes I made
[ ] I've applied code formatting (you can use mvn process-resources to format from the command line)
[x] I've squashed my commits where necessary
[x] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

@abrokenjester I think I got the upgrade of the manifest based tests to junit5 done. I removed some old deprecated test classes now that we are going to go to v5 as they are not compatible. They would need a similar non compatible rewrite to make work.

@JervenBolleman I'll try to take at look at this as soon as I can.

@hmottestad I am rebasing this so that you don't need to deal with the mergeconflicts.

@hmottestad I am rebasing this so that you don't need to deal with the mergeconflicts.

Thanks!

@hmottestad the verify/integration-tests stage passes on my laptop. Running it on a second desktop machine to see if I can reproduce locally the.

@kenwenzel would you mind having a look at this failure. The tests pass for native and memory on all my systems. However, on my desktop and the github action I have strange errors. One difference is that my laptop is fedora while desktop and github action are ubuntu based.

@kenwenzel would you mind having a look at this failure. The tests pass for native and memory on all my systems. However, on my desktop and the github action I have strange errors. One difference is that my laptop is fedora while desktop and github action are ubuntu based.

Hi @JervenBolleman,
the NPEs are due to lazy values. Maybe the hash code function tries to initialize these values after the store has already been closed.
I've improved the handling of lazy values in this commit:
https://github.com/eclipse-rdf4j/rdf4j/commit/9b0622a4224587dfc539e9c5ca948f29d1461b4c
This should ensure that values do not leave the SAIL in an uninitialized state.
It may be the case that I've overseen something.

@kenwenzel @hmottestad I found that part of the reason is that these tests now run concurrently and where sharing state. I fixed just this and will push a new commit.

This is pretty sweet! I can debug a single test in IntelliJ!

@hmottestad  sorry for the force push to undo the merge commit :(

I believe that the missing annotation was not the problem. For me other
classes with eclipse it works with just the annotation on the super super
class. I am going to make sure they ran in the logs to be sure.
On Fri, Nov 10, 2023, 17:30 Håvard M. Ottestad @.***>
wrote:

@.**** commented on this pull request.
In
testsuites/geosparql/src/main/java/org/eclipse/rdf4j/testsuite/query/algebra/geosparql/GeoSPARQLManifestTest.java
https://github.com/eclipse-rdf4j/rdf4j/pull/4593#discussion_r1389625520:

manifests.add(

		GeoSPARQLManifestTest.class.getClassLoader()

				.getResource("testcases-geosparql/functions/manifest.ttl")

				.toExternalForm());

while (!manifests.isEmpty()) {

	String pop = manifests.pop();

	SPARQLQueryTestManifest manifest = new SPARQLQueryTestManifest(pop, null, false);

	tests.addAll(manifest.getTests());

	manifests.addAll(manifest.getSubManifests());

}

Object[][] result = new Object[tests.size()][6];

tests.toArray(result);

return result;

public Collection tests() {

There are several other similar methods that were missing the @testfactory
https://github.com/testfactory annotation. Did you look over the rest
of the code?
—
Reply to this email directly, view it on GitHub
https://github.com/eclipse-rdf4j/rdf4j/pull/4593#discussion_r1389625520,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHQYFJ77D5YYXEWO5T5AALYDZJDRAVCNFSM6AAAAAAYKM6VKCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMRVGE2TINRUHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@hmottestad  you where completely right I had missed a @testfactory and it was needed! thanks and have a good weekend.


⚠ Unifi Controller has degraded performance

In ad8099b, Unifi Controller (https://unifi.vflits.com/) experienced degraded performance:

HTTP code: 200
Response time: 4829 ms

Resolved: Unifi Controller performance has improved in b40b465 after 14 minutes.


quasiquotes ?

Sometime, I just want to copy paste some javascript in my scala code. It would be helpfull to have something like this:
def someCode: Unit =
  js"""couple
        lines
        of
        javascript"""

and maybe something like:
def twice(a: String): String = js"$a.repeat(2)"

Concrete example.
I was working on a PageDown hook, see https://code.google.com/p/pagedown/wiki/PageDown. I wanted to try the following function:
   converter.hooks.chain("preBlockGamut", function (text, runBlockGamut) {
        return text.replace(/^ {0,3}``` *\n((?:.*?\n)+?) {0,3}``` *$/gm, function (whole, inner) {
            return "
" + runBlockGamut(inner) + "
\n";
        });
    });

It's not trivial to reimplement in scalajs. I would like to have something like:
trait MarkdownConverter extends js.Object {
  def makeHtml(value: String): String = js.native
  def addHook = js"""
   $this.hooks.chain("preBlockGamut", function (text, runBlockGamut) {
        return text.replace(/^ {0,3}``` *\n((?:.*?\n)+?) {0,3}``` *$/gm, function (whole, inner) {
            return "
" + runBlockGamut(inner) + "
\n";
        });
    });
  """
}

the compiler should not complain about hooks not been defined on MarkDownConverter but simply copy paste that javascript and replace the variable $this when translated to javascript.
Currently I have to do the following:
add the following code to a page
function preBlockGamutHook(converter) {
  converter.hooks.chain("preBlockGamut", function (text, runBlockGamut) {
    return text.replace(/^ {0,3}``` *\n((?:.*?\n)+?) {0,3}``` *$/gm, function (whole, inner) {
        return "
" + runBlockGamut(inner) + "
\n";
    });
  });
}

add this wrapper:
object MarkdownHookHelper extends js.GlobalScope {
  def preBlockGamutHook(converter: MarkdownConverter): Unit = js.native
}

We won't do this. In Scala.js, we deliberately refuse to do anything like that. This breaks all the abstractions that the compiler and the optimizer can use. Other languages compiling to JS offer such a "feature" because they lack enough sane interop features not to offer it as a workaround.
In Scala.js you can do this:
val converter: js.Dynamic = ???
converter.hooks.chain("preBlockGamut", { (text: js.Dynamic, runBlockGamut: js.Dynamic) =>
  text.replace(new js.RegExp(raw"""^ {0,3}``` *\n((?:.*?\n)+?) {0,3}``` *$""", "gm"), {
    (whole: js.Dynamic, inner: js.Dynamic) =>
      "
" + runBlockGamut(inner) + "
\n"
  })
})

I spent 2 minutes adapting the syntax (in place). And for this work I gained the benefits of sane scoping, direct interop with the surrounding Scala code, and when reading this code, I don't have to context-switch between Scala syntax and JS syntax.
Also see this StackOverflow question: How to embed javascript code directly in scala.js?

@sjrd I do not fully agree with you reasoning (but with your conclusion). It is absolutely feasible (but hard) to implement js quasiquotes using macros.
This of course goes far beyond just copy-pasting code together. The macro would need a fully-fledged JavaScript parser that could translate the code to Scala.js style code (this translation is easy, what is hard is the parsing).
Whether or not this is worth the effort (I doubt it), is one question. In any case, this should not be in the Scala.js core, since it is completely independent of it (and our dynamically typed interop is sufficiently stable to separate it out).
@MasseGuillaume hope that sheds some more light on this.

Parsing Javascript isn't that hard. It's less than 10 lines of code:
libraryDependencies +=  "com.google.javascript" % "closure-compiler" % "v20140730"

import com.google.javascript.jscomp.SourceFile
import com.google.javascript.jscomp.parsing.{Config, ParserRunner}
import com.google.javascript.rhino.{SimpleErrorReporter, Token}
val res = ParserRunner.parse(
  new SourceFile(script.toString),
  fileContents,
  ParserRunner.createConfig(true, Config.LanguageMode.ECMASCRIPT6, true),
  new SimpleErrorReporter
)

I also don't see why we'd need to parse/translate the code at all; all we'd need to do is splat the Javascript in-line and make sure that interpolations are handled correctly, and maybe sanitize stuff to avoid collisions.
You could even implement Python/Ruby quasiquotes too using Jython/JRuby; that would be cool, and is something I have a use for, but overall this might be outside the scope of Scala.js.

Parsing Javascript isn't that hard.

Note that the parser will need to support holes for splicing.

I also don't see why we'd need to parse/translate the code at all

I absolutely agree with @sjrd that we should not allow for a arbitrary JavaScript node in our trees. Quasiquotes like that should be sugar if anything. Also, parsing is probably necessary for reasonable splicing.

I also don't see why we'd need to parse/translate the code at all; all we'd need to do is splat the Javascript in-line and make sure that interpolations are handled correctly, and maybe sanitize stuff to avoid collisions.

But you can't sanitize stuff if you don't parse and do some sort of binding analysis. Your JS code is likely to access global variables which are free in the JS code. But the compiler could use the same names for its internal, which would therefore short-circuit the references to global variables. So depending on how the compiler translates stuff, your code will behave differently.

The macro would need a fully-fledged JavaScript parser that could translate the code to Scala.js style code (this translation is easy, what is hard is the parsing).

The translation is not easy. There are even stuff that we cannot translate faithfully (e.g., for-in, ==, with).
If anything, one could define some simple sugar over js.Function(...).apply(...):
def injectEval(captures: (String, Any)*)(body: String): Any = {
  val (captureNames, captureValues) = captures.unzip
  val f = js.Function(captureNames :+ body: _*)
  f.asInstanceOf[js.Dynamic].apply(captureValues.asInstanceOf[Seq[js.Any]]: _*)
}

and then you can do this:
injectEval("converter" -> converter)("""
  converter.hooks.chain("preBlockGamut", function (text, runBlockGamut) {
    return text.replace(/^ {0,3}``` *\n((?:.*?\n)+?) {0,3}``` *$/gm, function (whole, inner) {
      return "
" + runBlockGamut(inner) + "
\n";
    });
  });
""")

Note that this will necessarily be executed in the context of the global scope, so the JS code cannot refer to variables declared lexically around the call to injectEval. That's why there is an explicit list of captures.
A string interpolator could infer the captures from the interpolated expressions, by generating UUID names for the local names of the captures. It doesn't even need to be a macro, I think.
All of this can be done in user space. There's no need for the compiler to do anything. So it doesn't need to be in core. And I think this is extremely bad style for Scala.js, so it shouldn't be in core.


Alternate CSS files not quite working?

Do I use the alternate colour-scheme CSS files by specifying them with .init(css="css/impressConsoleGray.css")? When I do so (Chrome/Win7), the preview and next slide iframes are much smaller than they are with the default CSS. It's intermittent, but it's only once worked correctly, and fails every other time.
Default:

Gray:

Resizing the Browser works around that issue

I can't reproduce this.

I am also having this issue.  I cannot tell if it is related the to errors when looking up viewslide div or not.  I also see this error with the default css.

I still haven't seen this with default or non-default css. Closing for now.


Build System Restructure

[x] Correctly restructure Build System
[x] Does not use scripts
[x] Output is similar to previous sprint
[x] Update README to include new instructions for Build System

Primary: @Joperezc
Secondary: @nrhoopes
Size: XLARGE
Actual Size:  MEDIUM
Actual Time:

This will need to be progressively updated so it is technically not completed.


Only buy

Thanks for sharing knowledge, i have a question i got that result : Only buy
What shall i do?
Predicted answer: Buy
[1.0000000e+00 1.7195972e-25]
[[1.0000000e+00 1.7195972e-25]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 4.2478185e-26]
[[1.0000000e+00 4.2478185e-26]]
Label: sell
Predicted answer: Buy
[9.9989498e-01 1.0502239e-04]
[[9.9989498e-01 1.0502239e-04]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 1.8285746e-11]
[[1.0000000e+00 1.8285746e-11]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 1.5805315e-20]
[[1.0000000e+00 1.5805315e-20]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 1.3262541e-18]
[[1.0000000e+00 1.3262541e-18]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 2.2895107e-16]
[[1.0000000e+00 2.2895107e-16]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 7.0590938e-12]
[[1.0000000e+00 7.0590938e-12]]
Label: sell
Predicted answer: Buy
[1.000000e+00 8.698008e-14]
[[1.000000e+00 8.698008e-14]]
Label: sell
Predicted answer: Buy
[1.0000000e+00 1.8061724e-14]
[[1.0000000e+00 1.8061724e-14]]
True buy: 111
True sell: 0
False buy: 0
False sell: 122
no action: 0
Sell Precision: 0.0
Buy Precision 1.0
Recall: 0.47639484978540775
Precision: 0.47639484978540775
F-measure: 0.0

I think you haven't setup your training and validation datasets correctly. In your training and validation datasets there should be the exact amount of files in buy and sell directories. This is something you need to manually by deleting some random image files by hand. If your training dataset is imbalanced, then the ML model will be biased. This bias can create problems like this.
First of all it is crucial that you have a balanced dataset in all of your training and validation datasets. For example your buy and sell folder should have equal amount of images. When you first run the graphwerk.py script you will have a different amounts in both folders, first of all you need to equalise the number of samples manually in both folder. One way of doing this is manually deleting random samples from the folder with more images. After doing this you should take 20 percent of the data from the training folder and put it into the validation folder and make sure the amount of images are the same.

Hello,
may I just ask if validation folder should have 2 sub-folders (buy and sell) as train folder does?
Thank you

Hello,
Yes it should have 2 sub folders (buy and sell)

Hi, my result is only sell
My data train includes 2 folders buy and sell and quantity images is equal between 2 folders.
I train with epochs = 2
Do something wrong?
Thank you

I run predict with data train -> the result still only sell

2 Epochs wouldn't be enough for training such model. I would suggest to go up to 1000 Epochs or less depending on how the model is converging.


Add BIP84 LTC support

Hi. Thanks for this very usefull lib!
In one of my project I need to create LTC HD wallet and get error:
NotImplementedError: BIP84HDWallet is not implemented for Litecoin mainnet cryptocurrency.
Can you add support for it?
Or maybe param "P2WPKH" for ExtendedPublicKey and ExtendedPrivateKey params is the same as in BTC and I can populate it to LTC ?

@yankevych Talk to LTC  Support on the Litecointalk live support so that your issue can be looked into.

It's BIP84 supported for Litecoin in the v3 package. Thank you.


New subcalendar events not showing in calendar listing

My main calendar is shown as a subcalendar on  another events module incidence on a single page. The secondary is displayed as a list.  When created it showed all events from the main calendar (as sub-calendar events) but when new events are added to the main calendar they are not showing up on the sub calendar.
Any idea what would be causing this?

If I understand you @BEhlbeck correctly, you have switched the principle of master and subcalendar structure.
A main calendar is the master, a subcalendar is a feed for the main calendar. The main summarizes the events of one or more sub-calendars. You should enter new events in the sub calendar, not in the main calendar.

Thanks for replying.  We are entering the events into the sub-calendar and after about 2 days they finally show up on the listing (which is the main calendar that also shows events from the subcalendar).  Is there a sceduled event that I need to change or add to scheduler?  http://www.sechelt.ca/City-Hall/Calendar  March 15th special finance meeting shows up on main calendar but not on listing.

The event data from subcalendars is retrieved from the database when the main calendar is displayed, there is no background update schedule involved. Time zones discrepancies? Event list limitations (before/after current date)

Time zones the same and events before and after the missing event are shown.  i think it might be related to module caching. It is inheriting Memory Output Cache Provider, duration (seconds) 0 and I can't change it to None. It appears to allow the change to none but then goes back to memory.

We are running DNN 8.4.2 and I was unable to change the module cache to None from Memory.  I manually changed the module cache to None in the database and the issue persists. When adding an event to the sub-calendar it does not show on the listing.  Does anyone have this functionality working on DNN 8?

EVOQ 8.4.2 that is :-)

I just tested this in DNN platform (07.03.04) and it seems to be a Evoq only issue

@EPTamminga Will this the reference fix (#49) be in a new release or is it in the 6.3.1 version already?

@Timo-Breumelhof It is not in 6.3.1, I will add it to the release 6.3.2 I am working on.

Ok, I though so. Thanks Ernst Peter.


BatchedInferencePipeline degrades transcription quality heavily

At first the new BatchedInferencePipeline seems great. It produces around 2X speed improvement compared to the normal pipeline. But after some more testing I discovered for some audio files the transcription quality is highly degraded. Whole segments are missing compared to the normal pipeline. Some segments switch language mid way for long periods.
Example:
Segment A has 30 seconds audio, fully in Dutch. It does contains a few English words. Half way the transcription segment the text becomes English, translating the Dutch audio. And at the end of the segment the initial_prompt is displayed. This happens at multiple places.
So this makes the BatchedInferencePipeline not suited for a production application.

VAD detects speech, not silence. If it were designed to detect silence and remove it, it would be called Silence Activity Detection.
So if speech is not detected, that segment is lost in the transcription.

Check less restrictive settings, for example::
"vad_parameters": VadOptions(
    max_speech_duration_s=model.feature_extractor.chunk_length,
    min_silence_duration_ms=150,
    min_speech_duration_ms=120,
    speech_pad_ms=200,
    onset=0.25,
    offset=0.2
)

The code switching abilities are not officially a part of whisper, so your result may vary, this has nothing to do with BatchedInferencePipeline

It's happening for me too, for example The audio of lanuage urdu has whol 10 seconds missing from an audio of 60 seconds

I've also had many occurrences of this. This does happen regardless of VAD settings, the transcript for the same audio file will have some speech chunks missing when using batched. I also debugged the VAD segments produced and ensured they are identical. Also confirmed that the segments missing in the transcript are within the boundaries of VAD segments.

Yes, I've also encountered this situation. When using the BatchedInferencePipeline mode, the problem of certain segments being missing often occurs, and adjusting the VAD parameters doesn't work either. However, there's no such problem when using the non-batch mode.

However, there's no such problem when using the non-batch mode.

There is same problem with missing transcriptions in non-batch mode too, only that it happens less often.
Btw, tt happens with all Whisper implementations.

I suspect the current WER bechmarks, do not reflect this performance degradation, since the test audio tends to be very clean, and much less sensitive to the VAD. A better test set would be a good first step towards improving the batched peformance.


Add a rule to include allies and/or friendly monsters when using the Regroup card.

The regroup ability makes use of the Boardgame.GameplayEffects.Teleport sequence.  The Teleport sequence has a field, teleportPieceMode, of type TeleportTargetPiece, which specifies what pieces can be teleported (Attacker, Defenders, MyTeam).
I suspect overriding MyTeam to include allies and/or friendlies would result in them getting pulled in via the regroup card.

A related feature could also be:
Overriding Attacker/Defenders to mean not just a single target, but all nearby attackers/defenders.  This would make banish an AoE banish, and a mystic's teleport an AoE teleport.

Implemented in #340 - Closing this issue.


Solved some question of Love Babbar DSA sheet.

Hello @Ayon-SSP, I have tried to solve some questions of Love Babbar DSA sheet. Kindly, accept my PR.
Thank You

The code looks good
Thanks for the contribution @anmolrajsoni15
If you appreciate my work, please 🌟 this repository. It motivates me. 🚀

Enjoy HacktoberFest 💜


Eliminate duplication

Merged code in users.py to crud_users.py to eliminate duplication, maintaining the previous pattern to avoid SQL Injection and keep the code tidy.
Made necessary alterations in plants.py to reflect the changes.
Altered login in plants.py from static index to named properties.
Added unique index key to user email in the database.
Made slight alterations in the overall backend code to reflect previously made changes in the database.

Awesome, good to merge into main now that there's no conflict


Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.

/home/ed/Projects/DIRTY/DIRTY-ghidra/venv/lib/python3.10/site-packages/torch/nn/functional.py:5137: UserWarning: Support for mismatched key_padding_mask and attn_mask is deprecated. Use same type for both instead.

@dosu Can you label this?


A new idea

Please add chest item retrieval function

This is out of scope for EMI. Functionality like this is provided in several mods, and historically, none of them have been recipe viewers. There is no benefit for this to be implemented in EMI rather than another mod, so I don't believe it should prevent other mods with a potentially better implementation from existing. Sorry.


Templates

Description
I want to propose a new feature called templates:
Instead of writing markdown files, a user should be able to write JSON files, which will be rendered to markdown files using a template.
To make this happen, we need a need root folder templates. This folder contains files in the handlebars.js file format - for example, api-documentation.md.hbs.
Then, a user can create JSON files in the book folder - for example, my-super-method.json. These JSON files need a property template, the other properties are up to the user. The property template should contain a file name from the templates folder without the extensions - for example, "template": "api-documentation".
Since handlebars does not come with helpers functions, we should add a few common ones like:

toLowerCase
toUpperCase
toCamelCase
toSnakeCase
toKebabCase
toPascalCase
getContentFromFile

Example
Input
File: templates/api-documentation.md.hbs
# {{ name }}

{{ description }}

## Examples

{{#each examples}}
{{#if preview}}
![Preview of {{ src }}]({{ preview }})
{{/if}}

```java
{{getContentFromFile src}}
```
{{/each}}

## Syntax

{{#each syntax}}
```java
{{ this }}
```
{{/each}}

File: book/changeTint.json
{
   "name": "changeTint()",
   "description": "Add to a value. If the key does not exist, a new pair is initialized with the value supplied.",
   "examples": [
      {
         "preview": "archives/SpriteChangeTint/preview.gif",
         "src": "archives/SpriteChangeTint/SpriteChangeTint.java"
      }
   ],
   "syntax": [".changeTint(amount)"],
}

File: archives/SpriteChangeTint/SpriteChangeTint.java
import org.openpatch.scratch.Sprite;
import org.openpatch.scratch.Stage;

public class SpriteChangeTint {
    public SpriteChangeTint() {
        Stage myStage = new Stage(254, 100);
        Sprite mySprite = new Sprite("zeta", "zeta_green_badge.png");
        myStage.add(mySprite);
        myStage.wait(3000);
        mySprite.changeTint(150);
    }

    public static void main(String[] args) {
        new SpriteChangeTint();
    }
}

Output
# changeTint()

Add to a value. If the key does not exist, a new pair is initialized with the value supplied.

## Examples

![Preview of archives/SpriteChangeTint/SpriteChangeTint.java](archives/SpriteChangeTint/preview.gif)

```java
import org.openpatch.scratch.Sprite;
import org.openpatch.scratch.Stage;

public class SpriteChangeTint {
    public SpriteChangeTint() {
        Stage myStage = new Stage(254, 100);
        Sprite mySprite = new Sprite("zeta", "zeta_green_badge.png");
        myStage.add(mySprite);
        myStage.wait(3000);
        mySprite.changeTint(150);
    }

    public static void main(String[] args) {
        new SpriteChangeTint();
    }
}
```

## Syntax

```java
.changeTint(amount)
```

Implemented in 0c58ad80c3c8b145868d2c0303d42478ec0a9978


Clarify model validation

As per Ian's comment.
A model is not actually validated when calling save(), you have to call
Model.full_clean() yourself or use a model form that also calls that
method.

Yay thanks ✨