Logging needs data context

When logging, if data that has the same type as PlatformErrorType, it will be interpreted as a platform error (which may not be intended) due to the lack of context.

Changed logging backend in 359ed8e, now look at fmt::windows_error and fmt::report_windows_error for handling platform errors.


Scoop persist broken

Ivan,
For some reason, the "persist" feature does not function as intended. The config.ini file is both written to and read from the executable's directory. However, when an update occurs, the settings are lost.
The bt.ini file is created, and the files still exist, but they are currently not being utilized.

It came down to this. Scoop has decided to keep a broken version, but I'm not behind the decision.


Missing html contentType

Describe the bug
In IE, when published to TFS 2017U3.1, html pages won't load.
In Chrome, when published to TFS 2017U3.1, html pages are downloaded instead of displayed.
Note that you will be unable to reproduce, because your extension doesn't work in TFS at all (need to remove .cloud from the target).
Browser
Choose a browser
[X] IE11
[X] Chrome
[ ] FireFox
[ ] Safari
Version
[ ] Azure DevOps/VSTS
[ ] TFS 2017 Update 2/3
[ ] TFS 2018
Screenshots
If applicable, add screenshots to help explain your problem.
The cause is missing contentType properties on the html files attributes in vss-extension.json.  This is almost always a problem in extensions that were published to the marketplace, so I guess that publish process must somehow be adding those content types.  Can you explain?
Note that you will be unable to reproduce the problem, because your extension doesn't work in TFS at all (need to remove .cloud from the target).

Thanks @pabrams  can you send a PR? I have several users using the extension on prem and I also just tried it and it works.


Problem during npm install

I am on Ubuntu 16.10 with newest node.js. Had problem with build as below:
gyp: Call to 'node -e "require('nan')"' returned exit status 127 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:304:16)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.8.0-32-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/gvader/Projects/msi-keyboard-gui/node_modules/nslog
gyp ERR! node -v v4.2.6
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok

What are your versions:
node:
npm:
libusb:

I noticed this similar issue (error 127) https://github.com/nodejs/node-gyp/issues/223
I have not yet come across this error though.

Hi @stevelacy
Thanks for quick anwser. Versions are as below:
gvader@gvader-GS40-6QE-Phantom:~/Projects/msi-keyboard-gui$ dpkg -l | grep libusb ii  libgusb2:amd64                                  0.2.9-1                                     amd64        GLib wrapper around libusb1 ii  libusb-0.1-4:amd64                              2:0.1.12-30                                 amd64        userspace USB programming library ii  libusb-1.0-0:amd64                              2:1.0.20-1                                  amd64        userspace USB programming library ii  libusb-dev                                      2:0.1.12-30                                 amd64        userspace USB programming library development files ii  libusbmuxd4:amd64                               1.0.10-3                                    amd64        USB multiplexor daemon for iPhone and iPod Touch devices - library gvader@gvader-GS40-6QE-Phantom:~/Projects/msi-keyboard-gui$ dpkg -l | grep npm ii  node-npmlog                                     0.0.4-1                                     all          Logger with custom levels and colored output for Node.js ii  node-read-package-json                          1.2.4-1                                     all          Read package.json for npm module for Node.js ii  npm                                             3.5.2-0ubuntu4                              all          package manager for Node.js gvader@gvader-GS40-6QE-Phantom:~/Projects/msi-keyboard-gui$ dpkg -l | grep nodejs ii  nodejs                                          4.2.6~dfsg-1ubuntu5                         amd64        evented I/O for V8 javascript ii  nodejs-dev                                      4.2.6~dfsg-1ubuntu5                         amd64        evented I/O for V8 javascript (development files)

Please install node v6+ as that is mosylikely the problem, then re-install the project.
rm -rf node_modules && npm i

https://github.com/stevelacy/msi-keyboard-gui#nodejs-6-is-required

Updates?

Could you do this:
git pull
rm -rf node_modules
npm install
sudo npm start

Just published a release: https://github.com/stevelacy/msi-keyboard-gui/releases/tag/0.1.3
Can you confirm that the binary does run correctly, and if not the errors it produces?
Thanks


Consider voucher system for activating Random Events

Have Random Events be classified as 'faulty' and give a voucher to a viewer to trigger that event for free / for same bits value.

No, not doing this due to complexity.


Please add support for Tiered Storage in the Helm Chart

Is your feature request related to a problem? Please describe.
We'd love to see easier integration with Pulsar Tiered Storage including S3 bucket etc. and AWS credentials
Describe the solution you'd like
Please provide standard template / values for S3 integration (with appropriate AWS credentials / STS role)
Describe alternatives you've considered
From Addison in Slack https://apache-pulsar.slack.com/archives/CJ0FMGHSM/p1602085159071600
To enable it with the official charts you can just set the following properties:
    # enable tiered storage
    managedLedgerOffloadDriver: aws-s3
    s3ManagedLedgerOffloadBucket: <bucket name>
    s3ManagedLedgerOffloadRegion: <region>
    managedLedgerOffloadAutoTriggerSizeThresholdBytes: "262144000"

Additional context
It appears that Kafkaesque Helm chart currently supports it https://github.com/kafkaesque-io/pulsar-helm-chart#tiered-storage but we'd rather be on the "official" variant

As a comment, for GCS it did not work just adding
broker:   configData:     managedLedgerOffloadDriver: google-cloud-storage     gcsManagedLedgerOffloadBucket: pulsar-tiered     gcsManagedLedgerOffloadRegion: us-east1     managedLedgerOffloadAutoTriggerSizeThresholdBytes: "262144000"
because it was lacking the service account key file, which needs to be mounted. I added by hand in the statefulset of the broker the following volumes and volumeMounts and worked adding a field:
gcsManagedLedgerOffloadServiceAccountKeyFile: "/pulsar/gcp-service-account/{{ .Values.broker.configData.gcsServiceAccountJsonFile }}"

+++ b/charts/pulsar/templates/broker-statefulset.yaml
@@ -225,7 +225,19 @@ spec:
           {{- end }}
           {{- end }}
           {{- include "pulsar.broker.certs.volumeMounts" . | nindent 10 }}
+          {{- if .Values.broker.configData.managedLedgerOffloadDriver }}
+          {{- if eq .Values.broker.configData.managedLedgerOffloadDriver "google-cloud-storage" }}
+          - name: gcp-service-account
+            readOnly: true
+            mountPath: /pulsar/gcp-service-account
+          {{- end }}
+          {{- end }}
       volumes:
+      {{- if eq .Values.broker.configData.managedLedgerOffloadDriver "google-cloud-storage" }}
+      - name: gcp-service-account
+        secret:
+          secretName: {{ .Values.broker.configData.gcsServiceAccountSecret }}
+      {{- end }}
       {{- if .Values.auth.authentication.enabled }}
       {{- if eq .Values.auth.authentication.provider "jwt" }}
       - name: token-keys

As a comment, for GCS it did not work just adding
broker: configData: managedLedgerOffloadDriver: google-cloud-storage gcsManagedLedgerOffloadBucket: pulsar-tiered gcsManagedLedgerOffloadRegion: us-east1 managedLedgerOffloadAutoTriggerSizeThresholdBytes: "262144000"
because it was lacking the service account key file, which needs to be mounted. I added by hand in the statefulset of the broker the following volumes and volumeMounts and worked adding a field:
gcsManagedLedgerOffloadServiceAccountKeyFile: "/pulsar/gcp-service-account/{{ .Values.broker.configData.gcsServiceAccountJsonFile }}"

+++ b/charts/pulsar/templates/broker-statefulset.yaml
@@ -225,7 +225,19 @@ spec:
           {{- end }}
           {{- end }}
           {{- include "pulsar.broker.certs.volumeMounts" . | nindent 10 }}
+          {{- if .Values.broker.configData.managedLedgerOffloadDriver }}
+          {{- if eq .Values.broker.configData.managedLedgerOffloadDriver "google-cloud-storage" }}
+          - name: gcp-service-account
+            readOnly: true
+            mountPath: /pulsar/gcp-service-account
+          {{- end }}
+          {{- end }}
       volumes:
+      {{- if eq .Values.broker.configData.managedLedgerOffloadDriver "google-cloud-storage" }}
+      - name: gcp-service-account
+        secret:
+          secretName: {{ .Values.broker.configData.gcsServiceAccountSecret }}
+      {{- end }}
       {{- if .Values.auth.authentication.enabled }}
       {{- if eq .Values.auth.authentication.provider "jwt" }}
       - name: token-keys

is it possible to know how you applied the new b/charts/pulsar/templates/broker-statefulset.yaml? did you use helm upgrade?

Nono, when you change the charts you cannot use the same chart, so I repackaged locally and applied those! Not as fancy haha Ideally these should go into the official charts! If I find time I will submit a PR. I think is following this path but adding AWS and Azure? @sijie ?

Nono, when you change the charts you cannot use the same chart, so I repackaged locally and applied those! Not as fancy haha Ideally these should go into the official charts! If I find time I will submit a PR. I think is following this path but adding AWS and Azure? @sijie ?

Thanks, that's what i though too.
as far as i know, tiered storage support for azure will be available in pulsar 2.7.0 so i guess you could first submit a PR for gcp and aws? although aws works fine without other configurations. Cheers

well, i got it to work. the broker.configData in values.yaml part looks like this
    # tiered storage to gcs
    managedLedgerOffloadDriver: google-cloud-storage
    gcsManagedLedgerOffloadBucket: pulsar
    gcsManagedLedgerOffloadRegion: europe-west1
    managedLedgerOffloadAutoTriggerSizeThresholdBytes: "262144000"
    gcsServiceAccountSecret: "pulsar-broker-service-account"
    gcsServiceAccountJsonFile: "serviceaccount.json"
    gcsManagedLedgerOffloadServiceAccountKeyFile: "/pulsar/gcp-service-account/serviceaccount.json"
