Added a new image classification exercise

Description
Added a new image classification exercise involving pre-trained models.
Fixes # (issue)
Tested on

[X] Windows
[ ] Linux Ubuntu
[ ] Mac
[ ] Others  (State here -> xxx )

Assign a reviewer to review your code.

Great job on developing the module @ameliepeter! I feel it would be slightly tidier if these three models could be wrapped up in their own respective function, and pass in hyperparameters as arguments into them.

Review done @kenghooi-teoh pretty clear explanations and comments

@KianYang-Lee here's a few changes that I suggest to improve the explanation of tasks and parts of the code:

Change the exercise instructions to the following:

In this exercise, we will try to do a simple hands-on exercise to assess the relationship between CNN's complexity and the achieved model performance for a given dataset.
You may use a different image dataset than the 4-class Weather Image dataset provided (Cloudy/Rain/Shine/Sunrise) in the WeatherDataSetIterator.
To make your comparison meaningful:

Try models with different architectures e.g. VGG16, VGG19, SqueezeNet with noticeable difference in terms of model size.
Train each of the 3 models on a common set of hyperparameters e.g. learning rate, updater, batch size etc. and image preprocessing methods as well as the dataset splits.
Keep a record of evaluation metrics among these 3 models and compare their performance. The comparison should highlight how the differences in  model architectures (e.g. number of layers, use of skip connections, use of Batch-norm etc.) affect the achieved scores, and you may also include other points of discussion that reasonably explains the disparity/similarity of model performance for the given dataset.

In line 33, Amelie mentioned that dataset is stored in "resources" folder, but the iterator file downloads the dataset into the data folder in home directory instead of resources folder.

To make the code a little cleaner in the Main class, you may wrap the 3 chunks of Model configuration code into a getModelConfig() method

An example of comparison can be provided in the solution folder, as a txt file or other file formats that is readable

@KianYang-Lee here's a few changes that I suggest to improve the explanation of tasks and parts of the code:

Change the exercise instructions to the following:

In this exercise, we will try to do a simple hands-on exercise to assess the relationship between CNN's complexity and the achieved model performance for a given dataset.
You may use a different image dataset than the 4-class Weather Image dataset provided (Cloudy/Rain/Shine/Sunrise) in the WeatherDataSetIterator.
To make your comparison meaningful:

Try models with different architectures e.g. VGG16, VGG19, SqueezeNet with noticeable difference in terms of model size.
Train each of the 3 models on a common set of hyperparameters e.g. learning rate, updater, batch size etc. and image preprocessing methods as well as the dataset splits.
Keep a record of evaluation metrics among these 3 models and compare their performance. The comparison should highlight how the differences in  model architectures (e.g. number of layers, use of skip connections, use of Batch-norm etc.) affect the achieved scores, and you may also include other points of discussion that reasonably explains the disparity/similarity of model performance for the given dataset.

In line 33, Amelie mentioned that dataset is stored in "resources" folder, but the iterator file downloads the dataset into the data folder in home directory instead of resources folder.
To make the code a little cleaner in the Main class, you may wrap the 3 chunks of Model configuration code into a getModelConfig() method
An example of comparison can be provided in the solution folder, as a txt file or other file formats that is readable

I will work on this later, thanks

@KianYang-Lee pushed some code to get you started in the solutions folder, let's just work on enhancing e.g. example of explaining the question we asked in the instruction, loss monitoring etc.

OK will work on the enhancement by the end of this week

@kenghooi-teoh  feel free to review added tracking loss using UI

Oops fixed it


  More information may be available sooner here: https://github.com/dotnet/core/issues/6381#issuecomment-863576167
#assign:dzsquared

#please-close


MergeSortedStringSlices use sets

MergeStringSlices Modify to MergeSortedStringSlices Use sets to return sliced strings already sorted

Just a question for my understanding: Does using the k8s.io/apimachinery ,sets package provide any performance advantage?

Pre-allocated memory for map

/cc @dmcgowan


fix(protocol-designer): replace text link style

Overview
replace text link style
close RQA-3799

Test Plan and Hands on Testing

Changelog

Review requests
low

Risk assessment

interesting, this aligns with current designs? if so, then lgtm

@jerader
https://www.figma.com/design/1ot18My22DALIcjdLl5LJh/Helix-Design-System?node-id=4867-4167&m=dev
we need to use blue color for hover and focus-visible.

interesting, this aligns with current designs? if so, then lgtm

@jerader https://www.figma.com/design/1ot18My22DALIcjdLl5LJh/Helix-Design-System?node-id=4867-4167&m=dev
we need to use blue color for hover and focus-visible.

@koji cool thanks! lgtm


Server headless export bad error if template missing

Godot Master
Happens with Linux and Windows probably the others too.
Command
godot_server.server.tools.64 --export "Windows Desktop" ./../exports/test.exe
ERROR: copy: Failed to open - means the templates are missing(in my case). It would be nice to get a more specific error message.
./godot_server.server.tools.64
ERROR: copy: Failed to open
   At: core/os/dir_access.cpp:304.
ERROR: _fs_changed: Project export failed with error code 12.
   At: editor/editor_node.cpp:494.

Reverted with 007d1754e, I'll work on a better error handling.

@h4de5 Are you on a linux mashine? Ans master branch?
~/.local/share/godot/templates/3.1.dev/

@AlexHolly : thank you, very much! i just managed to get a valid export on WSL (ubuntu 18.03) using your path and the older 3.0.2 version. it seems its broken from 3.0.3 onwards... took me a while.

Still fails the same way in the current master branch.


Replicate and fix #589

Fixes #589

Moving into draft: it's unclear whether we want this patch to land on v0.38.x or v0.37.x.
As soon as we figure that out, will pull out of draft.

Thanks for the review, @cari-lynn. 👍🏻

Upon reviewing LTS support matrix, this fix is only required for v0.37.x 👍🏻
Will reposition...

Replayed as #613


When Flesh slabs land on other flesh slabs they should combine instead of breaking

Whenever a flesh slab lands onto another flesh slab, instead of being destroyed like a normal falling block, the two should combine to create a double flesh slab block.

Feature implemented.


Update to match k8s 1.18.0

I followed https://github.com/weaveworks/kured/blob/master/DEVELOPMENT.md#release-testing to test this on 1.18.0.

I have this in my backlog for tomorrow. Sorry for the delay!

We might want to update the README too. Want to do it in another PR or this one?

Yes. Let's do one more PR to check all the relevant versions and see if there's anything else we need to update.


No output item icon

Minecraft Version: 1.16.5
Forge Version: 36.2.22
Mod Version: 1.1.2
Single Player or Server: Single
Describe problem (what you were doing; what happened; what should have happened):
No icon on output slot. The item itself is there, and the image appears as soon as its dragged out of the slot, but in the slot itself the image isn't visible.


Getting ERR_FR_MAX_BODY_LENGTH_EXCEEDED with 12MB Feature