for this to work with the diff above you need create the service account json as per the documentation. add the resulting json file with the credentials (serviceaccount.json) as a secret to your k8s cluster (make sure to add it to the right namespace)
$ kubectl -n pulsar create secret generic pulsar-broker-service-account --from-file=serviceaccount.json
in case of an existing release, upgrade your helm deployment and roll over your broker statefulset
$ helm upgrade <your-release-name> charts/pulsar
$ kubectl -n pulsar rollout restart statefulset  production-pulsar-broker


Add Ookii Dialogs WPF to UI Controls section

Ookii.Dialogs.Wpf is a class library for WPF applications providing several common dialogs. Included are classes for task dialogs, credential dialog, progress dialog, and common file dialogs.

Thanks @augustoproiete, only a small issue, given that the list is alphabetically sorted, would you mind it placing the new entry in the right place. I would be glad to merge it afterwards. Thanks again.

Oops! Sorry about that :see_no_evil: I just fixed the PR.

Thanks for your contribution


Hash history needs a DOM

I tried to use Web Worker in the Web project with react then the error was found
"History needs a DOM Hash"
But I did not use react-router in hashHistory. is not in the use of react-router must be bound in an existing DOM?
Because the principle of Worker Web is to put the DOM fragments together and then hang in the tree dom.

Unfortunately, history has a hard check for window.document. You can make it work with a memory history instead.


Banner chart showing downward trend when day starts

When the day starts, the banner charts are showing downward trend
To Reproduce
Check when the day starts

Expected behavior
The end point of the graph should stay as it was when the day ends and continue to update only when new cases gets added.
Desktop (please complete the following information):

OS: Windows 10
Browser Firefox
Version74

Patched! Thank you for reporting :)


Building project with CefSharp fails to build until I restart visual studio

From @maxinfet on October 23, 2018 19:23
Issue
In 15.7.6 the reproduction project I linked bellow builds every single time even when restoring nuget packages. As of 15.8.6 the first build will fail with the following error The tag 'ChromiumWebBrowser' does not exist in XML namespace 'clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf'. After I perform another rebuild it will build fine.
For our main solution it does not matter how many times we rebuild it will not build until we follow the steps in issue #3930. When we were on 15.8.5 we got a different set of errors, but on 15.8.6 we get the same error as my reproduction project.
Solution Details

Our solution uses the legacy project system
We use package.config to restore our nuget packages

Error Details
This issue is happening during MarkupCompilePass1. This output is from a reproduction project I put here.
Restoring NuGet packages...
To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the NuGet Package Manager node and uncheck 'Allow NuGet to download missing packages during build.'
NuGet package restore finished.
1>------ Rebuild All started: Project: ReproductionApplication, Configuration: Debug x86 ------
1>Build started 10/23/2018 3:14:42 PM.
1>GenerateBindingRedirects:
1>  No suggested binding redirects from ResolveAssemblyReferences.
1>C:\Perforce\ReproductionApplication\15.8.6\ReproductionApplication\MainWindow.xaml(11,10): error MC3074: The tag 'ChromiumWebBrowser' does not exist in XML namespace 'clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf'. Line 11 Position 10.
1>
1>Build FAILED.
1>
1>"C:\Perforce\ReproductionApplication\15.8.6\ReproductionApplication\ReproductionApplication.csproj" (Rebuild;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
1>(MarkupCompilePass1 target) ->
1>  C:\Perforce\ReproductionApplication\15.8.6\ReproductionApplication\MainWindow.xaml(11,10): error MC3074: The tag 'ChromiumWebBrowser' does not exist in XML namespace 'clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf'. Line 11 Position 10.
1>
1>    0 Warning(s)
1>    1 Error(s)
1>
1>Time Elapsed 00:00:00.65
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Copied from original issue: dotnet/project-system#4158

Actually, moving this back - looks like a project-system issue.


Help on mocks

Hi sorry to be writting this here but I think this is the best place to ask. Just wanting to say thanks for this awesome library I am trying
to switch to it from jest.
Now in jest I can mock redis by doing
jest.mock('ioredis', () => require('ioredis-mock/jest'))

I am trying todo the same in tap like
  t.mock('ioredis', {
    redis: {
      client: () => 'bar'
    }
  })

But I am unable to get it working. My hope is to inject ioredis-mock where ioredis is imported.
Thanks once again

You will need to mock the file you are testing and pass the ioredis mock to that.
t.test('test', () => {
  const myFile = t.mock('../lib/myfile.js', {
    ioredis: { redis: { client: () => 'bar' } },
  })
  // do stuff with myFile
})

I found this report interesting but I just made a proposal for a feature that I think would make this easier: #790.

Ah thankyou thats a good way of doing it.


Issue #89

Please add a proper title for what the PR is and a short description. Also, please put the issue link in the description, because it's a pain to search for the issue instead of just clicking a link.

Also, branch the PR from master, to not include already reviewed code in the diff. This branch has nothing to share with the branch from https://github.com/raiden-network/raiden-contracts/pull/104

Related to Issue #89


Remove version: GitHub.GitHubDesktop version 3.2.7

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

Close with reason: Publisher has changed their URL structure;


Add support for (non-local) URLs.

This addresses https://github.com/djc/rnc2rng/issues/17.

Coverage decreased (-0.4%) to 86.19% when pulling 9ed8c96ea245c334b0a54b4c89d48f82e24c07f9 on stefanseefeld:url into 2b2c3c7c7f6a59055e68aea53769028609b469e9 on djc:master.

I'm a bit surprised about the apparent drop in coverage, as I added a test that covers the new code paths.
Note that this PR also addresses a few warnings caused by unprotected strings containing escape sequences.

LGTM, thanks!


You can generate TOML that will then fail to load by serializing a large u64

Apparently u64 gets serialized as if it was an i64 in the TOML format but instead of failing to serialize on very large u64 values the library will generate the TOML and then fail to parse it. Here's an example:
#[macro_use] extern crate serde;
extern crate toml;

#[derive(Serialize, Deserialize)]
struct MyStruct {
    num: u64,
}

fn main() {
    let s = MyStruct{num:<PHONE_NUMBER>7146580733};
    let toml = toml::to_string(&s).unwrap();
    eprintln!("string is {}", &toml);
    let s: MyStruct = toml::from_str(&toml).unwrap();
    eprintln!("second number is {}", s.num);
}

If indeed very large u64 numbers are not serializable as TOML then it should fail on to_string() as well as on from_str().

Thanks for the report! Unfortunately this is due to how internally toml-rs represents integers as i64 and<PHONE_NUMBER>7146580733 is out of bounds for an i64. This'd probably require some internal refactoring to work, but seems like it's definitely a bug to fix!

Yeah, I figured out it was because of i64/u64 and refactored the app appropriately but it's a bit of a landmine because the write succeeds and the read fails. I triggered this when I generated random ID's for peers in syncer and suddenly got a heisenbug where some runs would work fine and some would fail. I ended up just switching the random id's to i64 which matches the sqlite integer type anyway.
Making sure the write fails as well would be a good first step and maybe that's easy to do by just adding that extra check. It still makes it easy for someone to write something that seems to work fine and later fails when the u64 reaches a number bigger than i64::MAX. No idea how that could be fixed.

Makes sense to me!

Closing as duplicate of #256.


refactor(molecules): SfAddToCart

Related issue

Closes #
Scope of work

Screenshots of visual changes

Checklist

[ ] No commented blocks of code left
[ ] Run tests and docs
[ ] Self code-reviewed

If applicable:

[ ] I followed composition rules for my component
[ ] I tested the component in most common device sizes (can be tested in Storybook from viewport addon in top menu)

@justyna-13 I add small changes to this PR, we need quantity input on mobile now, we can't hide it :)
@AdamPawlinski we need to change the mobile layout to --secondary modifier  in SfQuantitySelector
now we have bug in this PR

it should be looked the same like on the desktop.


Remove social media icons in Talks

Feature Request
Is your feature request related to a problem? Please describe.
I want to disable my profile and the social media icons from being displayed at the bottom of each of my talks. Currently it looks like this:

I don't have this problem for publications; for this, doing sharing = false in params.toml worked fine. Screenshot:

Describe the solution you'd like
I would like to disable my profile with the social media icons from all talk pages, just like I have with all publication pages. I attached two screen shots that show what I intend.

Just to say that the problem solved itself, I'm not sure why. I suspect a full delete and re-rendering of the public folder might have done the trick.
Please consider this issue closed.


local host refuse to connect

what does it say in the command prompt?

when I open the wrapper offline people report the bugs that it says refuse to connect

F**k wrapper. Fix it

Don't worry. I made a wrapper site on heroku. Link: https://wrapper-duked.herokuapp.com/html/list.html

The only issue is that videos get deleted randomly

To fix the video deletion. You need to back up your videos .xml files. To load the .xml click "Upload a Movie" And select the video xml.

Don't worry. I made a wrapper site on heroku. Link: https://wrapper-duked.herokuapp.com/html/list.html

When I try to make a video the video maker doesn't load


Importing template into Zabbix

When I try and import the template into Zabbix (ver. 3.0.10) I get an error message:  Invalid tag "/zabbix_export/version": unsupported version number.

Nevermind i answered my own question.  I had to upgrade my instance of zabbix


[AKRecorderNode] - small refactor

dynamic to make isRecording KVO compatible

public private(set) to achieve the same effect as private var recording + public var isRecording (publicly gettable and privately settable) with the added bonus of not allowing users to arbitrarily set a value for isRecording

More generally, I may have missed or misunderstood something, but I'm not too sure about the use of open for properties like durationToRecord or recordedDuration.  Wouldn't publicorpublic private(set)` be enough ?

This looks good, although I may change isRecording == true to just be isRecording. Reads a little better in my opinion.


Feature: Make margin/padding/spacing changes optional

Would it be possible to export variants of the themes which do not automatically bundle margin/padding/spacing changes which differ from the default egui theme along with the colorscheme values?
I am working on a status bar in egui and I was interested in using this crate to provide some nice out-of-the-box themes (and also hopefully get some more people contributing themes here?), but these bundled margin/padding/spacing changes can throw users' existing status bar layouts a little out of whack:
Without egui-aesthetix:

With egui-aesthetix:

Hey, first off thanks for interest in the project and taking time to open an issue.
You are absolutely right, I've been meaning to take some time and refactor the spacing, margin, padding and shadowing.
I do like the idea of every theme keeping the default egui styles (except for color schemes) out of the box. But there needs to be an easy way for the user to inject styles.
I feel like,
Step 1 could be, refactoring the Aesthetix trait to have default egui styles which would propagate to what ever theme implements the trait. Clean up the color schemes, then do a release.
Step 2 could be, implement an easy way for styles, padding, etc to be injected into each Theme, maybe supply some prebuilt custom styles that would match the Gnome desktops GUi style (just an example) what do you think?

Hiya, I had the same issue and implemented an adapter that restores the normal spacing (as mentioned in the trait):
struct AesthetixWithNormalSpacing<A: egui_aesthetix::Aesthetix>(A);
impl<A: egui_aesthetix::Aesthetix> egui_aesthetix::Aesthetix for AesthetixWithNormalSpacing<A> {
    fn name(&self) -> &str {
        self.0.name()
    }
    fn primary_accent_color_visuals(&self) -> egui::Color32 {
        self.0.primary_accent_color_visuals()
    }
    fn secondary_accent_color_visuals(&self) -> egui::Color32 {
        self.0.secondary_accent_color_visuals()
    }
    fn bg_primary_color_visuals(&self) -> egui::Color32 {
        self.0.bg_primary_color_visuals()
    }
    fn bg_secondary_color_visuals(&self) -> egui::Color32 {
        self.0.bg_secondary_color_visuals()
    }
    fn bg_triage_color_visuals(&self) -> egui::Color32 {
        self.0.bg_triage_color_visuals()
    }
    fn bg_auxiliary_color_visuals(&self) -> egui::Color32 {
        self.0.bg_auxiliary_color_visuals()
    }
    fn bg_contrast_color_visuals(&self) -> egui::Color32 {
        self.0.bg_contrast_color_visuals()
    }
    fn fg_primary_text_color_visuals(&self) -> Option<egui::Color32> {
        self.0.fg_primary_text_color_visuals()
    }
    fn fg_success_text_color_visuals(&self) -> egui::Color32 {
        self.0.fg_success_text_color_visuals()
    }
    fn fg_warn_text_color_visuals(&self) -> egui::Color32 {
        self.0.fg_warn_text_color_visuals()
    }
    fn fg_error_text_color_visuals(&self) -> egui::Color32 {
        self.0.fg_error_text_color_visuals()
    }
    fn dark_mode_visuals(&self) -> bool {
        self.0.dark_mode_visuals()
    }
    fn margin_style(&self) -> f32 {
        6.0
    }
    fn button_padding(&self) -> egui::Vec2 {
        egui::Vec2::new(6.0, 4.0)
    }
    fn item_spacing_style(&self) -> f32 {
        4.0
    }
    fn scroll_bar_width_style(&self) -> f32 {
        6.0
    }
    fn rounding_visuals(&self) -> f32 {
        4.0
    }
}

contexts.ctx_mut().set_style(Arc::new(
    AesthetixWithNormalSpacing(egui_aesthetix::themes::NordDark).custom_style(),
));

A similar technique could be used to flip the default around, such that that standard egui spacing is used by default, and the custom spacing is applied on top.


Add e2e tests (wdio-vscode-service)

This PR implements end-to-end tests for the repository. It does not wire the new tests up with the CI (that will be the next PR).
I have used the wdio-vscode-service to do this and used example code from vscode-marquee to make the tests worthwhile.
yarn test:e2e:

Create the Python venv and install the required packages (runs yarn setup:venv)
Build the webviews, move them into the appropriate folder and compile the extension (using existing turbo repo commands)
Run the end-to-end tests.

The end-to-end test suite performs the following actions:

Open the view container and wait for it to load
Open the experiments webview
Check the webview contains a table
Check the experiments webviews table has rows
Run an experiment
Check the experiments webview has 15 more rows
Close the experiments webview
Open the plots webview
Check the webview has 6 vega plots
Check each plot has data

There are no mock/stubs in place so we are relying on the CLI to provide the correct data.
Demo (video broken into 2 parts because it was too big)
https://user-images.githubusercontent.com/37993418/177745133-c01c43af-a34f-4f77-a4a5-287573a33e08.mov
https://user-images.githubusercontent.com/37993418/177745791-02654ae3-12b6-4344-85a3-5ab02d289e97.mov

It seems this test cannot use the Python extension, so it can't test our integration with it nor can it run in environments that depend on using virtual environments through python (and maybe at all).

I'll start with dvc.pythonPath and then try to use the Python extension. I can't remember if it is possible to start the session with another extension installed. I'll try and work it out.

@rogermparent I've looked into the service source code and it is not currently possible to start the service without passing --disable-extensions. Look here and work backwards if you're interested. I've sent the service maintainer/author a DM on the VS Code community slack to ask if he'll accept a PR to change this. Will go with setting the option explicitly for the time being.

🎉


Date and File Error

Hi OM's,
i installed the last Version 2024.03.22 of the LoRa_APRS_Tracker on my LiLyGo T-Beam 1.2.
After some initial difficulties now it works, two problems are now my problem:
(Positions are correct, altitude and speed too and are transmitted correctly)

The date is not updated, the initial value always remains
After a few days of regular operation, the display shows Error in the middle of operation. The settings in the file system image are gone? A re-upload of the Filesystem Image fixes the error.

hi, I will upload soon a GPS reset fix for this... If not available in two days , write me!!! as its almost ready
on the second topic, what error did you get? NOCALL on one of the saved callsign?

Thnx fr ur answer and the tip about the GPS fix. I did that quickly. Hurray, the date is now here. I thought there would be no data without GPS Fix, but it was just the date.

Yes, after the error is displayed, NOCALL is assigned.


Document hosting behind port-forwarded NAT

Hosting behind a NAT router requires passing a different public IP to the server config and the socket. This is not visible in the examples or anything I had read.  Doing this incorrectly causes no connections to go through, with no warnings.
Maybe there could be a comment in the examples. Above the line that builds the server config would be a good place in my opininon.
Original issue
I originally wanted to write a feature request, then realized it was already possible, just not very clear.

Original Text
The IP a server listens on must match the one a client connects to. This prevents hosting behind a NAT device (like a home router), as the server can't bind on the public IP of the entire network.
Hosting with port forwarding from home is a common thing when playing games with friends. I personally need it for testing my game from my personal computer.

Public address configuration seems to be a recurring cause of confusion. Adding some common scenarios in the readme or the doc should help, especially about NAT, port-forwarding, dedicated server... Maybe also add some external resources about it, but don't know which one.

I met this exact issue a few days ago. What exactly is the point of the NoHost error ? matching IP address once you're connected to an UDP socket doesn't make a lot of sense to me. Is it only for the Authentication side of things ?


Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:1037)

Hi!
Trying to use this plugin for V3, but my whole studio crashed.
Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:1037)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> var e;function r(e,r){

I thought this plugin was V3 compatible? Anyone knows how to fix this?
Node 16 and 18 tested.

Is this in a Vite studio or a Next.js embedded studio?


[Enhancement][Cherry-Pick] Import starcache submodule to support DLA block cache.

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

(Cherry picked from #20164)
Import starcache submodule as a new block cache engine which support KV interfaces, and provides memory and disk cache. Currently, we support both cachelib and starcache engines, and we set the starcache as the default engine.
Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[ ] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

@mergify rebase

@mergify rebase


Tests 2.2 Set the logging level

From the Docker doc[1] there is more than info and debug log levels.
The current implementation[2] however doesn't seems to comply to the CIS benchmark[3] documentation, where CIS suggests to pass only if log-level is set to info OR non presence.
Current implementation for 2.2 is checking:
get_docker_effective_command_line_args '-l' | grep "debug" >/dev/null 2>&1

Is there a reason why the test is only checking if log level is set to debug, instead of CIS benchmark's advice?
[1] https://docs.docker.com/registry/configuration/#loglevel
[2] https://github.com/docker/docker-bench-security/blob/master/tests/2_docker_daemon_configuration.sh#L17
[3] https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.12.0_Benchmark_v1.0.0.pdf

Hi @kevinll and thanks for opening this issue, docker-bench-security has not however implemented all tests according to the 1.12 benchmark. The current version is based on the CIS Docker 1.11 Benchmark.

Thanks for replying @konstruktoid !
I did linked the 1.12 benchmark but looking back to CIS Docker 1.11, this specific test requirements did not change. It is asking to verify docker daemon is run with --log-level="info" flag. Is there a reason for the current implementation?

You're right @kevinll, https://github.com/docker/docker-bench-security/blob/master/tests/2_docker_daemon_configuration.sh#L17, is incorrect.
Thanks for finding and reporting it, feel free to submit a PR or leave this issue open and it will be fixed with the next update.


added new dialogues to intent:mood_unhappy in nlu.md

added new dialogues related to depression which belongs to the unhappy category.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for submitting a pull request 🚀 @tttthomasssss will take a look at it as soon as possible ✨

Thanks for submitting a pull request  @tttthomasssss will take a look at it as soon as possible

Hello, I haven't received any feedback yet.


Insiders version is broken on a mac

VS Code Version: latest insiders updated April 7
OS Version: MacOS Big Sur 11.2.3

Steps to Reproduce:

Update to latest insiders version
Restart
Observe views are not initialized. Only shows main empty app window. None of main menu items work.

Does this issue occur when all extensions are disabled?: Yes

see https://github.com/microsoft/vscode/issues/114459#issuecomment-814846486


Broadcast messages to multiple consumers

I have used kaskajs with NestJs for the last 5 months but I saw that apache kafka does not support broadcast message to multiple consumers or groupids. So is there any way to implement this feature on the core implementation

KafkaJS is not Kafka, so this would be better raised in a Kafka support forum than in the issue tracker of this client.
There's no "broadcast" exactly in Kafka, but if you publish a message to a topic it can be consumed by multiple consumer groups. It will still only be consumed by one consumer of that group (without getting into at-least-once semantics). But considering the term "broadcast", I'm not sure that Kafka is appropriate for what you're doing. If you want to "broadcast" your message to a number of different systems, then just have those systems have their own consumer groups and everything will work just fine. If you want to broadcast to every instance of one or more systems, then Kafka is probably not what you should use.


Update screenshots

@MarkvanMents could you please review this PR?

Looks great @Luyao-Zhang-1
Approved.

Thank you @MarkvanMents. I merged the PR.


Transformations

Are there any plans on getting the beta grafana feature "Transformations" to integrate with the zabbix plugin?
I have a zabbix item with text values. I'd like to use transformations with Regex to show only item values that contain a certain phrase. Right now when i go to use it, nothing happens, and eventually it throws an exception in the page
Example:  I collect failed logon events. I'd like to be able to filter and only show events that contain a specific users name

There's nothing I can do with transformations, it's a Grafana feature, not the plugin one.


make use of LangVersion latest consistent

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


ddp: Re-implement 3-dim matrix * vector with reshape

Replaces #85. This is even faster (except for small-size arrays) and simpler.

reduce_last2

The speed of solve is more or less the same or slightly faster.

this version

Another test failure: "test methods for subtypes != (Float64, Int)".
@fact f(ddp0, [1.0, 1.0]) --> f(ddp0, ones(T, 2)): Do they need to match exactly?

I don't really see why this shouldn't be exact, but I think it is definitely ok to throw a roughly in here.

And great work on this new method. I wouldn't have guessed that reshape would have been faster than rolling out the loops, but it looks like it is for larger arrays. I'm in favor of this once we sort out tests and get travis to give us a green light here.

Ping.
I'll merge once tests are passing. I'm happy to lossen testing requirements to make comparisons not exact.

@spencerlyon2 Thank you!


current track

HI @ebaauw Is it possible to see the current track in the home kit app? I now have this config file, but do not see anything :)
I can see the current track in the homebridge log file:
[2018-8-12 12:24:50] [ZP] Tv Sonos Sonos: set current track from "ELLIE GOULDING - ARMY" to "ALL THINGS UNDER THE SUN"
"platform": "ZP",
             "service": "fan",
             "brightness": true,
             "speakers": true,
             "CurrentTrack": true

Apple’s Home app only provides limited HomeKit support.  You need another HomeKit app, like Eve to see the track (and other characteristics).

A i see thx for your reply


why not use drawable

I use this lib to create dynamics components like sliders, or trees, with drawable it's static, try to create a tree with drawables

I not  understand  why drawable is static , for example
 @Override
    protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
        progressDrawable.setColor(Color.Red);//progressDrawable extend shapedrawable
          progressDrawable.draw(canvas);
            invalidate();
    }

oh I didn't understand the question,
you mean shapedrawable don't works yes ?

I mean why not create custom drawable to create dynamics components ？

I don't understand.
My lib goal is to simplify usage if canvas
Le 30 nov. 2017 08:37, "HongJun2046"<EMAIL_ADDRESS>a écrit :
I mean why not create custom drawable to create dynamics components ？
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/florent37/MyLittleCanvas/issues/1#issuecomment-348106755,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFfQXHRCI1o2XcdrhWGI1Nl3Y7pn_tlfks5s7ltCgaJpZM4QwD4E
.

I understand your meaning, but I think so, drawable is actually the realization of canves.
Android provide GradientDrawable, ShapeDrawable so you can achieve some simple effects.
And, you can custom like TextDrawable, UrlDrawable, this is not better?
By the way，I am sorry for my bad English, and this is just my understanding. You Can Close this issuse.


ARI parameters in query string

Hello, we are integrating ari-proxy in one of our projects to provide HA to our ARI applications. We have noticed that the ari client implementation is not sending parameters in query string as is referenced in asterisk documentation.
In some cases it is working because Asterisk searches for parameters in body and query string, but in other cases, such externalMedia endpoint, it seems to require parameters as query string and it does not work.
Is there a way to pass parameters in query string as it is required by Asterisk ARI API?
Thank you in advance, you are making a great work.

I have wondered about that more than a couple times, and dismissed it as a case of "it's working, so why 'fix' it" kind of thing.  It sounds like it is no longer "working" for all cases, so yeah, we should definitely fix it.

We would like yo help with a pull request but we don't have experience in Go. We hope you can fix it, so  externalMedia can be used.
Thank you

I have faced the same issue - after hours of debugging the values I submit to an ExternalMedia request, I've realized that asterisk is just not expecting parameters in the body. I can make a PR fixing that, but I need to know, is client/native autogenerated or handwritten?

I got a same problem. After some testing, I found the cause is that the go-ari module uses ExternalMediaOptions as a request-body.
https://github.com/CyCoreSystems/ari/blob/a0b36882bbdb7fe03aeab92ed5e96b3534db0973/client/native/channel.go#L426-L428
But Asterisk expects the request-body as a Variables field only. Other fields need to be as query parameters in a URL. So the asterisk always responds as 400 Bad Request. Actually, I got to recognize the explanation of externalMedia parameters in the asterisk official document is really insufficient.
I checked ari-client(official nodejs module) for a correct implementation and the module parses swagger api directly and uses it for request. So the ari-client module doesn't have any issue.

I don't know what asterisk version was compatible with the current implementation.
I'm testing Asterisk 18 and I think the externalMedia implementation is wrong.
It needs to be changed like below.
	return ari.NewChannelHandle(k, c, func(ch *ari.ChannelHandle) error {
		base, err := url.Parse("/channels/externalMedia")
		if err != nil {
			return err
		}

		// Query type parameters
		params := url.Values{}
		params.Add("app", opts.App)
		params.Add("external_host", opts.ExternalHost)
		params.Add("encapsulation", opts.Encapsulation)
		params.Add("transport", opts.Transport)
		params.Add("connection_type", opts.ConnectionType)
		params.Add("format", opts.Format)
		params.Add("direction", opts.Direction)
		params.Add("data", opts.Data)
		base.RawQuery = params.Encode()

		return c.client.post(base.String(), nil, variables) // pass by argument
	}), nil

Ah, nice find!  Thanks.  Would you be willing to package that up as a PR?

@Ulexus
I've made a PR for externalMedia.
But I think the externalMedia is just one of this issue.
I noticed a call-originate API implementation is same.
I think you have to check these creation-calls API implementations for the latest Asterisk according to the document.

This issue may be same to other channel creation calls

I agree; I think the determination really should be done automatically based on the swagger spec.  That sounds like a job for the code generation tool (which is currently handling the parsing of the spec).  It is probably easiest to just have a lookup table for these.


Migrations folder is not being included in PyPI

When installing the package via pip I am getting a migration error because the migrations folder is not in the local package directory. Opening the .tar.gz in PyPI I can see that the migrations folder is not there. In the github repo the migrations folder is there. Please check and update the PyPI package.

Thanks for reporting! Have now released 0.0.4 with the packaging fixed.


AE does not yield expected chunk size

We have noticed that the average chunk size yielded by AE deviates from the target chunk size, especially with higher target chunk sizes, and also on random data.
We suspect that the formula coded in ae_chunking.cpp#L24 and also presented in the original paper is wrong.
Take for example a very high target chunk size like 10 KB. According to the formula, the window size should be 5820 bytes. Assuming uniformly distributed data, the maximum byte value in this window is almost certainly gonna be 255, and the next byte to match that would be expected after another 256 bytes, on average. This would then yield an average chunk size of 6067 bytes.

We briefly looked into this and believe that its related to the maximum value as you pointed out. We noticed a fix within DeStor's AE implementation, where they compare 8 bytes at a time instead of 1 to find the maximum value. This avoids the issue by increasing the value space while providing similar throughput.
We will probably push a similar fix when we push in a newer code version matching our recent IEEE CLOUD paper

For now, we've modified the AE window size to be avg_chunk_size—256, which exhibits closer to the expected average chunk sizes. This is the fix used previously by other systems as well.


[r19.09] haproxy: 1.9.8 -> 1.9.13, addressing CVE-2019-19330

Motivation for this change
Supersedes #74794
https://nvd.nist.gov/vuln/detail/CVE-2019-19330
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@GrahamcOfBorg eval

@GrahamcOfBorg test haproxy


Update README.md

###PULL REQUEST TITLE
Appropriate verb Use
###ISSUE
Inappropriate verb Use
###CHANGES
replaced supported to support
###SOLUTION
is + v3 used which wrong sentence formation it must be is + v1
I hope you look out into this and consider my contribution.
Description

Problem*

Resolves
Summary*

Documentation

[ ] This PR requires documentation updates when merged.

[ ] I will submit a noir-lang/docs PR.

[ ] I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

[ ] I have tested the changes locally.
[ ] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Hi @UdayKharatmol, this is a reference to our MSRV which stands for "minimum supported rust version" as seen here https://rust-lang.github.io/rfcs/2495-min-rust-version.html.
I'm going to close this PR as the README is currently correct but please feel free to open a new one if you find any issues.


Feature request: bump up LangChain version

🚀 The feature
Bump up the LangChain version to a recent version.
Motivation, pitch
Many new chat models, new vector stores etc. are supported since LangChain v0.0.237 (the most recent one being v.0.0.279). By bumping up the LangChain version, we can leverage more powerful and convenient functionalities of LangChain.

PR created: https://github.com/embedchain/embedchain/pull/536


feat(diag-logger): part 2 - breaking changes - remove api.Logger, api…

Which problem is this PR solving?

Provides solution for #1878 and finalizes changes from #1877 including #1847
Completes the introduction and usage of the api.diag DiagLogger implementation.

Short description of the changes
This PR is a breaking change for all uses of the previous api.Logger, api.NoopLogger, core.LogLevel and core.ConsoleLogger

Removes the deprecated items from #1877 including

api.Logger interface
api.NoopLogger class
core.LogLevel enum
core.ConsoleLogger

Changes the Environment.OTEL_LOG_LEVEL type from core.LogLevel to api.DiagLogLevel
Introduces common DiagLoggerConfig interface for defining the optional DiagLogger and DiagLogLevel instances all configurations that previously defined these in their own definitions.
renamed all logger properties to diagLogger

Hi Bart,
I completely disagree with your assessment.

I think this went into completely different direction than what we have discussed and agreed for.
The main idea was to be able to do something like this anywhere and always without worrying about whether the logger was set or not, and also to avoid parsing a logger everywhere.

This is exactly what we have available.
api.diag.debug('...');
api.diag.info('...');

The additional code (specifically thegetDiagLoggerFromConfig is to support the existing functionality without completely refactoring and changing (possibly breaking) the existing usages, especially as several components (including AWS and Collector see CollectorExporterConfigBase) currently have declared in their config the ability to pass a Logger to use. So this helper moves all of the usages into a single location, one place to change, fix and possible find and remove any usages in a follow up PR.
And at the end of the day this falls back to api.diag when no logger is defined or passed.
Which brings me to the OptionalDiagLogger type, this is so any current usage of this can be replaced with either "null" or "undefined" (null is better from a minification perspective) as it will (in most cases) fallback to api.diag. The most cases are called out in the next response.
And yes, there are also several additional logging functions / levels, and these will become more useful as we unify the code to only use the single api.diag instance.

But now I see things like
diagLogger && diagLogger.debug('xhr success', body);

These 2 instances are because the current implementations pass the diagLogger as the 3rd argument and before any optional arguments. For this there are 2 basic options.

Make it optional and only log if it's passed in, primarily to avoid causing further refactoring as this PR is already TOO big.

Based on the current usages (in this repo) the diagLogger is always passed in from a getDiagLoggerFromConfig() call and as such the additional prefix check of diagLogger &&  is just being defensive for any other consumers.
This could of also have been rewritten as (diagLogger || api.diag).debug(), but this could change the logging behavior.

Remove the parameter completely and just use api.diag, this has potentially un-intended side effects

Removal would cause additional pain to anyone upgrading (and possible make this PR even larger)
More importantly, it would change the logging behavior as the current collector base has the ability to define a logger instance to use.

This solution was suppose to make it lighter smaller and easier. But what we have now is a lot of new unnecessary duplicated code which completely changed the initial idea and for me it is not how it should work.

100% disagree with this statement, this is removing duplicated code from across the repo... Where is it duplicated?
Basic usage is now api.diag or getDiagLoggerFromConfig

And by defining the DiagLoggerConfig interface it also removes the definitions from all configs (so we now have a single location for config based diagnostic logging) rather than all over the code.
AND all code that fetches a logger from config now use this.diagLogger = getDiagLoggerFromConfig(config); and this falls back to api.diag with possible config based Log Level filtering (The only exceptions (called out below) are to retain backward compatibility when using a Console logger when nothing is provided)

Also the migration information in README.md just shows the complexity of this solution too.

The readme is covering "How to upgrade", I defined the "New usage patterns" first to highlight that this is how things should be doing (moving forward) and as part of this, it is also covering some of the edge cases that are currently occurring in the SDK.

I mention more about the getDefaultLogger callback below, which is the edge cases. We can remove them from the readme and leave any "upgrader" to troll the code or raise an issue.
Specifically lines 312-325 from the current iteration of the README

And the first paragraph of the Direct update path for existing code states

Without refactoring your existing code to use api.diag or getDiagLoggerFromConfig (recommended path), below is how you would directly upgrade to the newer version so you can get compiling and running.
We can make this wording more forceful if you like -- Or simply remove and deal with the Issues that will be raised.
But ideally, we want people to upgrade and not just stay on the previous versions and raise issues.
If the readme is the wrong place for this 2nd set of details, then what would be the alternate location?

As for the extra helpers defined in this section

createNoopDiagLogger() this is a direct replacement of all usages of new NoopLogger() (see previous discussion in this PR on this), it's primarily for testing (without refactoring EVERY test usage) except for a single usage in the OpenTracer Shim.
core.LogLevel -> api.DiagLogLevel is a direct replacement
core.ConsoleLogger -> api.DiagConsoleLogger is a direct replacement
createLogLevelDiagLogger() as discussed in the previous PR this is a wrapper 9sink) which is not only used internally but is "available" for external usage so they can quickly upgrade and additionally, no-one needs to duplicate this code in every DiagLogger instance they create, it also means we can add/update the log level handling in a single location.

It is just over engineered.

This is the only portion of your response where I partially agree and it's only in relation to the getDefaultLogger callback function of getDiagLoggerFromConfig(), which I would have preferred not to implement, but I did for reasons I believe I've already mentioned to retain current backward compatability without duplicating this code.
So you have requested changes, but what exactly are the changes you are suggesting?

Full Breaking changes with only able to use api.diag?

And therefore removing the ability to pass a logger by config?
Stop passing as a parameter? (I'm ok with this one except for the above issues (PR size and functional change))

Don't export createLogLevelDiagLogger()?

I'm ok with this too. as long as we sign out for the additional breaking changes and we tell people that if they want to use their own logger they either set it as the api.diag.setLogger() or via config so it's automatically wrapper via getDiagLoggerFromConfig
Additional breaks that this would incur in the repo

opentelemetry-core/src/common/logging-error-handler.ts
opentelemetry-metrics/src/Meter.ts
opentelemetry-metrics/src/MeterProvider.ts
opentelemetry-node/src/NodeTracerProvider.ts

Remove the callback getDefaultLogger function from getDiagLoggerFromConfig and all of the additional breaking issues this will incur?

@MSNev

Don't rename all logger internals into diagLogger. DiagLogger for me is just a logger which can be replaced by any other logger and all components should be still logging easily. All sigs are using logger, in many different libraries you have logger it is straightforward, intuitive and easy to understand, we are adding here extra complexity which is not "standard". But instead I would remove it completely - explaining why in the next point.

Extra helpers to "make things easier" they might jut produces more confuses than answers, do you really have to use it, what if you don't, are you still able to have logger without it, what does this functions really do ? Without reading a code you might not really find those answers.

If you look at Instrumentation class you will see that things like tracerProvider and meterProvider can be set and changed at any time. If you don't do it they will be taken from global api. This way it doesn't matter if you set it or not you can always call it without checking for existence and nothing will be broken, you can call api global to change provider and it will be transparent and at the same time you can change a provider for just one instrumentation. The same approach we should have for logger. This can be achieved in 2 ways, class Instrumentation can have setLogger function which will fully satisfy cases when you want to change logger for only one "component" or make a new class which can be extended.
We can discuss If this is really needed now or it can be done later.  Personally I will be fine with not adding this option yet. As a comparison we have a globalErrorHandler which works fine and we didn't have to create yet functionality which will allow us to set a different error handler for certain component only.
If I were to implement this later or now I would still make it differently than having some api helpers functions for parsing config etc.. I would create one class some BaseClassWithLoggerToBeExtended which will have a logger , setLogger. Then all you have to do with any class is just extend from this class. For example
class BaseClassWithLoggerToBeExtended {
  private _logger;
  constructor() {
    this.setLogger(api.createNoopDiagLogger());
  }
  get logger () {
    return this._logger;
  };
  setLogger(logger) {
    this._logger = logger;
  }
}

// And then

export abstract class InstrumentationAbstract<T = any> extends BaseClassWithLoggerToBeExtended
  implements types.Instrumentation {
  protected _config: types.InstrumentationConfig;

  private _tracer: api.Tracer;
  private _meter: Meter;

  constructor(
    public readonly instrumentationName: string,
    public readonly instrumentationVersion: string,
    config: types.InstrumentationConfig = {}
  ) {
    super();
    // ........

This way if you want to allow setting a different logger you can do it easily just extend class and then instead of api.logger.log you will be able to do this
  this.logger.info('........ // no need for parsing, adding extra logic in many places in whole codebase

  // change the logger now only for this component
  someInstrumentation.setLogger(myOwnLogger);

  // revert back to global
  someInstrumentation.setLogger(api.logger);

  // or
  api.setLogger

But once more we can extend anything (exporters, instrumentation, providers etc.) with BaseClassWithLoggerToBeExtended (figure out better name) only if we really want to be able to set a different logger for certain component this doesn't need to be done now. We will not break things later. We just have to remove now the logger option that we have in so many places.

It was brought up previously and I want to brought this up again - too many levels of logging, I know that you had an argument that we might use it in a future but I think we mind end up with having functionality that is used in 0,1% cases. We should add things if we really need it, not opposite, otherwise we are creating unnecessary things which will be harder to remove and they complicate things in longer run. Adding new stuff is always easier, then removing.

Summarizing in a short

Get rid of helpers
Remove logger option from many places
Reduce number of levels to what we had and what is supported by default
Discuss and decide if we want to add BaseClassWithLoggerToBeExtended approach - if we had this we can update classes that we think should be able to use individual logger. But this can be done at anytime without breaking anything


Question about event and task creation

Hi, is this possible to automate the creation of task and event, like adding these with a python command?

Hi, not at the moment, but I plan to extend cli features to support it. At the moment, we support several user arguments , so I plan to add support for creation of tasks and events so that you could just run something like:
calcure --task="My new task"
Then you can use it in any scripting language. Does this sound like what you would like to see?

Exactly!

Okay. I roughly implemented that for you in d2a34cd0353299282af6a379c76e58435097ab39. It should become available in version 2.1. For example, you can run:
calcure --event="2022-06-12-My new event"
calcure --task="My new task"
In the future, I plan a wider support of most of the functions of TUI interface via CLI interface but so far so good.

I'll close this issue then. If you have some other ideas, feel free to share :)

thanks!


[:collections] Remove collection doc cache prior to deep copy

Fixes #450
Even if the collection's arg make it to another action with the collection doc cache mounted, subsequent action, will remove it prior to the deepcopy

recheck

recheck

recheck


Create a Sound Manager

There needs to be a way to manage, trigger and stop sounds. I'm not all that up to speed with game sounds and how they ought to be managed.
It needs to be able to trigger ship thruster sounds, weapons firing, projectiles hitting and exploding ships.
If anyone has an idea of how a Sound Manager can be implemented I'm all ears.

I’m not really sure, I asked a question on Reddit a while back, you can see if it makes any sense. I haven’t looked at it properly.
https://www.reddit.com/r/html5gamedevs/comments/9fmsb4/game_sound_js_canvas/
Also Someone sent a PR with a sound manager class last week which handles background music. This would be a good place to start. To see whether it can be built upon. Open to an suggestions on how best to implement it.
https://github.com/sarcoma/Drone-Squadron-JS-V3ish/blob/master/src/game/manager/music-manager.js
I’ve moved on to wiring it up with an API (https://github.com/sarcoma/drone_squadron_api_prototype). So the whole thing might be a pain to set up at the moment. I probably need to create a standalone mock of the game for testing and development. It would just need a page to mount . I think.
Which is in here: https://github.com/sarcoma/Drone-Squadron-JS-V3ish/blob/master/src/game/game.js
I had a play with it a while back, made a right hash of it. But one of the major issues I had was with the thruster sound. The thruster needs to start playing sound when it starts and that probably needs to fade in and then fade out on cut off. Getting the timings for those right is hard. Also having a sound for each ship end up as a cacophony. I’m not sure how best to manage that. I think the guy in the Reddit post suggests that once thrusters are playing you don’t need all of them.
The thruster track might be ten seconds long (maybe shorter I don’t know what’s best), it’d be a seamless loop that repeats.
There are a couple of managers for managing particles, that would probably work in a similar way for triggering sounds. These could use work to be honest, as they got slightly over complicated, but they may offer some clues.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: JoshStaff<EMAIL_ADDRESS>Sent: Tuesday, October 16, 2018 4:20:56 PM
To: sarcoma/Drone-Squadron-JS-V3ish
Cc: Sean Cooper; Author
Subject: Re: [sarcoma/Drone-Squadron-JS-V3ish] Create a Sound Manager (#1)
Shouldn't be too much of a hassle -- how do you envision the 'state' of the sound being tracked? Per component? or globally across the app?
I like the idea of a SoundManager, have it responsible for managing what's playing, playing, pausing and creating the audio elements on page, Then have a SoundFactory which can a map of relevant / 'valid' sounds (mp3 links?) and on app init - pre load those sounds?
Consider an API similar to
`
import sound from 'sound'
//App Initialisation
sound.load();
`
I'm not entirely sure how games generally implement say, ships exploding. If a ship explodes and the sound runs for say, 2 seconds, and another ship explodes is there two ship explosion sounds?
I would say yes. Although that changes implementations slightly as you can no longer tell the sound manager to 'play', it requires proper signatures.
What do you think about say,
`
SoundFactory
soundFiles [Array]
StaticCreate {soundFile} : returns SoundFile
`
SoundFile could then be passed to the SoundManager.play() method, maybe with a signature similar to: SoundManager.play({SoundFile, ShouldLoop}) - This way, you can delegate the assigning of an identifier / key to the SoundFactory (To enable you to do things like 'play' or 'pause' by id) but keep the presentation functionality in the SoundManager. This all assumes we don't know which audio file is going to play at run time until, well... we do?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsarcoma%2FDrone-Squadron-JS-V3ish%2Fissues%2F1%23issuecomment-430279969&data=02|01||59d019bdd4b74b415ed908d6337af8e9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636753000579229406&sdata=xj9rT8H%2Fp6SJM%2BLx203UInaA6es2%2FxMfv8lKVLd4jOc%3D&reserved=0, or mute the threadhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB0oq-vF5gABwt_A8hSctBcLWZk9Q5srks5ulflYgaJpZM4XGmMH&data=02|01||59d019bdd4b74b415ed908d6337af8e9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636753000579229406&sdata=2bLUgCmrPyUoDnzRzr2gdLEANlK8ySF8%2Fndqf%2BUvxYY%3D&reserved=0.


ADF JIRA connector

Good day,
This is not specifically an issue, but I'm looking for more information about why the Jira connector is in a beta state if it has any security flaws or it may have unexpected behaviors or simply because you are adding new features.
Thanks in advance.
Regards

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

ID: ce2a9927-a4a0-23c9-4172-48247915abf3
Version Independent ID: 6e658bbd-289d-bb51-535a-7cc79d021392
Content: Copy data from Jira using Azure Data Factory (Beta)
Content Source: articles/data-factory/connector-jira.md
Service: data-factory
GitHub Login: @linda33wj
Microsoft Alias: jingwang

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

@vasivara-MSFT Thanks for keeping me updated. I will wait for the answer. Regards.

@FrancisRD91 thanks for reaching out. For “beta” connectors, there is NO any security flaw. We keep monitoring the customer usage and feedback, and evaluate if any improvement required on functionality/experience or graduate it to normal connector. We welcome you to try it out and see if it can meet your need. Feel free to keep following up with me via mail. I'll close this.
#please-close

@linda33wj thanks for your very useful answer. I'm going to test the connector and anything that I believe can be improved I'll let you know. Regards


Remove duplicate paragraphs - issue #1199

Closing issues

Closes #1199
Description

On https://docs.chain.link/data-feeds/ens, Naming Structure and Subdomains paragraphs are duplicated.
Changes

Remove the duplicated sections: Naming Structure, Subdomains

Good fix. Thank you!

My pleasure.  :)


[core][core-rest-pipeline] Body with non-ASCII string errors out

In the core-rest-pipeline package, when you send a GET request with a parameter "啊齄丂狛狜隣郎隣兀﨩ˊ〞〡￤℡㈱‐ー﹡﹢﹫、〓ⅰⅹ⒈€㈠㈩ⅠⅫ！￣ぁんァヶΑ︴АЯаяāɡㄅㄩ─╋︵﹄︻︱︳︴ⅰⅹɑɡ〇〾⿻⺁䜣€" the code fails.
You can observer this in the test case should receive an UTF8 string in the response body test case in the V6 SDK generator.
@ramya-rao-a FYI....

Code Merged


Showing git output when updating

Hi @b4b4r07 ,
zgen shows the output of git pull when updating, which I find useful to give an idea of what/how much has changed in each plugin.
Could it be possible to do the same, maybe with the addition of a --verbose flag to update?

Hi,
the output of git pull that you say is the something like this?:
$ git pull
remote: Counting objects: 14, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 4), reused 13 (delta 3), pack-reused 0
Unpacking objects: 100% (14/14), done.
From https://github.com/b4b4r07/zplug
   db2306b..661b481  master     -> origin/master
Updating db2306b..661b481
Fast-forward
 zplug | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

If that's the case, it's difficult to be accepted because the update command is run asynchronously.

Yes, that's the output I'm talking about. I was thinking that asynchronicity could make things harder.
Is there a way to at least display "Updated!" only if an update has actually taken place?
If I'm not mistaken, at the moment there's no way to know that.
Thanks!

$ zplug update
Updating...  b4b4r07/http_code
Updating...  zsh-users/zsh-completions
Updating...  b4b4r07/emoji-cli
Updating...  junegunn/fzf-bin
Updating...  zsh-users/zsh-syntax-highlighting
Updating...  b4b4r07/enhancd
Updating...  zsh-users/zsh-history-substring-search
Updating...  b4b4r07/zsh-gomi
Updating...  b4b4r07/zplug
Updating...  mrowa44/emojify
Updating...  plugins/git
Updated!     b4b4r07/zsh-gomi                           (1.92s)
Up-to-date   b4b4r07/enhancd                            (1.96s)
Up-to-date   b4b4r07/zplug                              (2.07s)
Up-to-date   zsh-users/zsh-history-substring-search     (2.08s)
Up-to-date   mrowa44/emojify                            (2.08s)
Up-to-date   b4b4r07/emoji-cli                          (2.11s)
Up-to-date   b4b4r07/http_code                          (2.13s)
Updated!     zsh-users/zsh-completions                  (2.31s)
Updated!     zsh-users/zsh-syntax-highlighting          (2.30s)
Up-to-date   plugins/git                                (3.17s)
Up-to-date   junegunn/fzf-bin                           (8.17s)

+1 for this feature. Along with that, maybe a different color for Up-to-date would be nice.

Yeah, basically that. I would add that you don't need the "Updating..." section, since you end up with duplicate entries for each plugin.. or maybe you could replace the "Updating..." text once it's updated, á la vim-plug.

DEMO

I can say that "Updating..." message is necessary because the message means starting to git fetch and "Installing..." and "Updatig..." are corresponding.

:construction: Under consideration for more information

Hi,
I'll merge this, if you like this changes.

Looks good to me!

:laughing: I'm glad


Add an option to fail builds on warnings

This is not exactly an issue but a missing feature. I'd like to set up my Xcode so that any message from tailor fails the build (even a warning). Can't find an option to do this.
Can we add this?

@YANOUSHek, is this what you are looking for?

@adityatrivedi nope, this does not allow to fail the build when there's only a warning detected by tailor.

Setting it to error [...] also fails the build in Xcode, if any errors are reported

With max-severity set to warning, all violation messages are warnings and the Xcode build will never fail.

There's no option to make any message (no matter if it's a warning or error) fail the Xcode build.

Got it, thanks for clarifying the enhancement you’re looking for. Ideally Xcode’s “treat warnings as errors” would allow you to do exactly that, but it seems to only work for compiler warnings and not Build Phase Run Script output. We envision this being a separate command-line option. Our team is pretty time constrained at the moment, a pull request to add a --strict flag would be welcome.


Branch position class

Add status to position class, where default status is 'Open'. JsonAdaptedPosition file has also been edited to include status.

Codecov Report

Merging #71 (7909954) into master (d220984) will increase coverage by 0.16%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master      #71      +/-   ##
============================================
+ Coverage     76.13%   76.30%   +0.16%
- Complexity      530      532       +2
============================================
  Files            87       87
  Lines          1546     1557      +11
  Branches        164      164
============================================
+ Hits           1177     1188      +11
  Misses          324      324
  Partials         45       45

Impacted Files
Coverage Δ

...in/java/seedu/address/model/position/Position.java
95.83% <100.00%> (+1.71%)
:arrow_up:

...ava/seedu/address/storage/JsonAdaptedPosition.java
96.42% <100.00%> (+0.59%)
: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 d220984...7909954. Read the comment docs.

We decided to remove candidates from Position. You can wait for my PR to be merged since I removed them already and updated the relevant test cases.


Support user-defined default context/device

Sometimes it is desirable to have CL-accelerated libraries initialize with user context managed by some outside application. But Boost.Compute currently hides global state of context/device/queue from users; there is no way to let user override e.g., their own global default context.
Because Boost.Compute already maintains global state of context/device/queue inside static functions, I think the best case scenario is being able to assign global CL context (derived from preferred CL compute device) without relying on parsing through pre-defined environment variables which default_context() implements.
One of the main benefits is to make direct access of device memory between shared objects/DLLs easily achievable. When some main application initialize two libraries Foo and Bar, those two libraries also initialize all internal buffers with global user-defined context. That way, data produced by library Foo can be directly consumed by library Bar. If not being able to set global state it would take much effort for library authors to add additional input argument for virtually every Boost.Compute call.

I have a WIP patch that lets you set global context at the very first call to system::default_context(), via an additional input argument user_context. Afterwards the default queue will be derived from the user device (which is in turn derived from user context) and the provided user context itself. It does not change the old behavior if additional input argument is not provided.
This gives the same guarantee that the global states is only set when default_device/context/command_queue() is called for the first time. Any subsequent call afterwards just returns the same value over again.
It does not yet guarantee thread safety for the first call. They have to be done atomically or it will have UB when threads concurrently reading and writing the static variables at the same location. Maybe I could add a lock guard inside the calls but it may take a performance hit.

The idea overall is ok. However, I think having something like set_default_context() or switch_default_context() would be better, because you can return the old default context. Implementation may be less straighforward compared to your patch.

It does not yet guarantee thread safety for the first call. They have to be done atomically or it will have UB when threads concurrently reading and writing the static variables at the same location. Maybe I could add a lock guard inside the calls but it may take a performance hit.

Right, I think that would be a good idea. We don't want to break someone.

The idea overall is ok. However, I think having something like set_default_context() or switch_default_context() would be better, because you can return the old default context. Implementation may be less straighforward compared to your patch.

I think it's going to be very contrived. How could two functions, say set_default_context(context) and default_context() share the same scoped static variable default_context? We cannot use global static variable here due to Boost.Compute's header-only nature.
Also, I am not sure of the benefit of switching the default context mid-run. Many of the Boost.Compute algorithms do not check if user-specified command queue matches input vector's context. Something like
using namespace compute;
vector a(42); // allocated with default context
set_default_context(user_ctx);
vector b(42); // allocated with user context
copy(a.begin(), a.end(), b.begin()); //  would crash! context mismatch

probably introduces more problems than we want. My proposed patch avoids this problem, by forcing the user to settle down default context at program start.
If the original default context found by Boost.Compute is desired, maybe we can make find_default_device() a public method. Anyway, I enjoy putting this up for discussion since this patch takes away some of the succinctness of Boost.Compute and I am not really sure what's the best to do

I think it's going to be very contrived. How could two functions, say set_default_context(context) and default_context() share the same scoped static variable default_context? We cannot use global static variable here due to Boost.Compute's header-only nature.

You're already doing something similar in your PR by having static variable in private member functions of class system. See https://ideone.com/iZQwsb
Your current approach in #831 has a few problems:

You create defaults using new operator, but you never free the memory.

Static value instead of static pointer is safer.

You can have a mismatch between default device and default context.
If I, as a user, provide you an OpenCL context with multiple devices, you will select the first one as the default, which may not be user's choice (and as you've argued users want to use default context/device/queue instead of user-created context/device/queue).

Maybe instead, we should only a function to the default command queue (or for queue and context)?
Also, IMHO, API should prevent default device/context/queue mismatch.

For accessing default values multiple-readers, one writer synchronisation would be more efficient (this would require shared_mutex and shared_lock from C++14 or Boost).

@jszuppe Thanks for providing an example.
Allowing user to set default command queue instead of default context, as you suggested, is a great alternative. It conveniently avoids cases where the user-provided context associates with more than one device. I'll go through the API design choices we have so far (correct me if missing anything):

We let user attach their own default command queue via default_queue(). It's associated device and context are automatically set by Boost.Compute as default device and default context, respectively. Default command queue and context are retained to prevent deleting associated resources. <-- my bet is on this now

We let user attach their own default context via default_context(). As before, associated device and newly created command queue are set as default. But further implicitly restricting that the provided context be associated with one device only or it will throw an exception.

We create a new API to let user attach context/device/queue all at once. And all of them are set as default.

In all the above alternatives, API should detect default device/context/queue mismatch and they should be thread-safe.
As for switching default context/queue/device during mid-run, I'm still not entirely convinced as it changes the behaviors of default_context/device/queue() significantly. All default_xxx()'s currently behave like when it's set, it's settled for the lifetime of a program or DLL. As well as implications of the resulting behavior change, as in the code snippet in my last comment. Perhaps you could provide a use case? If indeed practical, could it be done incrementally for the next possible PR or better do it all at once?
As for the implementation details:

You create defaults using new operator, but you never free the memory.

Static value instead of static pointer is safer.

The static instance is newed only once for the lifetime of a program and deleted by the OS when program exits so it doesn't "leak" as in "leak while running". In fact, with current static object, I observed static context object (instead of pointer) sometimes gets destroyed before program_cache does, so the time when program's dtor are called the underlying cl_program are already gone with the context before it, throwing CL errors. Static pointer ensures context is released last. My rationale is based on Why doesn’t the Construct On First Use Idiom use a static object instead of a static pointer

For accessing default values multiple-readers, one writer synchronisation would be more efficient (this would require shared_mutex and shared_lock from C++14 or Boost).

I can adapt to C++14 shared_mutex and shared_lock. However current implementation doesn't require writing the static instance more than once. In this case C++11 atomic is enough and supposedly more lightweight, because reader threads only need to perform one atomic load for all subsequent reads.

In fact, with current static object, I observed static context object (instead of pointer) sometimes gets destroyed before program_cache does, so the time when program's dtor are called the underlying cl_program are already gone with the context before it, throwing CL errors.

Can you provide an example? I think I can think of one, but if you already have one working it would be simpler.

The static instance is newed only once for the lifetime of a program and deleted by the OS when program exits so it doesn't "leak" as in "leak while running". In fact, with current static object, I observed static context object (instead of pointer) sometimes gets destroyed before program_cache does, so the time when program's dtor are called the underlying cl_program are already gone with the context before it, throwing CL errors. Static pointer ensures context is released last. My rationale is based on Why doesn’t the Construct On First Use Idiom use a static object instead of a static pointer

You have to remember that context does not have an empty destructor. If it's never called then OpenCL context is never released. I can't say how every OpenCL platform is implemented, thus I can't say for sure system will clean everything every time.

I'll go through the API design choices we have so far (correct me if missing anything):

I would go with API only for default queue (which also changes default context and device).

As for switching default context/queue/device during mid-run, I'm still not entirely convinced as it changes the behaviors of default_context/device/queue() significantly. All default_xxx()'s currently behave like when it's set, it's settled for the lifetime of a program or DLL. As well as implications of the resulting behavior change, as in the code snippet in my last comment

Issues like the one you presented in the example already occur when for example: users create a vector in default context and they try to use it with their own (not default) queue. I guess, if anyone is using Boost.Compute for commercial/big/important project I'd recommend not using defaults at all (I expect them not to use them).
I'm not sure if there are significant reasons for not allowing user to change defaults at any time. However, I guess, for now we can try giving them [users] feature to change defaults in the runtime (not just by env variables). If someone comes knocking on our doors to implement change-at-any-time, then we can revisit it.

I can adapt to C++14 shared_mutex and shared_lock. However current implementation doesn't require writing the static instance more than once. In this case C++11 atomic is enough and supposedly more lightweight, because reader threads only need to perform one atomic load for all subsequent reads.

I will comment on that later this week.

Can you provide an example? I think I can think of one, but if you already have one working it would be simpler.

I just tried, using static pointer to context does not solves this problem. Maybe I'll open another ticket if I can repro the issue with minimum example.
So let's use static object (as before) instead and allow user to attach command queue. I'll hear how you weigh in on atomic and shared_mutex. Your advices are of big help. Many thanks

I just tried, using static pointer to context does not solves this problem. Maybe I'll open another ticket if I can repro the issue with minimum example.

I think I might have a solution for this problem, but it would be great to have a minimum example for reproduction.

So let's use static object (as before) instead and allow user to attach command queue. I'll hear how you weigh in on atomic and shared_mutex. Your advices are of big help. Many thanks

:+1:

So let's use static object (as before) instead and allow user to attach command queue. I'll hear how you weigh in on atomic and shared_mutex.

You're right for a situation when API only allows user to set value of a default queue/context/device only once. However, let's consider to what happens if default context can't be set by a user, but default command queue can be set by user, however only once:
vector<float> a(10); // default context and default device are created
set_default_queue(user_queue);
vector b(10, 1.0f); // allocated using context from default queue, because there is mismatch.
copy(a.begin(), a.end(), b.begin()); //  error, a and b are in different contexts.

We either need a single initialisation: defaults must be initialised at the same time, so the 2nd line fails as default queue was already set, or user needs to be able to change defaults multiple times.

There are also other use-cases like default-queues per thread (similar to cuda streams). I think the behaviour should be: setting a default device/context should be a one time action while setting a queue can be done multiple times, as long as the queue is for the same device/context

From: Jakub Szuppe<EMAIL_ADDRESS>Sent: Saturday, April 13, 2019 2:37 PM
To: boostorg/compute
Cc: Subscribed
Subject: Re: [boostorg/compute] Support user-defined default context/device (#827)
So let's use static object (as before) instead and allow user to attach command queue. I'll hear how you weigh in on atomic and shared_mutex.
You're right for a situation when API only allows user to set value of a default queue/context/device only once. However, let's consider to what happens if default context can't be set by a user, but default command queue can be set by user, however only once:
vector a(10); // default context and default device are created
set_default_queue(user_queue);
vector b(10, 1.0f); // allocated using context from default queue, because there is mismatch.
copy(a.begin(), a.end(), b.begin()); //  error, a and b are in different contexts.
We either need a single initialisation: defaults must be initialised at the same time, so the 2nd line fails as default queue was already set, or user needs to be able to change defaults multiple times.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/boostorg/compute/issues/827#issuecomment-482805494, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOWTBoguIS2qA2chG0sjRkb1ZIDYECPjks5vgc94gaJpZM4cURBi.

We either need a single initialisation: defaults must be initialised at the same time, so the 2nd line fails as default queue was already set, or user needs to be able to change defaults multiple times.

That falls into the goal we've had now: user is allowed one-time command queue setup. If there's context/device/queue mismatch the errors will be emitted.
I haven't had time in the past week but I expect to work on it again starting this week

There are also other use-cases like default-queues per thread (similar to cuda streams)

I think that could be done by declaring default command queue thread-local. I could certainly try

I think the behaviour should be: setting a default device/context should be a one time action while setting a queue can be done multiple times, as long as the queue is for the same device/context

I'm not sure if that's good for average user. For power-user sure, but power-users should already be using their own queues. I don't want users to confuse themselves after switching queues multiple times. Can you present a scenario in which changing default queues (withing the same context and device) is useful?

There are also other use-cases like default-queues per thread (similar to cuda streams).

I can agree with a macro which changes behaviour to per-thread default, or have a separate function, or both (but this can be delegated to separate issue), .

That falls into the goal we've had now: user is allowed one-time command queue setup. If there's context/device/queue mismatch the errors will be emitted.

Yes, but it means that you have to initialise all those values (device, context, and queue) at the same time the first time user asks for either default device, default context, or default queue:
vector<float> a(10); // default device, context and queue are set
set_default_queue(user_queue); // assert in debug version, exception :( or no-op in release

The PR #832 now ensures the following behaviors. Please review
vector<float> a(10); // default device, context and queue are set
command_queue user_queue;
system::default_queue(&user_queue); // throws; device/context/queue mismatch

compute::system::default_queue(&queue);
compute::system::default_queue(&queue); // assert in debug, no-op in release

As for per-thread default queue (mirroring CUDA's per-thread default stream), I think it can be easily achieved using BOOST_COMPUTE_DETAIL_GLOBAL_STATIC and additional config macro for switching legacy and per-thread queues. @Ulfgard feel like contributing to it?

Nice. What happens if someone asked for default device and then want to set default queue?

The system would check if user-provided queue is consistent with default device & context. If not, then an exception will throw telling it's context/device/queue mismatch


No nodes available to schedule pods

Hello, I followed the README and did a terraform apply. The apply went through without a hitch and no errors but I see that the pods are in Pending state. When I tried a kubectl describe pods on the hello-kubernetes.yaml I applied, the issue is as follows:
  Type     Reason            Age                     From               Message
  ----     ------            ----                    ----               -------
  Warning  FailedScheduling  3m48s (x122 over 124m)  default-scheduler  no nodes available to schedule pods

I went further and did this and discovered the source of the problem:
$ kubectl get nodes -o wide --kubeconfig ./kubeconfig
No resources found

Any insight into how to fix this? Again, this is after doing a terraform apply

Hi, this module by default only creates the eks cluster control plane if you don't define any of the optioins managed_nodegroup, managed_nodegroups, or fargate_profiles.
For more details, please refer to the other examples.

https://github.com/Young-ook/terraform-aws-eks/tree/main/examples/lb
https://github.com/Young-ook/terraform-aws-eks/tree/main/examples/fargate

Thanks.

Hello,
After several adjustments, I could get this to finally run. The last problem I discussed above had to do with the value of subnets not being set for the block for module eks-fargate. Please let me know if you would like me to submit a PR with these changes to help someone else who comes over to your repo.
Thanks!


Nice job thanks! Add an option to have just the final rendered video?

Title explains it all

cancel checkbox on debug , you can do it.


Show current place in map

It is better to show current user place.
But I can’t be bothered to implement permission logic ;;
If I will do, use PermissionsDispatcher.

done.


Seems to require UI thread

It appears an exception is thrown if the constructor is called on other than the UI thread.

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

ID: f923a4b6-4675-0237-093f-8199c3b9e7f0
Version Independent ID: da49cd15-3d01-d640-fb60-3d9b64d7a6a7
Content: WriteableBitmap(Int32, Int32) Constructor (Windows.UI.Xaml.Media.Imaging) - UWP app developer
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.ui.xaml.media.imaging.writeablebitmap.yml&version=GBlive&_a=contents
Product: windows
Git Login: wdg-dev-content
Microsoft Alias: wdg-dev-content

In general, XAML objects need to be constructed on the UI thread. Do people expect that this one is special, maybe?

WinRT xaml types have UI thread affinity, though that can be confusing sometimes because they're technically marked MarshalingBehavior=Agile and Threading=Both. However, there's there's nothing special about WriteableBitmap in that regard.
An overview of the threading model for DependencyObject and how to use the Dispatcher to access objects from another thread is available here:
https://docs.microsoft.com/uwp/api/windows.ui.xaml.dependencyobject.dispatcher


added misc/map-keys-flat to map keys without recursing

As discussed in https://github.com/janet-lang/spork/pull/136 here's map-keys-flat in it's own PR.

Does tabseq work for this kind of situation?
(defn mkf
  [f data]
  (tabseq [[k v] :pairs data]
    (f k) v))

(mkf inc {1 :a 2 :b})
# =>
@{2 :a 3 :b}

It should, but does it bring benefit over the slightly more simplistic version?

I think when one is the author of code, the situation is often different from when one is a reader of code one is seeing for the first time.  Shortly after expressing code, I think an author probably has more related details still relatively fresh in mind whereas a reader who is unfamiliar with the code has more holes to "fill in" to understand things.
If one is familiar with tabseq (not necessarily a good assumption perhaps), I would guess that the tabseq version is easier to perceive and hence understand:
(defn mkf
  [f data]
  (tabseq [[k v] :pairs data]
    (f k) v))

I would be surprised if it doesn't take somewhat longer (and involve more steps) to process the (edited) loop version:
(defn map-keys-flat
  [f data]
  (def res @{})
  (loop [[k v] :pairs data]
    (put res (f k) v))
  res)

as there is an additional identifier (res) to have in mind, and there are more forms to bring into one's awareness (e.g. the def form, the put form, and the res at the end).  I think the additional forms must be coordinated appropriately to achieve an end -- something all of us can get wrong -- so a reader might be thinking about what that coordination might be and whether it was accomplished appropriately.  That's absent from tabseq and hence a non-issue.
If one is familiar with both tabseq and loop, it might raise the question of why loop was chosen.  Like may be there's something special it's doing that is awkward with tabseq.
Anyway, in isolation, this might not seem like much, but usually these bits sit in a file with other code and in sum they can start to add up especially when investigating issues and one is trying to hold in mind multiple functions and macros.
Don't know whether that's an issue in this case at the moment but as things get added to files that might be different down the line...
(I don't claim to do this kind of thing diligently in my own code -- I don't always attend to it or notice where it might be done, but I suspect I'd benefit a bit if I did it more (^^; )

You make a convincing argument, I updated the code to your suggestion.


Enable/disable mTLS per service URL path

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
Hi,
I have a question:
Is it possible to enable/disable mTLS for particular URL?
Lets consider the situation I have:
Service_A exposes port 8080 and it serves several URLs like /, /status, /metrics
So I want to have following:
enable mTLS for service_A:8080
disable mTLS for: service_A:8080/status, service_A:8080/metrics
Is it possible ?
Version
Client Version: v1.24.13
Kustomize Version: v4.5.4
Server Version: v1.26.7

Additional Information
No response

Yes, depending on  how you want to do it.
On the client side: Use a VirtualService to route to a specific subset. Have a subset mtls and no-mtls and pick the appropriate one per-route.
On the server side: run in permissive mode. Use an AuthorizationPolicy to set principals to * on paths that require mTLS.

Thanks for responding @howardjohn.
This is how my current gateway and virtual service looks like. If you have any sample you can guide me to?
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata:   name: some-gateway-dev spec:   selector:     istio: dev-ingressgateway   servers:     - hosts:         - some.domain.com       port:         name: http-some-gateway-dev         number: 80         protocol: HTTP       tls:         httpsRedirect: true     - hosts:         - some.domain.com       port:         name: https-some-gateway-dev         number: 443         protocol: HTTPS       tls:         credentialName: some-gateway-dev-credential         mode: MUTUAL         subjectAltNames:           - allowconnectionfromhost.com
`apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: some-virtualservice
spec:
gateways:

some-gateway-dev
mesh
hosts:
some.domain.com
service-tcp-some
http:
match:

uri:
prefix: /
timeout: 30s
route:
destination:
host: service-tcp-some
port:
number: 8080
subset: some-#VERSION#
weight: 100
`

@howardjohn Any help on this. I wanted to make sure whatever external traffic coming from Gateway, I could selectively bypass mtls for certain path. I tried implementing it in AuthorizationPolicy but it don't allow you to mention subjectAltNames to it.

@dwvd
How did you manage to bypass mtls for a certain path?

/not stale

If you just want to guard a service with envoy, i think it cannot decide to enforce mtls for a sepecific url paths. because tls handshake is gona happen ealier than Http headers sent.

@dwvd
How did you manage to bypass mtls for a certain path?

You can host your health check on different port (non-mtls) and service on different port(mtls). This works.