Using the GitHub Action (https://github.com/devcontainers/action) which has the CLI v0.23.2, I get the following error when adding a 12MB file included with my internal feature. This happens during the putBlob function.
PUT new blob
Error [ERR_FR_MAX_BODY_LENGTH_EXCEEDED]: Request body larger than maxBodyLength limit

Full Actions Output with Error
2022-11-06T17:06:16.7087852Z [2 ms] @devcontainers/cli 0.23.2. Node.js v16.18.0. linux 5.15.0-1022-azure x64.
2022-11-06T17:06:16.7094737Z [2 ms] Packaging feature collection...
2022-11-06T17:06:16.7105561Z [5 ms] Processing feature: aws...
2022-11-06T17:06:16.7713950Z [65 ms] Processing feature: debug...
2022-11-06T17:06:16.7785925Z [73 ms] Processing feature: ssh...
2022-11-06T17:06:16.7846462Z [79 ms] Processing feature: vpn...
2022-11-06T17:06:16.8040996Z [98 ms] Packaged 4 features!
2022-11-06T17:06:16.8050121Z [99 ms] Processing feature: aws...
2022-11-06T17:06:16.8056120Z [100 ms] Fetching published versions...
2022-11-06T17:06:17.1509131Z [445 ms] Publishing versions: 1,1.0,1.0.4,latest...
2022-11-06T17:06:17.4537718Z [747 ms] /tmp/features-output-1667754376705/devcontainer-feature-aws.tgz:  sha256:d34f42cc3870ad08ef6d1f3ff58986eee533ed5c3c07bbaeff80c69619261182 (size: 12399616)
2022-11-06T17:06:17.4563512Z [748 ms] Computed Content-Digest ->  sha256:e89734603f16f351ad6e54c2d33a3021623bc26a503aa3d40aa197db90d1161a (size: 64)
2022-11-06T17:06:18.2921524Z [1586 ms] PUT new blob -> 'sha256:d34f42cc3870ad08ef6d1f3ff58986eee533ed5c3c07bbaeff80c69619261182'
2022-11-06T17:06:18.3019794Z Error [ERR_FR_MAX_BODY_LENGTH_EXCEEDED]: Request body larger than maxBodyLength limit
2022-11-06T17:06:18.3021006Z     at RedirectableRequest.write (/usr/local/lib/node_modules/@devcontainers/cli/node_modules/follow-redirects/index.js:107:24)
2022-11-06T17:06:18.3022093Z     at /usr/local/lib/node_modules/@devcontainers/cli/dist/spec-utils/httpRequest.js:113:17
2022-11-06T17:06:18.3022520Z     at new Promise (<anonymous>)
2022-11-06T17:06:18.3023124Z     at requestResolveHeaders (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-utils/httpRequest.js:93:12)
2022-11-06T17:06:18.3023892Z     at putBlob (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-configuration/containerCollectionsOCIPush.js:212:74)
2022-11-06T17:06:18.3024732Z     at async pushOCIFeatureOrTemplate (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-configuration/containerCollectionsOCIPush.js:81:19)
2022-11-06T17:06:18.3025608Z     at async doPublishCommand (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/collectionCommonUtils/publishCommandImpl.js:71:14)
2022-11-06T17:06:18.3026705Z     at async featuresPublish (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/featuresCLI/publish.js:85:9)
2022-11-06T17:06:18.3027799Z     at async /usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/featuresCLI/publish.js:45:18 {
2022-11-06T17:06:18.3028315Z   code: 'ERR_FR_MAX_BODY_LENGTH_EXCEEDED'
2022-11-06T17:06:18.3028624Z }

Because there is no Lifecycle hooks for features (see https://github.com/devcontainers/spec/issues/60) I opted to include this 12MB binary file in my feature. Certainly a ~12MB image is OK?

Ah yes, I think I know the issue.  Our current implementation of the OCI distribution spec in the CLI currently doesn't page uploads.
The OCI spec linked above that method is not doing any chunking.  I think we'd need to support pushing-a-blob-in-a-chunk to properly chunk upload.
cc/ @edgonmsft I think we knew this was a limitation but nobody had hit it yet.  We should likely follow up with this, 12 MB seems reasonable to include in the uploaded Feature.

Just wanted to add that I'm also running into this issue trying to create a feature to install a custom GCC compiler for an embedded system.

Nothing close to being ready, but I forked the cli and started working on a patch myself.
Currently trying to figure out how to get tests running properly.
https://github.com/DarthCoder117/cli/pull/1/files
@joshspicer
The follow-redirects module uses a default max body size of 10MB, so I figure anything over 10MB makes sense to upload in chunks. I'd like to know hear maintainers opinions on whether or not this is a good solution.

Hello. What is the current status on this issue? I'm running into the same limitation

@joshspicer @DarthCoder117 This doesn't appear to be fundamentally a chunking problem.  From my investigation, the max request body size is a restriction that's solely imposed by the http client.  The problem seems to be that follow-redirects imposes a 10MB default limit to maxRequestBody as documented here: https://www.npmjs.com/package/follow-redirects
I was able to set this limit higher (e.g. 100MB) in src/spec-utils/httpRequest.ts by adding maxBodyLength to requestOptions.  I was then able to publish larger features (obviously up to 100MB in my case).
I'm happy to try and put a PR together, but I'd need some guidance over what a sensible limit to maxBodyLength should be, and whether or not this needs to be user-configurable.  Seems like this is quite easy to achieve vs implementing chunking in the client (which would be an alternate solution).

Thanks for investigating!  I don't think I have a strong opinion on sensible upper limit, although increasing by a factor of 10 for now (to the 100 MB) you've tested seems reasonable to me. Layers in container images are often larger than 100 MB, so that seems just as safe as the 10 MB "limit" currently imposed. We'd definitely accept a PR here, thank you!
cc/ @chrmarti thoughts?

Sounds good. I guess the affected request shouldn't be redirected anyway (the data transfer would be done twice when the first request replies with a redirect?).


stackedServices custom dialog UI (AlertDialog) with ability to pass in function to execute

Currently, there is the ability to create custom dialogs that when awaited will wait for user input and then complete. But there is a scenario where the dialog should not take user input but rather inform the user of what is happening like Alert Dialog. Currently, in stacked, I can use AlertDialog for my custom dialog but if the dialog is awaited it will never close (because it is an alert dialog, does not take any input). For example, in my current app AlertDialog is used when the mobile app is interacting with the server (loading, downloading data, sending data, etc.) this informs the user of the current action, prevents the user from going around the app (no ability to dismiss) and when the function completes it either presents the user with error or success in form of snackbar and then the action moves forward (navigates, updates UI, etc.).
The current workaround is the following:
// ignore: unawaited_futures
    _dialogService.showCustomDialog(
        variant: DialogType.loading, description: 'Loading...');
    bool hasError = false;
    HttpResult result;
    try {
      bool connected = await isConnectedToInternet();
      if (connected) {
        result = await someBusyfutureTalkingToTheServer();
      }
    } on Exception catch (e) {
      hasError = true;
    } finally {
      _dialogService
          // ignore: always_specify_types
          .completeDialog(DialogResponse(confirmed: true, data: false));
    }
    // Now that everything completes
    updateUI();

preferred way of dealing with alertDialog would be something like this:
var result = await _dialogService.showCustomDialog(
        variant: DialogType.loading, description: 'Loading...', runFunction: someBusyfutureTalkingToTheServer());

if(result.hasError){
  showsnackbarwitherror('something went wrong');
} else {
  showsnackbarwithsuccess('something went wrong');
  updateUI();
}

At this moment I am not sure if I am missing something in current CustomDialogUI setup or simply what I am asking does not exist, but functionality to use AlertDialog and pass function to run would definitely benefit some users. I am not sure how others handle "loading" when communicating with server but we relay on AlertDialog.

Hey, we're handling loading by giving the dialog UI it s own viewmodel and treating it like a normal view (which is it because it's inserted in the navigation stack).
So you can write it exactly as you would a normal view. That in addition to returning the expected result from the dialog in the response has covered all the scenarios we've encountered.

Makes sense but how would my completer run in a ViewModel and return value? In the examples shown it runs onTap or some sort of user interaction, if I for example create ViewModel for my loading dialog I would run completer as part of onModelReady, or ideally I would pass it to futureToRun in a FutureViewModel
@override
  Future<T> futureToRun() async => await completer(DialogResponse());

Does this mean that my completer will automatically close the view once run as a part of onModelReady and get DialogResponse? Do you have any samples to help me out I am a bit lost

I figured it out, thanks for the advice! I send the function as my "data" parameter and my viewmodel takes a function in the constructor, does some work in try/catch (if an exception shows up I can complete dialog) and it is executing this with onModelReady. If you have any other suggestion how to make this more efficient I would be more than happy to hear that, otherwise this solves my problem :)

If anyone in the future is interested in similar those is how I do it:
View:

class LoadingDialogView extends StatelessWidget {
  // ignore: always_specify_types
  final DialogRequest request;
  // ignore: always_specify_types
  final Function(DialogResponse) completer;

  const LoadingDialogView({
    required this.request,
    required this.completer,
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ViewModelBuilder<LoadingDialogViewModel>.reactive(
      viewModelBuilder: () => LoadingDialogViewModel(request.data),
      // ignore: always_specify_types
      onModelReady: (LoadingDialogViewModel viewmodel) async =>
          // ignore: always_specify_types
          completer(DialogResponse(data: await viewmodel.runProcess())),
      builder: (BuildContext context, LoadingDialogViewModel viewModel,
              Widget? child) =>
          AlertDialog(
        backgroundColor: Colors.grey,
        shape: const RoundedRectangleBorder(
          borderRadius: BorderRadius.all(
            Radius.circular(15),
          ),
        ),
        content: Row(
          children: <Widget>[
            const CircularProgressIndicator(
              valueColor: AlwaysStoppedAnimation<Color>(Colors.green),
            ),
            Expanded(
              child: Container(
                margin: const EdgeInsets.only(left: 22, right: 5),
                child: Text(
                  request.description!,
                  textAlign: TextAlign.left,
                ),
              ),
            )
          ],
        ),
      ),
    );
  }
}

ViewModel:
class LoadingDialogViewModel extends BaseViewModel {
  // ignore: always_specify_types
  Future process;
  LoadingDialogViewModel(this.process);

  // ignore: always_specify_types
  Future runProcess() async {
    try {
      return await process;
    } catch (error) {
      return CustomDialogException(error);
    }
  }

and once this custom dialog is registered this is how it is called:
var results = await _dialogService.showCustomDialog(
            variant: DialogType.loading,
            description: 'Connecting to ${device.name}',
            data: _service.callSomeFunction(param);
}

Results could be exception or actual data so you need to actually look at what type is returned since it is dynamic. Any feedback or suggestion on adjusting this is welcome


random id's generated in .json output cause a lot of merge conflicts

Search terms
.json, merge, id

Expected Behavior
When generating the .json output, there should be a reliable way to generate the node's id's which doesn't cause them to be scrambled each time it is generated.

Actual Behavior
Node id's get moved around which causes the entire .json output to fail git merge when 2 devs regenerated the .json output.

Steps to reproduce the bug
Use .json output format.  Generate the output.  Make a small addition to the jsdoc comments.  Generate the json output again. Notice that the generated .json contains lots of changes to the id's of nodes.

tsconfig.json:
{
    "compilerOptions": {
        "declaration": true,
        "noImplicitAny": false,
        "strictNullChecks": false,
        "strictPropertyInitialization": false,
        "noFallthroughCasesInSwitch": true,
        "removeComments": false,
        "lib": ["dom", "es2017", "es2018"],
        "skipLibCheck": true,
        "module": "esnext",
        "target": "es2017",
        "moduleResolution": "node",
        "downlevelIteration": true,
        "noLib": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "sourceMap": true,
        "rootDir": "src",
        "outDir": "dist",
        "baseUrl": ".",
        "paths": {
            "rxjs": ["node_modules/rxjs"]
        },
        "types": ["reflect-metadata", "jasmine"],
        "esModuleInterop": true
    },
    "exclude": ["node_modules", "tests", "dist", "test"]
}

How you are running TypeDoc + any relevant configuration files
npx typedoc --options typedoc-elements.json
typedoc-elements.json contents:
{
    "entryPoints": ["./src/elements/"],
    "exclude": ["./src/!(elements)/**"],
    "json": "../extensions/ext-docs/src/typeDocOut/ace-extension-elements.json",
    "excludePrivate": true,
    "excludeProtected": true,
    "excludeExternals": true,
    "includeVersion": true,
    "entryPointStrategy": "expand",
    "logLevel": "Error"
}

Environment

Typedoc version: "~0.22.17"
TypeScript version: "~4.7.2"
Node.js version: 16.15.0
OS: Windows 10

ids are dependent on the order of conversion, which depends on what declarations are documented, so if you add a new export or remove something, I'd expect ids to change.
I tried adding a comment to a function and regenerating json docs with the latest version and saw no id changes. How ids are generated hasn't changed since I started maintaining TypeDoc years ago, so I'd expect it to be the same in the old version you're running.
I generally recommend not manually building docs with TypeDoc. I instead recommend setting up a pipeline to rebuild docs on push to the default branch and push the built site to a separate git repo/deploy branch, then devs don't have to remember to do so, or deal with merge conflicts. There's an example config in https://github.com/TypeStrong/typedoc/issues/1485 for GitHub actions.


Add support for object destructuring in v-on

What problem does this feature solve?
When declaring components, this sort of repetitive syntax occurs a lot:
<component @log="log" @alert="alert" />

This feature would allow event declarations to be more DRY, similar to the way v-bind currently works:
<component v-bind="{foo, bar}" />

What does the proposed API look like?
<component v-on="{log, alert}" />

dup of #5578

@posva although this issue is very similar to #5578, the difference between the proposed API of each one is significant, so can this issue be reopened?

I see the same API with different examples: one using native events and other using custom
Did I miss something?


Monthly check

Checks when changing months to handle income/expenses correctly for users

Set up cron jobs on server


unknown abbreviation

Original text:
Yes, both the Enterprise Resource domains that are hosted in the cloud and the domains that are categorized as both work and personal have a 16383-B limit.
What does the -B mean exact (Bit, Byte)?

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

ID: f9c07cd4-de43-6ac5-075c-2b93fa0efb66
Version Independent ID: 66a4adf9-e97a-1114-bb22-e24d5c661e14
Content: FAQ - Microsoft Defender Application Guard (Windows 10) - Microsoft 365 Security
Content Source: windows/security/threat-protection/microsoft-defender-application-guard/faq-md-app-guard.yml
Product: m365-security
Technology: mde
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

Thank you @vkleinerde for posting your question here, and thank you @michaelAngeloEgypt for submitting the pull request to fix the issue.


Tooltips have wrong border color

Theme
Swing
Jewel

Dark

Light
(same as above)
(same as above)

Light with light header

As of 0.9.0

This is even worse now it seems in 23.2, as the border is closer to black in the Swing implementation:

Following with IntelliJ UX team to clarify if it's expected.

@c5inco news from IJUX team?
This is the current status of the UI for tooltips [SWING]

version
dark
light
light with light header

232.5

233.2

@c5inco ping :)

@c5inco ping again :)

I think this is mostly a Swing bug, where switching themes causes the borders to be the wrong colour. @hamen please verify if this has been fixed in 242 in the platform — note you MAY need to restart the IDE after changing theme, if the light theme popup borders are still appearing black.

In 242, I don't see any glitch with borders:

Ours are OK as well:

Can you check Light with Light Header? The normal Light theme has dark tooltips, so you would not notice the dark border.

It looks ok for me on 242 when switching themes in Swing. Hopefully it means they fixed their bug :)

Let's consider this done for now, we'll revisit if need be.


Cubes not on same grid

Whilst each band is on the same grid, making outputs of makecube.py fine, this is not true for makebigcube.py. A regrid step is needed to ensure that all planes match spatially within the big cubes.

Now fixed in PR #23


Proposal: A new unified loading/unloading SQL syntax and design

Background

There are too many types of loading in StarRocks, Stream Load / Routine Load / Broker Load / Spark Load, …
Different types of loading have different SQL syntax and different implementations which are hard to maintain and cost more engineering resources;
The unloading syntax isn't similar to the loading syntax, and its function is weak;

Purpose

Unify loading/unloading SQL syntax;
Separate loading stages clearly, including different types of source, such as Kafka, Pulsar, Flink, or just Local host;
Support more properties for different file types, such as CSV, JSON, ORC, Parquet, etc.

Some Research before the design

The loading/unloading SQL syntax of snowflake looks good;
Some other databases are also under investigation, including Amazon Redshift, ClickHouse, MySQL, Vertica, etc.

Thanks to those engineers and designers already doing a lot of work in this area.
Design
There are three scenarios:

Loading data from Local host.
Loading data from Cloud, such as HDFS, S3, etc.
Continuously loading data from a stream, such as Kafka, Pulsar, etc.

We refer to them accordingly as Local Loading, Loading, Continuous Loading.

Local Loading: The user PUSHES the data from the Local host into the StarRocks by calling a script or using a piece of Java code through HTTP protocol or other protocols. Almost the same as the current Stream Load.
Loading: The user calls a COPY command (a SQL statement) through the MySQL protocol, and then the StarRocks system loads the data from HDFS, S3, etc. (maybe through Brokers)
Continuous Loading: The user calls a STREAM COPY command (a SQL statement containing a sub COPY command) through the MySQL protocol, and then the StarRocks system triggers a PERIODICALLY scheduling task or something else which will read data from a source, such as Kafka and Pulsar, and loads the data into the system. That means the data will be CONTINUOUSLY loaded like a stream.

Loading
Local Loading

Almost an enhancement of current Stream Load

Still use the HTTP protocol to Load data from Local host.
The same Loading SQL syntax as Continuous Loading which will be described below.

There are two similar ways to load data from Local host.
A single curl post
We can load data from Local host by using a single cURL post with the loading SQL statement directly in the Header parameters.
curl -H "sql:${sqlStatement}" -H "<otherHeaders>"
    -T /path/to/data.csv
    -XPUT http://fe_host:http_port/api/{db}/{table}/_stream_load

Where the sqlStatement is roughly described as below (It should be flattened to a single line in the cURL command):
COPY INTO [<db_name>].<table_name>
[ transfomationAndFilter ]
FROM PIPE -- indicates that the data comes from a client through a pipe
WITH LABEL <db_name>.<label_name>
parameters
...

More information about the COPY command will be detailed in the next section.
Transformation and Filter ( transformationAndFilter ) and other parameters will be detailed in the COPY command too.

It's easy to use, without too much change.
However, there are some disadvantages: the Header only supports a limited length. \r,\n could NOT be placed in the statement directly (We should use \x0d , \x0a instead).

It's the recommended way when the copy statement is not too complicated.
Two steps curl post

Create a loading PIPE first using a similar cURL post:
curl -H "sql-type:FILE" -T /path/to/copy_data.sql
    -XPUT http://fe_host:http_port/api/_stream_load

The "sql-type:FILE" header parameter indicates that the file to be uploaded is a SQL file and not a data file as usual

-- file copy_data.sql
CREATE [ OR REPLACE ] PIPE [ IF NOT EXISTS ] <pipe_name>
    AS <copy_statement>

StarRocks will create a PIPE object which will wait for incoming data and load the data into the system with COPY command.

Upload data through the PIPE created above with another cURL post:
curl -H "sql-pipe:<pipe_name>" -T /path/to/data.csv
-XPUT http://fe_host:http_port/api/{db}/{table}/_stream_load

The "sql-pipe:<pipe_name>" header parameters indicate that this cURL post will use a loading PIPE already created before.
We can use the PIPE as long as we want without creating it every time.

The COPY command has two main forms：
/* Standard data load */
COPY INTO [<db_name>].<table_name>
FROM location
[ WITH LABEL '<db_name>.<label_name>' ]
[ FILES = ( '<file_name>' [ , '<file_name>' ] [ , ... ] ) ]
[ PATTERN = '<regex_pattern>' ]
[ DATA_FORMAT = ( TYPE = { CSV | JSON | ORC | PARQUET } [ formatTypeOptions ] ) ]
[ copyOptions ]
[ validationOptions ]
[ otherOptions ]

location ::=
    { SOURCE '<source_name>' |   -- stream data such as from KAFKA may be encapsulated as a SOURCE
      { PIPE | HDFS | S3 | ... }
      [（ 'hdfs://path' [,...]   -- different types with different detail parameters
          RESOURCE = ( { RESOURCE_NAME = '<resource_name>' | resourceOptions )
        ) ] }

resourceOptions ::=  /* some binding relationship with location */
    [ endpoint = '<endpoint_list>' ]
    [ CREDENTIALS-info ]  /* user/password；AK/SK；kerbros；HA; IAM; etc. */

/* Data load with transformation
 */
COPY INTO [<db_name>].<table_name>
[ (column [,...] ) ]
SELECT { * | { column-expression | column } [,...] }
FROM location
[ WITH FIELDS(['<field>' [AS] ] <source_field_name> [,...] ) ]
[ whereClause ]
[ WITH LABEL <db_name>.<label_name> ]
...

Mainly similar to Snowflake COPY syntax.

Enhance transformation & filter to support stronger and more flexible expressions. (will be detailed as follows)

Use WITH FIELDS to rename column names for convenience:

When loading JSON format data:

We can use the outermost keys of a JSON object as column names directly.
We can also use WITH FIELDS('$.id' as id, '$.a' as ax) to rename any JSON value with a JSON path like jsonpaths as before.

When loading CSV format data:
We can directly use WITH FIELDS(a, b, c) statement to rename CSV fields from 1 to n.

Location indicates the location where data come from, such as a SOURCE, a PIPE, or HDFS/S3 files.

RESOURCE could be created as below, or just be unfolded in the COPY command:

CREATE RESOURCE <resource_name>
    endpoint = '<endpoint_list>'
    [ CREDENTIALS-info ]  /* user/password；AK/SK；kerbros；HA; IAM; etc. */

Format Type Options ( formatTypeOptions ) includes some parameters same as Snowflake's formatTypeOptions and more:

use_header_format: whether to use the header line names as column names in sequence.
skip_empty_line: whether to skip lines only with white space.
...

Transformation & Filter
The syntax will be mainly as below:
[ (x, y, w, ...) ]  -- field names in the target table, so we can omit some unwanted fields
                    -- there are 90 columns more
select year(datetime($11)), month(datetime($11)), day(datetime($11))
    , $1..$10, $21..$100
from location
with fields(a, b, c, ...)
where $2::int > 2

The columns of the target table. Because they can be directly copied from the target table (using show create table <table_name> ), it won't be too troublesome.
The select supports the configuration of a range of fields like $1..$10 for easy writing and maintenance. At the same time, you can also write ordinary functions (such as array([$2,$3,$5]) or some more complex functions) or a single column.
If you want to use named columns, you can use WITH FIELDS(…) , but it should be either empty or all listed.
If there is an error or ambiguity in the type derivation in the where clause, you should give a type prompt, but only needed when it's required;

Some simple examples:
-- All the columns will be mapped one-one using their positions
<nothing-to-specify>

-- Select some columns from source file with column ids(positions)
select $1, $1+$2, to_string(c)

-- Select 99 columns from column 1 to column 99 of the source file,
--   and specify the data type of column 100 for filter
select $1..$99
where $100::int > 2

-- Name all the columns from the source file, select them by names
--   and write these three columns to target table columns x, y, w separately
--   with column z using its default value
(x, y, w)
select a, a+b, to_string(c)
from location
with fields(a, b, c)
where b::int > 2

Continuous Loading
A StreamCopy seems like a wrapper of COPY command with a data source and some schedule parameters additionally. But, it will do a lot of work besides COPY.
CREATE STREAM COPY <name>
    dataSource
    scheduleParameters
    [ parameters ]
    AS <copy_statement>  -- COPY INTO <table>

dataSource ::=
    [ DATA_SOURCE = { '<source_name>' |
                      { KAFKA | PULSAR ... } ( key1 = value1 [...] ) } ]

scheduleParameters ::=
    [ SCHEDULE_INFO = ( k1 = v1 [...] ) ]

A StreamCopy integrates three parts: connector, schedule, and sink. It also has an implicit state (including offset) inside.

SCHEDULE makes a periodical loading.
CONNECTOR will connect to a data source and read data.
SINK will pass through the data read by the CONNECTOR to COPY command.

All the parameters about the external data source, like Kafka, Pulsar, will be put in the dataSource clause.
scheduleParameters are some parameters about schedule, such as max_batch_interval , max_batch_size , max_error_number , etc.

Example:
CREATE STREAM COPY <name>
    DATA_SOURCE = KAFKA (
        "kafka_broker_list" = "broker1:9092,broker2:9092,broker3:9092"
        "kafka_topic" = "my_topic"
        "kafka_partitions" = "0,1,2,3"
        "kafka_offsets" = "101,0,0,200" )
    AS COPY INTO <table_name>
    FROM PIPE
    copyOptions
    ...

CREATE PIPE
For other situations in which that outer system will implement connector + schedule + sink , StarRocks will supply a PIPE definition:
CREATE PIPE <name>
    [ parameters ]
    AS <copy_statement>

Stream Load and Routine Load can be integrated together.
Outer sink systems can put data into the PIPE continuously through an HTTP protocol or others. It seems like a stream.

Unloading
COPY command
Similar to Loading, we can use a COPY command to copy data from the internal table to a specified location.
COPY INTO location
FROM { [<db>.]<table_name> | ( <query> ) }
[ PARTITION BY <expr> ]
[ DATA_FORMAT = ( TYPE = { CSV | JSON | PARQUET } [ formatTypeOptions ] ) ]
[ copyOptions ]
[ HEADER ]

Similar to Loading, the INTO location clause can be unfolded into a more complicated form.
It may be detailed later or in another proposal.

Local Unloading
COPY INTO PIPE
FROM { [<db>.]<table_name> | ( <query> ) }
...

Some thoughts
Some command names could be changed to more meaningful words.

Does the STREAM COPY command sound appropriate? Will ROUTINE COPY , SINKER , or others be more suitable?

Shell we define a Stream object to store the state of the StreamCopy task?
CREATE STREAM COPY <name>
    DATA_SOURCE = KAFKA (
        "kafka_broker_list" = "broker1:9092,broker2:9092,broker3:9092"
    )
    STREAM = (
        "kafka_topic" = "my_topic"
        "kafka_partitions" = "0,1,2,3"
        "kafka_offsets" = "101,0,0,200"
    )
    SCHEDULE_INFO = ()
    AS COPY INTO <table_name>
    FROM PIPE
    copyOptions
    ...

Then we can separate several parts clearly.
And when we want to implement a CDC stream on a table, they will be similar to each other.

Should we use STREAM instead of PIPE?

What's the difference between COPY and INSERT INTO SELECT ? Which one will be more in line with our intuition when we want to load data from an External Table, such as from S3 or Iceberg?

I'm very glad to hear from you anything about this proposal.

@jaogoy
I think you can paste it in Google doc and paste the link in this issue.
And everyone can review on that google doc

I have put this article in Google docs, you can comment A new unified loading/unloading SQL syntax and design in detail for convenience.


Pure CSS collapsing

This is an implementation of the pure CSS collapsing mentioned in #5.
Context
Container objects like lists and dicts are collapsible to hide their contents. This is currently implemented by injecting a small JS script into the HTML repr that handles on-click events for the parent container (a stealthy checkbox) by setting CSS styles that hide/show the child elements. That works fine, but it requires extra CSS classes and I've always been a little hesitant about injecting JS.
This PR
The has: CSS selector allows for the same behavior without any JS by styling the container and its children depending on whether the container's checkbox is ticked. This isn't possible without that selector because the styling is based on the input child of the label parent, which isn't representable with older CSS selectors (the input must be a child of the label to tie them together without using IDs, as described in #5).
I previously avoided this solution because has was relatively new and poorly supported, but it's now listed as "Newly available across major browsers" with 93.4% of users supported.
The benefits of this change are:

Simpler and cleaner
Marginally smaller reprs (about 8% reduction in file size)
Avoid potential issues if JS is disabled or restricted for security/privacy (this hasn't come up)

Closing in favor of #45


New create goal form - personal goal switch

Add a switch to create personal goal. When on, it hides project field from the form.

Duplicate #2095


Fix leaky _child_services property on Service class

What is wrong?
https://github.com/ethereum/py-evm/blob/0ff7bc0f820250d7f15e804bc09870776ea34eb5/p2p/service.py#L21
The Service class has list set as a class property.  This will cause all instances of the Service class to share this list which is not the desired behavior.
cc @cburgdorf (this is a common mistake in python, classes should rarely have mutable data structures set at the class level)
How can it be fixed
Remove the assignment of the list from the class level into the __init__ constructor.
class Service:
    _child_services: List['BaseService']

    def __init__(self, ...):
        ...
        self._child_services = []

Haha, I'm tempted to post a picture of us sitting on the porch of our
airbnb, enjoying some drinks over the sunset while listening to my 5yo
explaining the world to us ;)
On Fri, Jul 13, 2018, 19:27 Piper Merriam<EMAIL_ADDRESS>wrote:

Aren't you supposed to be on vacation. Go back to your🍹 🌴 🏖
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ethereum/py-evm/issues/1012#issuecomment-404899891,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAfzlabJnPa2A5QqGv6wXhEOMfWToiCIks5uGNiBgaJpZM4VPO-5
.


fix(book): indexのタイトルを変更

#295

Deploy preview ready!
Built with commit<PHONE_NUMBER>2d8678d12b52923e256169ef080850
https://deploy-preview-304--js-primer.netlify.com

New look


feat: map usage_data types

Add support for map/nested data types in UsageData. See here for more info: https://infracost-community.slack.com/archives/C02FNB3MM1V/p1633416366002400
This PR removes flattening of usage_data keys. Previously nested data in usage file like so:
resource.my_resource:
    monthly_outbound_from_region_to_dx_connection_location:
        ap_east_1: 3000

would be output as:
UsageData{
    Attributes: map[string]gjson.Result{
        "monthly_outbound_from_region_to_dx_connection_location.ap_east_1": gjson.Result{
            Type: gjson.Number,
            Raw: `3000`
            Num: 3000
        }
    }
}

Now it's parsed as:
UsageData{
    Attributes: map[string]gjson.Result{
        "monthly_outbound_from_region_to_dx_connection_location": gjson.Result{
            Type: gjson.JSON,
            Raw: `{"ap_east_1": 3000}`
        }
    }
}

Which supports:
m := u.Get("monthly_outbound_from_region_to_dx_connection_location").Map()
val := m["ap_east_1"].Int()

fmt.Println(val) // 3000

@aliscott - managed to find some quick time at lunch today to make a POC of this. I'll ping you in slack as well.

and add some basic tests to cover.

Our plan is to add some golden file tests for this, so up to you, but happy for us to do this in a separate PR.

@aliscott, Ok I'll see where I get to, but it's maybe easier if I add them here just to make sure that the behaviour works as expected. It just give's me a bit more confidence that I'm not breaking things - especially as I'm not as familiar with the codebase as yourself! If this get's too large I can just pull out the sync tests into a separate PR.

@aliscott no probs, sorry it got a bit large!


Bump dependencies

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This updates the following dependencies:

github.com/containers/common: v0.26.3 => v0.29.0
github.com/crossplane/crossplane-runtime: v0.10.0 => v0.11.0
k8s.io/api: v0.19.3 => v0.19.4
k8s.io/apimachinery: v0.19.3 => v0.19.4
sigs.k8s.io/controller-runtime: v0.6.3 => v0.6.4

Which issue(s) this PR fixes:

None
Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

:+1:

👍

Can you please propose a PR to add yourself as reviewer to the OWNERS of this project? That way you can /lgtm, too.

@saschagrunert commented on Nov 23, 2020, 11:57 AM PST:

Can you please propose a PR to add yourself as reviewer to the OWNERS of this project? That way you can /lgtm, too.

Sure :)

/assign @cmurphy
I think we can give this a lgtm-try


Feature request: Better API authentication mechanism

Currently, the way authentication works in ACS requires you to copy the kubeconfig file and then talk using certs. This is not the cleanest way IMHO and there should be a better API driven way of working doing authentication. I think we have enough examples already and I will talk about two alternatives that I can think of:

The Azure service principal itself as a way to authenticate - this is very similar to the way it is done in GCE. The service principal that is used for creating the cluster using Azure API can also be used to talk to Kubernetes API. I am assuming this would be possible by inserting a serviceAccount in Kubernetes and translating the authentication accordingly.

Provide the bearer token over API. The bearer token can be retrieved from default service-account or can be created. GCE at the moment provides username/password to user in console.

I am no expert and there might be caveats in this proposal and not sure how it will work in Mesos/Swarm etc. But please feel free to comment accordingly.

@vishal-biyani We've been thinking about this a bit...
In general, I think that kubeconfig is the standard, right way to talk to the cluster. Even in scenarios where a bearer token is used, it would likely be presented in the form of a kubeconfig file as this is the standard for all Kubernetes-related applications and libraries that I've seen.
(If you disagree with this assessment, I'm curious to hear more - particularly if others are doing something closer to what you want as an example)
That having been said, retrieving the kubeconfig file right now is an unwieldy process (uses SSH, has to happen on the machine that created the cluster, etc). Over time, we will likely expose that kubeconfig file through the ACS API (though that doesn't really change the mechanics of how the kubeconfig file is used though).
I think a better option longer-term would be to use OIDC support for AuthN in Kubernetes.
I have an example of how you can use OIDC with Azure AAD to do authentication to a Kubernetes cluster. https://github.com/colemickens/azure-ad-k8s-oidc-example This would actually let users get tokens that represent themselves, rather than service accounts, making RBAC policies easy.
Ultimately though, even Bearer auth with OIDC is done via kubeconfig normally. Though you could obviously pull the Bearer token out and use it directly with raw HTTP calls...
Let me know your thoughts about my thoughts here...

Marking as P2 since Cole's OIDC model shows potential.  Overall I do agree that kubeconfig is the standard, and people coming from outside of Azure will be used to it.

@colemickens Thanks and what you propose is an excellent solution.

FYI: this PR helps solve this: https://github.com/Azure/acs-engine/pull/479.

MSI does not help with cluster authentication. MSI is about K8s -> ARM auth. Not user->k8s auth.
The relevant change here is around https://github.com/kubernetes/kubernetes/pull/43987


use waitfor rather than timeout

@lgg FYI this is the timeout weirdness I mentioned in https://github.com/Jigsaw-Code/outline-client/pull/413#issuecomment-443859903 - it will make your timeout actually have effect!

Followup to:
https://github.com/Jigsaw-Code/outline-client/pull/392


Warlock (Cata)

Request to support the Warlock class in Cataclysm.
😱 Affliction

[x] Drain Soul (unchanged)
[x] Nightfall / Shadow Trance (unchanged)

😈 Demonology

[x] Molten Core (updated)

Must no longer glow Soul Fire

[x] Decimation (unchanged)

☢ Destruction

[x] Backdraft (new) talent / buff rank 1 / buff rank 2 / buff rank 3

Must glow buttons of Shadow Bolt, Incinerate and Chaos Bolt

[ ] Shadowburn (new) talent

Must glow button of Shadowburn
Talent exists since Vanilla, but up until Wrath it did cost a Soul Shard, so spamming it was not ideal
Starting from Cataclysm, it is nice to spam it

[x] Backlash (unchanged)
[x] Empowered Imp (updated)

Must now glow Soul Fire

Implemented in #273.

any chance to add warlock 4t11 proc?

Reopened for Shadowburn.

any chance to add warlock 4t11 proc?

Hi and thank you for your feedback.
That is a nice suggestion, I have submitted a dedicated issue #296


Loading Functionality with World Partition and Data Layers

I am using your loading plugin and need help with a specific use case. I would like to invoke the loading function within a level to load different sectors using World Partition and Data Layers, ensuring there are no bottlenecks or performance issues. Ideally, I want to do this without having to transition from one level to another.
Is this achievable using your plugin? If not, I’d like to suggest this as a potential feature. Also, if there are any alternative solutions you recommend, I’d appreciate your input.

Hi, it is not possible with my plugin without heavily modifying the source code. My plugin only works with the Open Level command, which destroys the entire old level when loading a new level. So, there is no logic code, and no blueprint is working.
In your case, you can actually use UMG for the loading screen to cover the data loading.


Handle overflows while calculating cost of the block in gas-metering algorithm

A possibility of the overflow while calculating cost of the block in gas-metering algorithm depends on 2 factors: the cost of each instruction defined by the caller, i.e. user of the wasm-instrument crate, and the size of the wasm module (amount of instructions). Some projects can face overflow error while injecting gas calls, because of specific for them parameters of wasm module size or cost of each instruction. I believe handling overflows while cost (gas) calculation can give more freedom to wasm-instrument users.
The suggested in the PR solution:

Enable overflows counter while metering blocks
When injecting gas calls, push several gas call instructions instead of one as it is now.

I think we should opt for a simpler approach: Change the counter to u64 and just error out on overflow. Don't know why u32 was chosen but u64 does not incur any overhead as an primitive.

I think we should opt for a simpler approach: Change the counter to u64 and just error out on overflow. Don't know why u32 was chosen but u64 does not incur any overhead as an primitive. Of course VMs need to add a new imported function but that shouldn't be a problem.

Embedders (multiple blockchain projects) already have host functions with u32 everywhere, they will hardly change it.
This is very desirable fix without changing signature.

Why? They will need to update their runtime to deploy this change. The same update adds the new exported function then. Why will they change one thing but not the other.

Why? They will need to update their runtime to deploy this change. The same update adds the new exported function then. Why will they change one thing but not the other.

This code is used not only in substrate where you can update runtime.
And also, we can merge this fix for u32, bump to 0.2.1 and then rewrite to u64 and bump to 0.3.0. I believe changing from u32 to u64 for generated function signature should be a major version bump despite formally only implementation details of this library changed.

Why? They will need to update their runtime to deploy this change. The same update adds the new exported function then. Why will they change one thing but not the other.

I totally agree with @NikVolf 's suggested solution with versioning changes. One more pros for applying these changes is giving more freedom to crate users in defining arbitrarily large costs for instructions on their side. u64 doesn't save from overflow, but this 677f8fe does.

This code is used not only in substrate where you can update runtime.

Yes but I need to carry the maintenance burden here and stuff that is not needed for substrate I will not maintain. Please fork in that case.

I believe changing from u32 to u64 for generated function signature should be a major version bump despite formally only implementation details of this library changed.

I agree. Never said anything else.

u64 doesn't save from overflow

u64 + error on overflow. We simply do not support basic blocks bigger than u64 then.

I don't suggest you maintain anything
We patch to 0.2.1 by fixing this bug, publish
Then replace with u64 and publish 0.3

Or you can just publish 0.2.1 from the branch @athei

Why not just release it as another crate and use this? No one forces you to use this crate. I think this is way too much complexity for something that can just be put to u64 and call it a day. Remember that this counter is per basic block not for the whole contract.


Double-check adc.[ch]

This module contains the code to measure batter and temperature levels. The measured battery voltage currently doesn't appear to be integrated into LoRaWAN. Check if this code works correctly and maybe integrate it into the device reporting MAC command.

Instead of integrating the code that measures battery voltage with an ADC, it might be more flexible to implement a new AT command AT$BAT=value and let the application set the battery level via this AT command. This approach will allow the application to apply custom battery voltage measuring techniques and to perform platform-specific conversions. Suggested by @hubmartin.
In addition to that, it might also make sense to implement a new event notification command that would be emitted by the modem once the transmitter has been activated. The application could then use the notification to properly time battery voltage measurements during LoRa transmissions. It should be possible to turn the event notification on or off from the application.


[ 🐞 Bug ] smell

🐞 Describe the Bug:
I CAN SMELL YOUR DEAR
🔁 How To Reproduce:
sniffing
📗 Expected Behavior:
for you to smell better when scared
📒 Additional context:
a shower might help
📒 Submission Data:

Report submit from Discord
submit by flexualelements<PHONE_NUMBER>63309571)

Dear has been washed and resolves this issue, thank


Does the GitHub pack support GitHub Enterprise?

Seems like the default is github.com. Wondering if a custom URL and auth method are supported, or could be. Thanks.
https://github.com/StackStorm/st2contrib/tree/master/packs/github

I think it wouldn't be hard to implement support. You'll need to move base_url to config, and make the python action read from it instead of hardcoding (https://github.com/StackStorm/st2contrib/blob/master/packs/github/actions/lib/base.py#L11), and then the only thing left would be to pass base_url to github constructor here: https://github.com/StackStorm/st2contrib/blob/master/packs/github/actions/lib/base.py#L19
If you run into trouble, we'll be glad to help! We would certainly appreciate a PR allowing GitHub Enterprise support.

You can read tests at PyGithub to learn how an Enterprise connection is implemented, like this one: https://github.com/PyGithub/PyGithub/blob/0e0b74a5d8caf0574b3bb4df6b85e61ba65c7376/github/tests/Issue80.py#L33

@emedvedev thanks. I'm new to Python, but I think I've got it. However, running make all throws an error here:
==================== packs-resource-register ====================

. virtualenv/bin/activate; if [ ! "/Users/kevinSuttle/Code/st2contrib/packs/github" ]; then echo No packs have changed, skipping run...; fi; for pack in /Users/kevinSuttle/Code/st2contrib/packs/github; do if [ -n "$pack" ]; then scripts/register-pack-resources.sh $pack || exit 1 ; fi; done
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/v6/cffs_4b125dfkbg0rh24f3nm0000gn/T/pip-build-dx6oU0/pyinotify/
Registering content from pack github
Traceback (most recent call last):
  File "/tmp/st2/st2common/bin/st2-register-content", line 19, in <module>
    import st2common.content.bootstrap as content_loader
  File "/tmp/st2/st2common/st2common/content/bootstrap.py", line 19, in <module>
    from oslo_config import cfg
ImportError: No module named oslo_config
Registering resources for pack github failed
make: *** [.packs-resource-register] Error 1

Opened a PR so someone can (in)validate.

Perfect, I'll review shortly. The make all error is likely due to a different version of oslo on your box. They changed oslo.config to oslo_config a while ago (or the other way around, I don't really remember). Our tests pass for your PR. :)


can’t add release annotation to appinsights by following the script in the documentation.

I found that following the instructions here and using pwsh could not complete the release annotation for appinsights.
It always gives an ERROR:
Unsupported Media Type({   “Message”: “The request contains an entity body but no Content-Type header. The inferred media type ‘application/octet-stream’ is not supported for this resource.” })
I then discovered that the problem is in step 2 of the script in this link,  https://learn.microsoft.com/en-us/azure/azure-monitor/app/annotations#create-release-annotations-with-the-azure-cli
Specifically, this step:
$body = (ConvertTo-Json $annotation -Compress) -replace ‘(\+)”’, ‘$1$1”’ -replace “"", "”`””

Just remove the last two replace steps and modify it to:
$body = (ConvertTo-Json $annotation -Compress)

Then it will work properly.

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

ID: ee1eec15-6783-f8a2-81c0-ffa9d1b40dc2
Version Independent ID: ab875981-7b0d-95be-dc5b-91f87acbe477
Content: Release annotations for Application Insights - Azure Monitor
Content Source: articles/azure-monitor/app/annotations.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @AaronMaxwell
Microsoft Alias: aaronmax

@virtualcca
Thanks for your feedback! We will investigate and update as appropriate.

Thanks for calling this out @virtualcca. Since the -replace arguments are essentially sanitizing the JSON content with escape characters, it's not advisable to remove it completely.

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Nyxx#version returns an old version

Describe the bug
Nyxx#version returns an old version
To Reproduce
Steps to reproduce the behavior:
Print value Nyxx#version
Expected behavior
A clear and concise description of what you expected to happen.
Print current version
Screenshots
If applicable, add screenshots to help explain your problem.
N/a
Desktop (please complete the following information):
N/a

OS: [e.g. Windows, Linux]
Dart version [e.g. 2.9.0]
Nyxx version [e.g. 1.0.0]

Additional context
Add any other context about the problem here.
Maybe CI could change this?
Could use pubspec?
Add to PR template to update?

There is no simple way of doing that without parsing pubspec? Which requires addtional package.
Will fix on 2.0.0 release

Will be fixed in #183


where we are so far:

Everything looks great so far! I just set up the environment so try it on you computer and see if it works. I added references and fixed up the intro, summary, readme etc.

Will do!

the summary needs to be changed to this This lab report analyzes bank marketing campaigns with the goal of using machine learning to predict whether a customer will subscribe to a term deposit. The dataset, sourced from the UCI Machine Learning Repository, contains demographic and campaign-related information on customers who were contacted via phone for a Portuguese bank's direct marketing campaign (Moro et al., 2014). The target variable is whether or not the customer subscribed to a term deposit. The report uses two predictive models: logistic regression and decision tree.
The Logistic Regression model achieved an overall accuracy of 88.5%, with a precision of 0.70, recall of 0.20, and an F1 score of 0.32. The model excelled in precision but struggled with recall, missing a significant number of actual subscribers, as reflected by its low recall rate. The confusion matrix for Logistic Regression showed 5236 true negatives, 68 false positives, 632 false negatives, and 162 true positives.
The Decision Tree model achieved an accuracy of 89.7%, with a precision of 0.63, recall of 0.23, and an F1 score of 0.34. While it performed slightly lower in accuracy than Logistic Regression, the Decision Tree model identified more true subscribers (higher recall) at the cost of increased false positives. Its confusion matrix revealed 7177 true negatives, 126 false positives, 720 false negatives, and 215 true positives.
Both models offer valuable insights for banks seeking to optimize direct marketing efforts for term deposit subscriptions. Strategic recommendations include targeted marketing, personalized offers, and continuous monitoring and adjustment of the models to improve performance. By leveraging these models, banks can enhance marketing strategies, optimize resource allocation, and increase conversion rates.

The metrics are slightly off because I only set the seed after I wrote the conclusion.


i run sodium and i want to join my fabric server and i join and my game say saving world and crash pls help

please provide the logs.
Otherwise I can't help you.

It's not the same problem of that issue.
It seemed to be Flywheel's problem.

You can try https://modrinth.com/mod/iris-flw-compat


Broken ports update with multiple same number ports

Issue summary
I created simple chart with ports from values (show only related part, link to full file below):
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
        - name: "nginx"
          ports:
            {{- .Values.ports | toYaml | nindent 12 }}

And install this chart to minicube with values:
ports:
- name: http
  containerPort: 80
  protocol: TCP
- name: grpc-look-aside
  containerPort: 8080
  hostPort: 34567
  protocol: TCP
- name: grpc-service
  containerPort: 8080
  protocol: TCP

As expected I got pod with 3 ports (http, grpc-look-aside, grpc-service).
After that I upgrade chart with values (remove grpc-look-aside port):
ports:
- name: http
  containerPort: 80
  protocol: TCP
- name: grpc-service
  containerPort: 8080
  protocol: TCP

As result deployment became to unexpected state: all 8080 ports was removed.
I expected:
[
  {
    "containerPort": 80,
    "name": "http",
    "protocol": "TCP"
  },
  {
    "containerPort": 8080,
    "name": "grpc-service",
    "protocol": "TCP"
  }
]

but actual port specification was:
[
  {
    "containerPort": 80,
    "name": "http",
    "protocol": "TCP"
  }
]

How to reproduce
I created minimal chart with reproducing script: https://github.com/bozaro/helm-ports-issue

checkout
pip install yq
./ports.sh

Versions
Output of helm version:
version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}
version.BuildInfo{Version:"v3.2.0-rc.1", GitCommit:"7bffac813db894e06d17bac91d14ea819b5c2310", GitTreeState:"clean", GoVersion:"go1.13.10"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.1", GitCommit:"7879fc12a63337efff607952a323df90cdc7a335", GitTreeState:"clean", BuildDate:"2020-04-14T16:45:05Z", GoVersion:"go1.13.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate:"2020-02-11T18:07:13Z", GoVersion:"go1.13.6", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
minikube version: v1.3.1
commit: ca60a424ce69a4d79f502650199ca2b52f29e631

Please take a look at the Helm docs for how helm upgrade deals with values, and take a look at the flags --replace-values and --reuse-values. If you still believe that you have found a bug after that, please provide the helm commands you used (and a minimal chart) for reproducing this. https://docs.helm.sh/docs/

Minimal chart and helm commands is provided by repo: https://github.com/bozaro/helm-ports-issue
This repository is created specially for this issue.

In any case with replace and reuse values I should not lost second port declaration after upgrade.

This issue is not values-related. I used values only for simple reproduce.
Looks like helm on upgrade make:

try to apply delta between last expected state (not actual state) and new expected state;
on removing ports remove all ports with same number.

This is combo:

I adds 3 ports with number A, B, B and actual pod state became A, B, B;
I remove duplicate B and apply state for A, B but helm removes all B ports and state became: A;
all upgrades in this stage keep only A, because helm think that last actual state state is A, B.

I just encountered this issue last week as well. Originally I used helm 3.1.0, but upgrading to 3.7.2 didn't help either.


add int8 and int16 support in elementwise ABS and RSQRT

Hi! PR #204 was originally intended to be split between both Tensorflow and TFLM repository with shared code in a elementwise_portable header file. But with the new micro context API, the shared code is incompatible with Tensorflow. Thus, we make changes to TFLM only, and handle the porting in Tensorflow as a separate action. As a result, this PR solves #1068 and #190
That means the PR is meant to do two things. Firstly, it's adding int8 support for the elementwise RSQRT kernel. Secondly, it adds int8 and int16 support for elementwise ABS. As the patch is quite large and some time has passed between "rounds", I'm looking forward to any feedback and questions :)
All the best,
Annie
BUG=#1068 and #190

@deqiangc Hi Deqiang, all checks have passed so this PR should be ready for review! All the best, Annie

@Mergifyio refresh


If this is still a problem, please drop me a notice.


[SPARK-38985][SQL] Add sub error classes

What changes were proposed in this pull request?
We support nesting an optional map of "sub error classes" in error-classes.json.
Each sub class has a distinct message and independent parameters.
Why are the changes needed?
A select subset of error classes have a large variety of error messages which cannot be easily tokenized.
But we do not want to split them because the conditions are often temporary. An example is UNSUPPORTED_FEATURE.
Supporting nested error classes allows us to keep the variety of messages without exploding the number of error classes.
Does this PR introduce any user-facing change?
Yes, we will change the error message texts
How was this patch tested?
Run all affected error test suites.

Can one of the admins verify this patch?

@cloud-fan @MaxGekk
Can you lend me a hand here? This last remaining failure seems unrelated to my PR, but it's a new-ish test case. Not sure if the test case is broken or the code behind it.
https://github.com/srielau/spark/runs/6137469861?check_suite_focus=true#step:9:13297
Other than that this is ready to go.

@MaxGekk @cloud-fan All clean now, can you please review and merge it if you agree.

thanks, merging to master!


Bugs in word circle drawing

When the B-row or T-row letter circles start crossing wich each other, the word circle stops being drawn correctly. This happens because the end points of the arc get flipped and the arc goes around the whole word circle.
I tried fixing it once, but failed due to angle difference calculation confusion :/

The problem still appears, if you place a t by hand and it overlaps with an adjacent t, you'll see it.


Reduce content x-padding

LGTM - though to float an idea - it looks like .header inherits from .content. We can explicitly set the padding in _header.scss so that it still matches the other docs properties. Thoughts?


Minor Overview section fixes

Fixed title of "Users you can reach" page
Moved Quick Starts to desired level in hierarchy (up one level, directly under Overview)

:warning: Validation status: warnings

File
Status
Preview URL
Details

MSGraphDocs_Conceptual_Test/toc.yml
:warning:Warning

Details

MSGraphDocs_Conceptual_Test/toc.yml

[Warning] Invalid file link:(~/findmeetingtimes-example.md).
[Warning] Invalid file link:(~/cross-device-app-configuration.md).
[Warning] Invalid file link:(~/terms-of-use.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Audio music & fx volume sliders

Describe the feature you'd like to see added
Is there any chance of extra audio options please?
Like a volume slider for music & fx that could be added to tweaks?
Love this work, many thanks.

Yes, please! This is such a good request and would negate having to adjust its volume manually via volume mixer.

Hmm, will try looking into this soon, got some ideas for how to try adding it in.
Unfortunately the whole audio system the game uses is pretty undocumented, I tried finding as much from the GC/PS2 releases as I could, but they did also add a lot of custom stuff for the X360/Windows ver that uses XAudio2 which I'm not really sure about.
One very useful thing I just found out though, seems Viewtiful Joe mostly uses the same audio system, and we have some pretty detailed symbols for that, one of those being this struct:
typedef struct %anon154 { /* size 16 */
  sint16 mas_bgm; /* bitsize 16, bitpos 0 */
  sint16 mas_se; /* bitsize 16, bitpos 16 */
  sint16 iss_bgm; /* bitsize 16, bitpos 32 */
  sint16 iss_se; /* bitsize 16, bitpos 48 */
  sint16 str_bgm; /* bitsize 16, bitpos 64 */
  sint16 str_se; /* bitsize 16, bitpos 80 */
  sint16 ssq_bgm; /* bitsize 16, bitpos 96 */
  sint16 ssq_se; /* bitsize 16, bitpos 112 */
} SND_SYS_VOL;

From what I can tell, RE4 seems to be using the same thing :)

Thank you a lot for trying!
I'll have a go with the zip

Seem to have something working, if anyone wants to help test here's a build: dinput8_volumeAdjustment.zip
BGM/SE volume can be adjusted in the re4_tweaks Misc menu, seems to mostly work fine, not totally sure if all sounds will be affected by it though - would be interested if anyone finds something that doesn't work with it.
(like post above shows there's also 3 different values for both BGM/SE as well, not completely sure I'm changing all the correct ones, so if you notice some sound effect changing when you adjust BGM, or vice-versa, let me know)
Looks like changing SE volume normally takes effect instantly, but BGMs usually require reload first, maybe can figure out a way to change the BGM volume directly somewhere...

the inventory sounds seem way lower than sounds for example enemies when using the effect slider, i have the slider on max and the inventory is very hard to hear
https://user-images.githubusercontent.com/103059961/172465069-e3940ca0-2c92-4da2-9511-581bbe09dc81.mp4

Here's another build which tracks bgm/se seperately, hopefully should work better now: dinput8_volumeAdjustment-v2.zip

That new build works perfectly, but I noticed that the changes don't seem to apply during cutscenes. I'm wondering if it could be applied for those as well.

Awesome! Thank you.
Another question, are the sound effects also tied to character speech? I was gonna suggest another possible slider for that as well so that we have full customization over everything in-game that has sound.

Looks like speech might be handled by the str_se value, at least during cutscenes in movie viewer, unfortunately it looks like cutscene BGM is also being handled by str_se >.>
Not totally sure whether the BGM/SE values I'm changing are actually for BGM/SE or not, looks like BGM slider does affect the menu BGMs at least, don't really know what levels actually have background music playing though.

Ah, so it looks like they are tied together. I kinda expected that given how old the game is. 😄

don't really know what levels actually have background music playing to check those though

I did the village raid as a test since that part of the game always has music and it seems to work just fine!

Hello, will version 3 be put into re4 tweaks officially or is there more adjustments to make?
I run ver 3 & in the top right corner is an extra re4tweaks menu activated by F2, How do i hide it? Pressing F2 doesn't hide it in my game?

Should be merged soon hopefully, there's a PR for it at https://github.com/nipkownix/re4_tweaks/pull/200 with some more fixes included too (eg. letting BGM volume be changed as it plays)
The build artifact from https://github.com/nipkownix/re4_tweaks/actions/runs/2464507044 should have that menu disabled AFAIK. (use DLL from the Release folder)


Mobile support

Please add mobile support. For that just special case that custom keybinds mod only needed for windows and add buttons in pause menu for mobile (the buttons that are require keyboard keys)

duplicate #31


feature/client-typescript

This PR includes a full TypeScript rewrite of the @webauthn/client library. The compiled version of the library still supports use in JavaScript projects, but I've also added the emitting of several .d.ts files that support Intellisense and autocompletion of all of the library's methods in both JavaScript- and TypeScript-based projects.
Webpack is still used to bundle everything into a single main.js as before. However, Babel has been completely replaced with ts-loader for simplified TypeScript configuration while editing and when compiling this library.
Lastly I've also updated the README (in the client/ folder specifically) to talk about the contents of this library specifically.

This PR was partially inspired by https://github.com/wallix/webauthn/issues/16.
I really like the direction this library is going and figured I'd try and contribute some improvements. I wasn't able to really gauge the level of interest in adding more TypeScript support (aside from that PR) so I apologize in advance if I'm overstepping by proposing such a drastic rewrite of half of this library 😅

Alright, sorry about the delay! I believe I've addressed all of the outstanding issues we talked about above. This includes removing both client/yarn.lock and server/yarn.lock directories, and an updated yarn.lock in the root of the project.
Barring any other suggested changes, this is ready to go!

I'm bumping this so it doesn't get too stale...

@MasterKale Have you found another package for Webauthn or why have you closed this pr?

@P4sca1 I closed this PR because I'm releasing my own pair of front-end and back-end WebAuthn libraries under the "WebAuthntine" name:
https://github.com/MasterKale/WebAuthntine
I took some inspiration on the project's structure from this repo, but the code is entirely based on a side project I built last year while diving deep into the API to learn how it works. And best of all everything is 100% TypeScript!

This is great! I always thought about writing my own code for webauthn in typescript, but haven't found the time. Very excited about your project. I hope it gets more attention than this project.


fix: Retcode 1 when skipNamespaces list don't match

Description
Relates to https://github.com/kubewarden/helm-charts/pull/240

Test

Tested locally, this time not only looking at stdout but retcode.
Additional Information
Tradeoff

Potential improvement

Closing, not needed anymore


Support state_reason in IssuesService.Edit

I would like to be able to use the API to close an issue with a reason why like you can in the UI (https://github.blog/changelog/2022-05-19-the-new-github-issues-may-19th-update/ , https://github.blog/changelog/2022-03-10-the-new-github-issues-march-10th-update/ ). I looked at the Issues API documentation and couldn't find reference to these closing reasons (https://docs.github.com/en/rest/issues/issues#update-an-issue) but I contacted support and they stated:

The API now supports closing issues with state reasons. I'd reach out to the docs team to help update this in the API documentation.
Here is a sample query you can run:
curl -X PATCH -H "Accept: application/vnd.github.v3+json" -H "Authorization: token {TOKEN}" https://api.github.com/repos/{org_name}/{repo_name}/issues/{issue-id} -d '{"state":"closed","state_reason":"not_planned"}'

"state_reason" can either be completed or not_planned.

Wonderful, @parkr - thank you for your due diligence in contacting GitHub tech support!
Would you like to create a PR, or shall I open this issue up to other contributors to this repo to implement?


latest hunter version doesn't work for android-studio

I've read Brief overview section and do understand basic concepts. [Yes]

I've read F.A.Q. section and there is no solution to my problem there. [Yes]

I've read Code of Conduct, I promise to be polite and will do my best at being constructive. [Yes]

I've read Reporting bugs section carefully. [Yes]

I've checked that all the hunter_add_package/find_package API used by me in example is the same as in documentation. [Yes]

I'm using latest Hunter URL/SHA1. [Yes]

I've created SSCCE GitHub repository to reproduce the issue: https://github.com/dryganets/hunter-android-studio/tree/sergeyd/new-hunter-not-work-with-android-studio

you could check that master with default cmake works.
external-cmake branch works as well (upgrade to 3.11.2 alone).
log:
Android API (CMAKE_SYSTEM_VERSION)
Expected: `24`, `21`, `19`, `16`
Got: `1`"

Turns out boost resets CMAKE_SYSTEM_VERSION to 1
 ~/.hunter
11:49 $ ag CMAKE_SYSTEM_VERSION
_Base/a47baf7/4c741bc/e11a692/Build/Boost/Build/CMakeFiles/3.11.2/CMakeSystem.cmake
10:set(CMAKE_SYSTEM_VERSION "17.5.0")

_Base/a47baf7/99b5517/a69be9e/Build/Boost/__system/Build/CMakeFiles/3.6.0-rc2/CMakeSystem.cmake
10:set(CMAKE_SYSTEM_VERSION "1")

_Base/f91a01c/efc1666/5db38ea/Build/Boost/Build/CMakeFiles/3.11.2/CMakeSystem.cmake
10:set(CMAKE_SYSTEM_VERSION "1")

I've checked that the first error in logs IS NOT external.build.failed. [Yes]

I'm building on [OSX| Android].
[I'm using system CMake]
CMake version: 3.11.2

I'm using unmodified toolchain  from Polly

I'm using next command line on generate step:
gradlew assembleDebug

See this issue for starting with Android Studio:

https://github.com/ruslo/hunter/issues/618#issuecomment-367532376

And this example for latest updates:

https://github.com/forexample/android-studio-with-hunter


Upgrade to API v2

Here an example of the API:
http://qa-imeji.mpdl.mpg.de/imeji/rest/collections/FppmPFncHGv3OXjq/items?offset=0&size=20

Problem: search by collection_id no longer supported


Update .\Setup-EthicalHacking.ps1 to download latest Kali version

Issue reported:
Came across an issue testing the PowerShell commands in https://learn.microsoft.com/en-us/azure/lab-services/class-type-ethical-hacking?tabs=powershell. This script leads to this error:
.\Setup-EthicalHacking.ps1 -SwitchName 'Default Switch'
ERROR: Download of https://cdimage.kali.org/kali-2023.3/kali-linux-2023.3a-hyperv-amd64.7z failed 6 times. Aborting download.
Looking at the https://cdimage.kali.org/ site, there is no kali-2023.3.

Fixed by #43


Add pipeline preprocessing to traditional pipeline

To match the performance in the Auto-Pytorch-Tabular, currently the preprocessing in Lucas' implementation is used. Later, to improve or get the same performance we should use the tabular preprocessing pipeline in Auto-PyTorch. This can be done by adding the imputer, encoder, scaler choice modules to the steps of traditional classification pipeline.

Note that this would mean implementing functionalities of Auto-Sklearn into the traditional classification pipeline which might be redundant if there are plans towards merging APT and ASK or enabling running both in sequence (which should be doable since they use the same backend and logging, I think).

Note that this would mean implementing functionalities of Auto-Sklearn into the traditional classification pipeline which might be redundant if there are plans towards merging APT and ASK or enabling running both in sequence (which should be doable since they use the same backend and logging, I think).


axum otlp example setup

Hello.
I'm having a hard time setting OTLP for axum. The only example here has:
    // very opinionated init of tracing, look as is source to make your own
    init_tracing_opentelemetry::tracing_subscriber_ext::init_subscribers()?;

part which I don't understand (very new to Rust) how to setup.
My example:
use axum::{routing::get, Json, Router};
use axum_tracing_opentelemetry::{
    middleware::{OtelAxumLayer, OtelInResponseLayer},
};
use opentelemetry::{
    global,
    trace::{Span, Tracer},
    Context, KeyValue,
};
use opentelemetry_otlp::WithExportConfig;
use opentelemetry_sdk::{propagation::TraceContextPropagator, Resource};
use opentelemetry_semantic_conventions as semcov;
use serde::Serialize;

mod devices;
use devices::{get_devices, Device};

mod images;
use images::get_images;

#[derive(Serialize)]
struct Response<'a> {
    status: &'a str,
    message: &'a str,
}

fn init_otlp() {
    // Setting a trace context propagation data.
    global::set_text_map_propagator(TraceContextPropagator::new());

    let exporter = opentelemetry_otlp::new_exporter()
        .grpcio()
        .with_endpoint("localhost:4317");

    let resource = Resource::new([KeyValue::new(
        semcov::resource::SERVICE_NAME,
        "rust-app",
    )]);

    let otlp_tracer = opentelemetry_otlp::new_pipeline()
        .tracing()
        .with_exporter(exporter)
        .with_trace_config(
            opentelemetry_sdk::trace::config().with_resource(resource),
        )
        .install_batch(opentelemetry_sdk::runtime::Tokio)
        .expect("Error - Failed to create tracer.");
}

#[tokio::main]
async fn main() {
    init_otlp();
    init_tracing_opentelemetry::tracing_subscriber_ext::init_subscribers();

    let app = Router::new()
        .route("/api/devices", get(devices))
        .route("/health", get(health))
        //start OpenTelemetry trace on incoming request
        .layer(OtelAxumLayer::default());

    let listener = tokio::net::TcpListener::bind("<IP_ADDRESS>:8000")
        .await
        .unwrap();

    axum::serve(listener, app).await.unwrap();
}

async fn health() -> Json<Response<'static>> {
    Json(Response {
        status: "ok",
        message: "up",
    })
}

#[tracing::instrument]
async fn devices() -> Json<Vec<Device<'static>>> {
    // let tracer = global::tracer("internal");
    // let mut span = tracer.start("/api/devices");
    // span.end();
    Json(get_devices())
}

If I uncomment tracing code in devices function I get my traces in Tempo but without any HTTP span attibutes.
Setting up OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=localhost:4317 breaks export to Tempo. I only able to see traces in my console
    30.709684860s  INFO rust_app: new
    at src/main.rs:76 on tokio-runtime-worker
    in rust_app::devices
    in otel::tracing::HTTP request with http.request.method: GET, network.protocol.version: 1.1, server.address: "<IP_ADDRESS>:8000", user_agent.original: "xh/0.20.1", url.path: "/api/devices", url.scheme: "", otel.name: GET, otel.kind: Server, span.type: "web", http.route: "/api/devices", otel.name: "GET /api/devices"

    30.709762910s  INFO rust_app: close, time.busy: 39.2µs, time.idle: 38.7µs
    at src/main.rs:76 on tokio-runtime-worker
    in rust_app::devices
    in otel::tracing::HTTP request with http.request.method: GET, network.protocol.version: 1.1, server.address: "<IP_ADDRESS>:8000", user_agent.original: "xh/0.20.1", url.path: "/api/devices", url.scheme: "", otel.name: GET, otel.kind: Server, span.type: "web", http.route: "/api/devices", otel.name: "GET /api/devices"

I wonder how to make OtelAxumLayer get my initial setup and use it. Thank you.

Hello,
Maybe, there is some confusion:

tracing is not related to opentelemetry's traces, they are 2 ecosystems.
tracing-opentelemetry bridges between the tracing crates and the opentelemetry crates. One of the features is to mirror some tracing's span into opentelemetry's span.
init_tracing_opentelemetry::tracing_subscriber_ext::init_subscribers(); is an opinionated way to initialize tracing, opentelemetry (so no need for your init_otlp()) and to connect them (with help of tracing-opentelemetry). Please take a look at its code (in this repo, if you want some inspiration to make your initialization).
axum_tracing_opentelemetry use tracing-opentelemetry (aka tracing's span + metadata) to indirectly make instrumentation for opentelemetry.
your commented code makes a temporary opentelemetry's tracer named "internal", unconnected to tracing

axum-tracing-opentelemetry => tracing-opentelemetry => opentelemetry.
My advices:

comment/remove init_otlp(), or replace init_tracing_opentelemetry::tracing_subscriber_ext::init_subscribers(); to make your own full initialization of tracing, tracing-opentelemetry, opentelemetry
check that you have only one version of opentelemetry in your dependency tree, because global configuration are static => one per version
setup your environment variable to the address of your TEMPO server.
look into the examples folder, it's a working example for axum (and customize after it work)
Comment on this issue for more help, I'll try to answer (I'm not an expert in tracing & opentelemetry but I learn), and also try to use your questions issue to improve the documentation.

@davidB Thank you for advices. They helped me to make more correct googling.
Read a lot today. This article cleared a lot in the area
https://tirslo.hashnode.dev/opentelemetry-examples-with-rust
I was able to marry tracing and tracing-opentelemetry:
use axum::{routing::get, Json, Router};
use opentelemetry::KeyValue;
use opentelemetry_otlp::WithExportConfig;
use opentelemetry_sdk::Resource;
use opentelemetry_semantic_conventions as semconv;
use serde::Serialize;
use tracing::{debug, info, info_span, warn};
use tracing_subscriber::prelude::*;

mod devices;
use devices::{get_devices, Device};

mod images;
use images::get_images;

#[derive(Serialize)]
struct Response<'a> {
    status: &'a str,
    message: &'a str,
}

fn init_otlp() {
    // Create OTLP gRPC exporter
    let exporter = opentelemetry_otlp::new_exporter()
        .grpcio()
        .with_endpoint("localhost:4317");

    // Create a resource
    let resource = Resource::new([KeyValue::new(
        semconv::resource::SERVICE_NAME,
        "rust-app",
    )]);

    // Create tracer
    let tracer = opentelemetry_otlp::new_pipeline()
        .tracing()
        .with_exporter(exporter)
        .with_trace_config(
            opentelemetry_sdk::trace::config().with_resource(resource),
        )
        .install_batch(opentelemetry_sdk::runtime::Tokio)
        .expect("should create a tracer");

    // Create an opentelemetry layer
    let otlp_layer = tracing_opentelemetry::layer().with_tracer(tracer);

    // Create a subscriber
    let subscriber = tracing_subscriber::Registry::default().with(otlp_layer);

    // Set the global subscriber for the app
    tracing::subscriber::set_global_default(subscriber).unwrap();
}

#[tokio::main]
async fn main() -> Result<(), axum::BoxError> {
    init_otlp();

    let app = Router::new()
        .route("/api/devices", get(devices))
        .route("/health", get(health));

    let listener = tokio::net::TcpListener::bind("<IP_ADDRESS>:8000")
        .await
        .unwrap();

    axum::serve(listener, app)
        .await?;

    Ok(())
}

async fn health() -> Json<Response<'static>> {
    Json(Response {
        status: "ok",
        message: "up",
    })
}

#[tracing::instrument]
async fn devices() -> Json<Vec<Device<'static>>> {
    info_span!("internal").in_scope(|| {
        warn!("do stuff inside internal");
    });

    Json(get_devices())
}

Now I can setup an exporter, resource and tracer manually from the code (without env vars) and I get all the traces.
The only part missing is HTTP info in the span from axum. Axum doesn't know anything about my tracing setup. This is something I still don't understand how to achieve.

You shoulde re add the layer, and allow trace level for tracing target. Sorry i don t remember the name of the target, i m on phone. You can look at the Readme, and the source i already mention.

Yeap.
The only thing missing was to add OtelAxumLayer middleware back
let app = Router::new()
    .route("/api/devices", get(devices))
    .layer(OtelAxumLayer::default())
    .route("/health", get(health))
    .route(
        "/metrics",
        get(|| async { "Hello, World!" }),
    );

Everything works great.
Btw there is a TraceLayer from tower-http that does pretty much the same thing
https://docs.rs/tower-http/0.5.0/tower_http/trace/index.html
Thank you.

The TraceLayer from tower-http was used on first version with lot of configuration to support Opentelemetry's semantics,... The creation of OtelAxumLayer was to hide all this plumbery, then we moved away from TraceLayer to be able to support other features and a different configurability (like filtering some endpoints)
idem the creation of init_tracing_opentelemetry::tracing_subscriber_ext::init_subscribers(); was born because it becomes too many work to copy/paste (and to maintain, keep in sync) the same initialization over projects, examples,... (look at the size of your init_otlp() for a single shot it's ok, but if you want to reuse...)

You are right. init_otlp has a tonn of boilderplate code. That's nice to have an option to hide it. Thanks for the crate.


Does Public Activity support Rails 4.1.1  yet?

Does Public Activity support Rails 4.1.1 (i.e., ActiveRecord/ActionPack/ActiveSupport 4.1.1)
on Ruby 2.0?
I am trying to incorporate Public Activity 1.4.2 into a Rails Engine (created using rails plugin new --mountable --full). I've created the activities migration (FYI: renamed default activities table/indexes to use [rails_engine_namespace]_activities as table name). I've added the following to my Model so I can create custom activity records (not using default callbacks, tracked method, nor StoreController for current user) in controller actions.
Foo Model
module [RailsEngineNamespace]
class Foo < ActiveRecord::Base
include PublicActivity::Common    NOTE: (Also tried ::PublicActivity::Common)
.......
end
end
FoosController
module [RailsEngineNamespace]
class FoosController
 def  show
      # Logic to retrieve Foo model instance @foo
      respond_to do |format|
           # Create foo.viewed activity record
           @foo.create_activity :viewed, owner: current_user, params: {id: @foo.id, title: @foo.title}
           format.html
           format.json {render json: @foo}
      end
 end
 # remaining controller code snipped
 ..........

end
end
When I attempt to run the controller's show action with Foo.rb having "include ::PublicActivity::Common", I'm getting uninitialized constant PublicActivity. If I remove
the leading double colons in the include statement, I get uninitialized constant [RailsEngineNamespace]::Foo::PublicActivity.  I've run "gem list" and "gem list --local" to verified the Public Activity 1.4.2 is bundled and have stopped/restarted my rails server on my local development environment. Still getting uninitialized constant  error.
Is this because Public Activity doesn't yet support Rails 4.1.1
Thanks,
soulsinger4life

@tarr11 Do you mean like this?
class Article
  has_many :activities, class_name: 'PublicActivity::Activity'
end

Try supplying :table_name as an option, maybe AR can't figure it out on its own.


feat: get renovate to update .hbs file

Update the renovate.json file to extend the files matched by the npm module to include package.json.hbs by following https://docs.renovatebot.com/modules/manager/#file-matching
Note that I have not tested this since I don't have renovate set up on my fork, but since the package.json.hbs file is a valid package.json file I believe this should work.

let's try it :)

Seems to work :)
https://github.com/t3-oss/create-t3-turbo/pull/1040/files#diff-71e0643ad48b75e8076c98c76335f0d109b112777f7469b32268b6db4471558d


updated for cf CLI 6.28.0 which added support for space scoped stagin…

…g ASGs (released 29 June 2017)

OK, done @dkoper :-)


Assignment-2

drift video : https://video.drift.com/v/abIg9WhwJJDsGWwSqJM4qW2mqDXJnNQLtnPXUueA/
screenshot:

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
12

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Metric
Value

alert_status
:x: ERROR

bugs
0

code_smells
1

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Metric
Value

alert_status
:x: ERROR

bugs
0

code_smells
1

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Use interfaces


Extract zerver/lib/events.py

I'd like to extract fetch_initial_state_data, apply_events, do_events_register, and friends from zerver/lib/actions.py to a new zerver/lib/events.py, since it's I think the main thing we can do to shrink actions.py without making anything less efficient (in terms of searching code; e.g. it's really nice right now that all the send_event calls are in one file).
Like other refactoring moving things between files, we should make no code changes in the commit that moves the code.
Probably the same person should do this as #3633.

I made changes to the files as required and ran the environment after changed and it worked fine. This the link to my PR "https://github.com/zulip/zulip/pull/3641"

Merged via https://github.com/zulip/zulip/pull/3642.  @saisrivathsa next time, please put Fixes #3635 in the commit message to auto-close the GitHub issue when the fix is merged.


[FEATURE] Impl Spark DSv2 YARN Connector that supports reading YARN aggregation logs

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

Describe the feature
Leverage the Spark DSv2 API to implement a connector that provides a SQL interface to access the YARN agg logs, and maybe other YARN resources in the future.
Motivation
For large-scale Spark on YARN deployments, there are dozens or even hundreds of thousands of Spark applications submitted to a cluster per day, and the app logs are collected and aggregated by YARN stored on HDFS, sometimes we might want to analyze the logs to identify some cluster-level issues, for example, some machine might have hardware issues that frequently produce disk/network exceptions, it's straightforward to leverage Spark to analyze those logs in parallel.
Describe the solution
the usage might be like
$ spark-sql --conf spark.sql.catalog.yarn=org.apache.kyuubi.spark.connector.yarn.YarnCatalog
> SELECT
    app_id, app_attempt_id,
    app_start_time, app_end_time,
    container_id, host,
    file_name, line_num, message
  FROM yarn.agg_logs
  WHERE app_id = 'application_1234'
    AND container_id='container_12345'
    AND host = 'hadoop123.example.com'

Additional context
No response
Are you willing to submit PR?

[ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
[ ] No. I cannot submit a PR at this time.

@naive-zhang Thank you for being interested in this ticket, you can refer to the tpch connector if you are not familiar with Spark DSv2 API, and the first milestone might be implementing the SELECT * FROM yarn.agg_logs WHERE appId='<appId>' that produces similar content like yarn logs -applicationId <appId>, and then explore how to list YARN apps, and filter them by other predications.


Add<EMAIL_ADDRESS>to binary formula URLs whitelist

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same change?
[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Fixes audit failure for Homebrew/homebrew-core#50604

Given<EMAIL_ADDRESS>has now been removed, it should be safe to remove that from this whitelist.

Thanks again @SeekingMeaning!