Add inserted range data callback

Depends on #619.
Related to #508.
By the way, if cartographer_ros is going to use this, and we wish to serialize the saved range data, that will have to be handled in cartographer_ros, right?

@wohe PTAL at the new implementation, and please have a look at the comment which has been buried in a review above.

@wohe just a ping about whether we should store the range data in tracking or in local frame, as discussed above.

Updated, PTAL. If you want, I can split the minor renames in 3D into a separate PR.

Thanks a lot for your quick responses. To allow this PR to be merged, please only address review comments in this PR. It is a good idea to split off all the orthogonal changes, but even better would be to postpone unrelated change to future PRs. I would love to merge more of your code quicker, but I feel this PR is a moving target and is already too large. A good explanation of my view on a successful review process: https://www.bignerdranch.com/blog/growing-a-code-review-culture/

I will split up this PR.

Ok, I have split it up. This PR depends on #619.

@ojura I was thinking the same. Go ahead with yours. I will expand as
necessary in a separate PR.
On Sat, Nov 11, 2017, 11:31 AM Juraj Oršulić<EMAIL_ADDRESS>wrote:

@ojura commented on this pull request.
In cartographer/mapping/global_trajectory_builder_interface.h
https://github.com/googlecartographer/cartographer/pull/574#discussion_r150380950
:

@@ -58,6 +58,15 @@ class GlobalTrajectoryBuilderInterface {
virtual void AddSensorData(const sensor::OdometryData& odometry_data) = 0;
virtual void AddSensorData(
const sensor::FixedFramePoseData& fixed_frame_pose) = 0;

// A callback which is called after local SLAM processes an accumulated
// 'sensor::RangeData'. If the data was inserted into a submap, reports the
// assigned 'NodeId', otherwise 'nullptr' if the data was filtered out.
using AccumulatedRangeDataCallback =

 std::function<void(int /* trajectory ID */, common::Time,

                    transform::Rigid3d /* local pose estimate */,

                    sensor::RangeData /* in local frame */,

                    std::unique_ptr<const mapping::NodeId>)>;

@cshuet On the other hand, there doesn't exist a single MatchingResult
(or InsertionResult) class. There are two separate ones, one for 2D and
one for 3D local trajectory builder. GlobalTrajectoryBuilder is
templated. Perhaps changing that belongs in another Cartographer PR.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/googlecartographer/cartographer/pull/574#discussion_r150380950,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX4C8SyQNxuQKw8YRIy7DkVx072IpLCCks5s1XdqgaJpZM4PwRmd
.

@wohe Renamed.

Updated

@wally-the-cartographer merge

Merge requested by authorized user wohe. Merge queue now has a length of 2.


WIP - First view of the records.yaml file -  prototype

WIP Draft PR that shows a first view of the converted records.config into a yaml structure.  The whole idea is to show how this looks, start the conversation and collect feedback. This does not involve any core changes, it's just a view of the yaml file.

As a part of this draft I have added a new  enable feature flag:  --enable-records-yaml-gen to let the build to process the existing records.config.default.in and convert it into a YAML file, with a proper structured objects. The script will basically drop the proxy.config and proxy.local and work from there. Main level structure will be ts. You can try this on with your own record.config and see how it looks, just check the parameters of the script(schema validation may fail)
Example
Just a small snap of a config file.
CONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 1.0
CONFIG proxy.config.exec_thread.limit INT 2
CONFIG proxy.config.exec_thread.affinity INT 1
CONFIG proxy.config.accept_threads INT 1
CONFIG proxy.config.task_threads INT 2
CONFIG proxy.config.cache.threads_per_disk INT 8
CONFIG proxy.config.net.sock_option_flag_in INT 0x5
CONFIG proxy.config.diags.debug.tags STRING http|dns
CONFIG proxy.config.dump_mem_info_frequency INT 0
CONFIG proxy.config.http.slow.log.threshold INT 0

will generate:
ts:
  exec_thread:
    autoconfig:
      value: 1
      scale: 1.0
    limit: 2
    affinity: 1
  accept_threads: 1
  task_threads: 2
  cache:
    threads_per_disk: 8
  net:
    sock_option_flag_in: '0x5'
  diags:
    debug:
      tags: http|dns
  dump_mem_info_frequency: 0
  http:
    slow:
      log:
        threshold: 0

Note that for configs like this:
CONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 1.0

We changed  the approach and added a 'value' field into the key(autoconfig) and made the main key a structure. So the above example will look like this:
  exec_thread:
    autoconfig:
      value: 1
      scale: 1.0

If you want to see how it looks like the entire generated file: check here
Schema
This draft also has a records.schema.json that is used to validate the generated records.yaml output, this is optional in the gen script.
The schema file is very basic and in its early stage, booleans, some enums and common types should be defined, this is WIP.

Python script is not yet a PR quality, so you can ignore it.
Feedback will be appreciated.

[approve ci]


Predict market trend up or down, unlabeled?

Hello,
I'm starting with ML and trying to predict stock trend up or down based on stock history. There are two challenges which I cannot seem to solve at the moment.
I have my stock history, this is data containing the price, volume and amount of trades at a certain point of time. I think I need to class this as Unlabeled data as I have not labeled them what trend a certain datapoint is in. Am I correct in this? When training the history data I get a warning it's missing labels. So I'm kind of lost how to handle/train unlabeled data.
Secondly, a timeline is also in play. I do not know how to handle this in the library.
Any help is much appreciated.
Thanks,
Bastiaan

Hi @BasvanH thanks for the great question
See this issue regarding time-series datasets https://github.com/RubixML/RubixML/issues/35 - in short, we do not directly support time-series data yet
Since stock price is non-stationary, you will get best results from an algorithm that directly supports time series
Having that said ...
Supervised learners such as classifiers and regressors require a training signal in the form of labels
Unsupervised learner such as clusterers and anomaly detectors do not require labels
Your problem can be viewed as a classification one, in which the prediction will be trend 'up' or 'down,' or a regression problem where the prediction is the direction (+/-) and degree of trend from a baseline (ex. 0).
Your problem can also potentially fit into a clustering one, in which case, you can try to isolate clusters of up and down trend. You can also use an anomaly detector to predict when a stock is abnormally trending up or down.
So there are multiple ways, and also combinations of methods, that you can go about building a stock predicting system. I would avoid the unsupervised methods for now and focus on the supervised methods to start. Again, you will need a good Labeled dataset.
Are you able to automate the labeling process in any way?
Can you discretize the 'price' variable such that, if it is above a rolling (windowed) average, the label will be 'up' and in contradistinction 'down' if it is below the moving average?

Hi @andrewdalpino,
Thank you for taking the time to write such a detailed answer, much appreciated!
I have PHP experience, so therefore I have chosen your library as I think it's the most enhanced and complete one in PHP. Looking at other libraries in other languages would mean much more time for me to learn ML. So I will stick with you despite not having the time based algorithm yet :-) . You already done a great job!
So labeling is the way to go. Yes, I can process the history with a moving average, and determine trend based on price be up or below. I will move ahead and write this part.
First I want to start relatively simple, so with a classifier. Do you have an advice in which one to use?

@BasvanH No problem, welcome to our community!
Are you able to obtain more features for your dataset or do you just have the 3 that you mentioned?
How many samples do you have?
I would recommend starting with either Logistic Regression or Random Forest.
Logistic Regression is a simple linear classifier that has an associated tutorial here. The nice thing about Logistic Regression is that it can be partially trained (implements the Online interface) - thus, you can train it with new data as soon as it comes in. This will help the model to compensate for the fact that the data is non-stationary.
Random Forest is a non-linear ensemble method that you can try if you need a more flexible model.
Once you have enough labeled data, make sure to set about 20% of it aside to use as testing data and validate your model. The F Beta metric will give you a good idea as to how well it performs.

My dataset has a datapoints every full minute and contains the following features:

start (date of data point)
open (candle open value)
high (candle highest value during interval)
low (candle lowest value during interval)
close (candle close value)
volume (trade volume during interval)
trades (amount of trades during interval)

I'm adding:

sma (sma value based on 30 samples/minutes ahead)
trend (sma > current price = up else down)
difference (open / sma, indicator of how much up or down trend)

I'm going to use trend as the label.
I have my dataset ready, and I'm going to move forward to read into Logistic Regression classifier.

Looks like you are well on your way @BasvanH
Keep us updated with your progress and don't hesitate to follow up with questions
Also, given the recent interest, we may start implementing time series features if they will better serve our users

Hey @BasvanH did you have any luck with this? I'm trying to also use the RandomForest algo but the link above is broken and I did not find any examples using this algo on any demo pages.

Hey @BasvanH did you have any luck with this? I'm trying to also use the RandomForest algo but the link above is broken and I did not find any examples using this algo on any demo pages.

Here is a link to the current Random Forest documentation
https://docs.rubixml.com/latest/classifiers/random-forest.html


Variables expanded as build dependencies not treated as lists

When expanding a variable as any kind of dependency, any spaces are treated verbatim, rather than being split into a list.
I'm not sure if this is a bug or a feature - the documentation on variable expansion doesn't (as far as I can find) mention what happens here.
Example:
var = foo bar
rule myrule
  command = touch $out
build foo: myrule
build bar: myrule
# Similarly for implicit or order-only dependencies
build output: myrule $var

Output:
$ ninja
ninja: error: 'foo bar', needed by 'output', missing and no known rule to make it

If this is deliberate, is there any way to use a variable to specify a number of repeated dependencies? Perhaps that's a bit pointless since you could just make a dummy target to avoid the repetition.

See #720.


row click and custom button click

Thanks for this awesome library!
I have a quick question;
I'm using "getTrProps" listening to on click when user click to row firing some action but I also using custom button action when I click to custom button also firing getTrProps how can I fix this in a good way?
Thanks!

sorry guys I just need to use e.stopPropagation()


[DOCFIX] Update Contributing-to-Alluxio.md

Make the link to show unassigned tasks, rather than all tasks

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/14607/
Test PASSed.

Merged build finished. Test PASSed.


Added Atbash cipher

The failure here is some custom glue code that I put together to lint at the project level: https://github.com/exercism/configlet/blob/master/README.md
Let me know if anything is confusing.

Got it, had the exercise name wrong in config.json ("atbash_cipher" instead of "atbash-cipher"). CI wins again.

Yay, CI!

Would you mind squashing the commits on this one? It seems like they all belong together.

Squashed


Add tests to the codebase

I think we should start adding tests and possibly add it to the CI as well? I can start with the cli and aim for a good coverage score

Completely agree. I have set up the CI for the controller, but since there were no tests on the cyctl, I didn't add the tests there. If you would like to add tests to cyctl, you can change this GH action to run them on each push.

Hey @thebigbone, do you have any updates on this?

Hey @thebigbone, do you have any updates on this?

Hey I have not made much progress because of lesser spare time. I am planning to atleast cover the half of cli in the next week!

Cool, thanks

@petar-cvit should we use minikube in the github actions for commands like init and serve? Or should I just write simple tests which do not require testing on a cluster?

@thebigbone I think it's good enough to test it with unit tests without setting up the cluster, at least for start. We can add tests that require a cluster later on

Hey @thebigbone, do you have any update on cyctl unit tests? I'm looking to update our CI for cyctl and add a test step

Hey, I should have asked this before but I am stuck at what tests would be sufficient. Should I just compare the output buffer only or should I create fake clientsets for kubernetes commands? Apologies for the delay.

@thebigbone you can create a mock for clientset? You can create and use an interface in the code and then pass a mock in tests

@thebigbone you can take an interface here instead of passing CyclopsV1Alpha1Client struct directly. Then, you can pass a mock struct in your tests and an actual struct in code when creating Modules and other resources.
Same goes for other actions also. We are using ginkgo and gomega for testing in cyclops-ctrl, so you can use those as well and check how to use mocks with those

Hey @thebigbone, did you manage to create some tests for the cyctl? Would love to take a look and try to integrate it with our CI

@petar-cvit  interested to add tests for the cyctl command line. Shall I start creating the unit tests ?

@Abiji-2020 sure thing, will assign you

@Abiji-2020 I made a K8s client mock you can use in your tests. Still on a PR, but you can branch out from there and implement tests for cyctl. Here is the PR
cc @thebigbone

@petar-cvit thanks very much I am finding it hard to create a mock. you helped me 🧡

Will update on adding tests


chore: lockfile check script

A script that I wrote a while ago that checks for unpatched repos in the lockfile. Whenever we upgrade polkadot versions it's common that some crates need to be added to the patch list. This script prints such unpatches crates.

Not needed https://github.com/interlay/interbtc-clients/pull/507


Duplicate Elements are not detected and flagged

We had a situation where accidentally we had twice defined SubjectOfInformation and it compiled fine. This should be flagged.

Hmmm... I thought we would error on this, but I guess not.  Both SubjectOfInformation definitions were in the same namespace?

I might have to walk this one back. I wasn’t able to reproduce it.
From: Chris Moesel<EMAIL_ADDRESS>Sent: Thursday, July 12, 2018 4:10 PM
To: standardhealth/shr-cli<EMAIL_ADDRESS>Cc: Kramer, Mark A<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [standardhealth/shr-cli] Duplicate Elements are not detected and flagged (#111)
Hmmm... I thought we would error on this, but I guess not. Both SubjectOfInformation definitions were in the same namespace?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/standardhealth/shr-cli/issues/111#issuecomment-404635189, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAeCyGHUPb5KiJ01INHURDTwRLR6Qd08ks5uF60GgaJpZM4VNnlR.

Yes, same namespace. I was compiling with -s all, if that makes a difference.

Actually, I can reproduce this -- so it's a real bug.

This was fixed some time ago.


ERROR [ExceptionHandler] Nest can't resolve dependencies of the TwilioService

Hello,
I followed the instruction to config this module, however I get this error:
[Nest] 38  - 04/22/2024, 5:24:52 PM   ERROR [ExceptionHandler] Nest can't resolve dependencies of the TwilioService (?). Please make sure that the argument "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" at index [0] is available in the TwilioModule context.
2024-04-22T17:24:52.715644801Z
2024-04-22T17:24:52.715646259Z Potential solutions:
2024-04-22T17:24:52.715647093Z - Is TwilioModule a valid NestJS module?
2024-04-22T17:24:52.715647843Z - If "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" is a provider, is it part of the current TwilioModule?
2024-04-22T17:24:52.715648926Z - If "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" is exported from a separate @Module, is that module imported within TwilioModule?
2024-04-22T17:24:52.715649759Z   @Module({
2024-04-22T17:24:52.715650426Z     imports: [ /* the Module containing "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" */ ]
2024-04-22T17:24:52.715651176Z   })
2024-04-22T17:24:52.715651801Z
2024-04-22T17:24:52.715652551Z Error: Nest can't resolve dependencies of the TwilioService (?). Please make sure that the argument "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" at index [0] is available in the TwilioModule context.
2024-04-22T17:24:52.715653468Z
2024-04-22T17:24:52.715654093Z Potential solutions:
2024-04-22T17:24:52.715654759Z - Is TwilioModule a valid NestJS module?
2024-04-22T17:24:52.715655468Z - If "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" is a provider, is it part of the current TwilioModule?
2024-04-22T17:24:52.715656218Z - If "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" is exported from a separate @Module, is that module imported within TwilioModule?
2024-04-22T17:24:52.715657009Z   @Module({
2024-04-22T17:24:52.715657634Z     imports: [ /* the Module containing "CONFIGURABLE_MODULE_OPTIONS[c4f2b6ddebd9a3c7797af]" */ ]
2024-04-22T17:24:52.715658343Z   })
2024-04-22T17:24:52.715658968Z
2024-04-22T17:24:52.715659593Z     at Injector.lookupComponentInParentModules (/app/node_modules/@nestjs/core/injector/injector.js:254:19)
2024-04-22T17:24:52.715682718Z     at processTicksAndRejections (node:internal/process/task_queues:95:5)
2024-04-22T17:24:52.715684384Z     at Injector.resolveComponentInstance (/app/node_modules/@nestjs/core/injector/injector.js:207:33)
2024-04-22T17:24:52.715685676Z     at resolveParam (/app/node_modules/@nestjs/core/injector/injector.js:128:38)
2024-04-22T17:24:52.715686384Z     at async Promise.all (index 0)
2024-04-22T17:24:52.715687051Z     at Injector.resolveConstructorParams (/app/node_modules/@nestjs/core/injector/injector.js:143:27)
2024-04-22T17:24:52.715687801Z     at Injector.loadInstance (/app/node_modules/@nestjs/core/injector/injector.js:70:13)
2024-04-22T17:24:52.715689093Z     at Injector.loadProvider (/app/node_modules/@nestjs/core/injector/injector.js:97:9)
2024-04-22T17:24:52.715690176Z     at Injector.lookupComponentInImports (/app/node_modules/@nestjs/core/injector/injector.js:289:17)
2024-04-22T17:24:52.715691093Z     at Injector.lookupComponentInParentModules (/app/node_modules/@nestjs/core/injector/injector.js:252:33)

it bugged me for a while, can someone help me ? Thank you!
my usage:
/auth.module.ts
import { Module } from '@nestjs/common';
import { UserController } from './controllers/user.controller';
import { UserService } from './services/user.service';
import { PrismaService } from 'src/common/services/prisma.service';
import {ConfigModule, ConfigService} from "@nestjs/config";
import {TwilioModule} from "nestjs-twilio";

@Module({
  controllers: [UserController],
  imports: [ TwilioModule.forRootAsync({
    imports: [ConfigModule],
    useFactory: (cfg: ConfigService) => ({
      accountSid: cfg.get('TWILIO_ACCOUNT_SID'),
      authToken: cfg.get('TWILIO_AUTH_TOKEN'),
    }),
    inject: [ConfigService],
  }),],
  providers: [UserService, PrismaService],
  exports: [UserService],
})
export class UserModule {}

/user.service.ts
export class UserService implements IUserService{
  constructor(private readonly prismaService: PrismaService, private readonly twilioService: TwilioService) {}

  public async generateOTP(data: userPhoneNumbers): Promise<sms>{
      // TODO: implement sms sending logic
    // generate 6 digit OTP

     const res = await this.twilioService.client.messages.create({
          body: 'SMS Body, sent to the phone!',
          from: "12365856765",
          to: `${data.country_id}${data.user_phone_number}`,
      });

     console.log(res);
    const otp = Math.floor(100000 + Math.random() * 900000).toString();
    // store the OTP in the database
    return this.prismaService.sms.create({
      data: {
        user_phone_number_id: data.id,
        code: otp,
        code_expiration_date: new Date(new Date().getTime() + 30 * 60000)
      }
    });
  }

}

I was having simillar error while importing the module in app.module and using it in another module.
My way of running it was to import twillo in my notification module directly instead of app module.
Then it worked.


Paladin Silver Champion missing space

Describe the bug
A clear and concise description of what the bug is.
The Silver Champion description is missing a space after the sentence ending with "mere words.".
Screenshots
If applicable, add screenshots to help explain your problem.

I keep doing that.
I'll have it fixed for the next update, thank you for reporting.


Add Protobuf support

Is your feature request related to a problem? Please describe.
FusionCache provides a way to add custom serialization format support, by implementing the IFusionCacheSerializer interface.
It already provides 2 implementations, both for the JSON format:

NewtonsoftJson
SystemTextJson

It recently added (but not yet released) a third one: MessagePack.
It would be great to add support for the Protobuf serialization format, too.
Describe the solution you'd like
A new package that add supports for the Protobuf format, probably based on protobuf-net by @mgravell which is probably the most used implementation on .NET and the most performant.
Describe alternatives you've considered
Everyone that needs it should otherwise implement their own, which is meh 😐

Probably looks a lot like this:
sealed class ProtobufNetSerializer : IFusionCacheSerializer
{
    private readonly TypeModel _model;
    public ProtobufNetSerializer(TypeModel? model = null)
        => _model = model ?? RuntimeTypeModel.Default;

    public byte[] Serialize<T>(T obj)
    {
        using var ms = new MemoryStream();
        _model.Serialize<T>(ms, obj);
        return ms.ToArray();
    }

    public T Deserialize<T>(byte[] data)
        => _model.Deserialize<T>((ReadOnlyMemory<byte>)data);

    ValueTask<T> IFusionCacheSerializer.DeserializeAsync<T>(byte[] data)
        => new(Deserialize<T>(data));

    ValueTask<byte[]> IFusionCacheSerializer.SerializeAsync<T>(T obj)
        => new(Serialize<T>(obj));
}

There is an API that can avoid having to use the MemoryStream / unknown-length thing, but right now: I'd go with ^^^

Thanks @mgravell !
I was about to push my first impl and ask for your opinion, but you've beaten me to it 😄
From what I can see they are quite similar, at least in principle.
Here it is:
public class FusionCacheProtoBufNetSerializer
	: IFusionCacheSerializer
{
	public FusionCacheProtoBufNetSerializer(RuntimeTypeModel? model = null)
	{
		_model = model ?? RuntimeTypeModel.Default;

		// ENSURE MODEL REGISTRATION FOR FusionCacheEntryMetadata
		if (_model.IsDefined(typeof(FusionCacheEntryMetadata)) == false)
		{
			_model.Add(typeof(FusionCacheEntryMetadata), false)
				.SetSurrogate(typeof(FusionCacheEntryMetadataSurrogate))
			;
		}
	}

	private readonly RuntimeTypeModel _model;
	private readonly object _modelLock = new object();

	private void EnsureDistributedEntryModelIsRegistered<T>()
	{
		// TODO: OPTIMIZE THIS

		var _t = typeof(T);
		if (_t.IsGenericType == false || _t.GetGenericTypeDefinition() == typeof(FusionCacheDistributedEntry<>))
			return;

		if (_model.IsDefined(_t))
			return;

		lock (_modelLock)
		{
			if (_model.IsDefined(_t))
				return;

			// ENSURE MODEL REGISTRATION FOR FusionCacheDistributedEntry<T>
			_model.Add(typeof(T), false)
				.Add(1, nameof(FusionCacheDistributedEntry<T>.Value))
				.Add(2, nameof(FusionCacheDistributedEntry<T>.Metadata))
			;
		}
	}

	public byte[] Serialize<T>(T? obj)
	{
		EnsureDistributedEntryModelIsRegistered<T>();
		using (var stream = new MemoryStream())
		{
			_model.Serialize<T?>(stream, obj);
			return stream.ToArray();
		}
	}

	public T? Deserialize<T>(byte[] data)
	{
		if (data.Length == 0)
			return default(T);

		EnsureDistributedEntryModelIsRegistered<T>();
		using (var stream = new MemoryStream(data))
		{
			return _model.Deserialize<T?>(stream);
		}
	}

	public ValueTask<byte[]> SerializeAsync<T>(T? obj)
	{
		return new ValueTask<byte[]>(Serialize(obj));
	}

	public ValueTask<T?> DeserializeAsync<T>(byte[] data)
	{
		return new ValueTask<T?>(Deserialize<T>(data));
	}
}

A couple of notes:

since models must be defined for Protobuf to work best, and since I don't want users of FusionCache to have to define the needed boilerplate types themselves but, at most, their own types, I decided to automatically ensure the needed ones are there. In the end they are the FusionCacheEntryMetadata type (added in the ctor) and each specialized FusionCacheDistributedEntry<T> type (added before each use) for each T that is used, because generics etc. Would you say this is the best approach?
in the auto-registration code, after checking if the type is a FusionCacheDistributedEntry<T>, I'm currently using IsDefined(Type). Is this the best approach?
I see you're using TypeModel instead of RuntimeTypeModel: would I be correct in assuming that, since I'm auto-adding models, using RuntimeTypeModel instead is the right thing?
in the Deserialize() impl I'm checking first if the data has a length of zero and in that case I'm returning default(T). I'm doing this because, strangely enough, I noticed that if I serialize a null string and then I deserialize it, it seems to return an empty string instead. I've already searched online for a behaviour like this, but I only found this SO answer which does not seems to be my case

For the last point this is a minimal repro:
string? value1 = null;
string? value2 = null;
byte[] data;

using (var ms = new MemoryStream())
{
	ProtoBuf.Serializer.Serialize(ms, value1);
	data = ms.ToArray();
}
using (var ms = new MemoryStream(data))
{
	value2 = ProtoBuf.Serializer.Deserialize<string>(ms);
}

Console.WriteLine($"VALUE 1 IS NULL: {value1 is null}");
Console.WriteLine($"VALUE 2 IS NULL: {value2 is null}");

And its output is:
VALUE 1 IS NULL: True
VALUE 2 IS NULL: False

Am I missing something?
Thanks!

Mmmh, upon further investigation it seems that the call to IsDefined() is auto-adding the type to checked, braking the logic. I assume it may be related to one of the AutoAdd/AutoCrate options in the ModelType.
I'm trying to understand more, will update.

Better option might be to hook the events on the model that are invoked
when discovering a new type; I'm not at a PC to provide an example, but:
Before/After something something!
On Fri, 21 Oct 2022, 16:59 Jody Donetti, @.***> wrote:

Mmmh, upon further investigation it seems that the call to IsDefined() is
auto-adding the type to checked, braking the logic. I assume it may be
related to one of the AutoAdd/AutoCrate options in the ModelType.
I'm trying to understand more, will update.
—
Reply to this email directly, view it on GitHub
https://github.com/ZiggyCreatures/FusionCache/issues/84#issuecomment-1287157087,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEHMDPQ4CXGJKUFCVO2J3WEK4XTANCNFSM6AAAAAARLARKYY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Also, if it won't upset the other serializers: the config can be expressed
via DataContract/DataMember(Order=...)
On Fri, 21 Oct 2022, 19:33 Marc Gravell, @.***> wrote:

Better option might be to hook the events on the model that are invoked
when discovering a new type; I'm not at a PC to provide an example, but:
Before/After something something!
On Fri, 21 Oct 2022, 16:59 Jody Donetti, @.***> wrote:

Mmmh, upon further investigation it seems that the call to IsDefined()
is auto-adding the type to checked, braking the logic. I assume it may be
related to one of the AutoAdd/AutoCrate options in the ModelType.
I'm trying to understand more, will update.
—
Reply to this email directly, view it on GitHub
https://github.com/ZiggyCreatures/FusionCache/issues/84#issuecomment-1287157087,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEHMDPQ4CXGJKUFCVO2J3WEK4XTANCNFSM6AAAAAARLARKYY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Better option might be to hook the events on the model that are invoked when discovering a new type; I'm not at a PC to provide an example, but: Before/After something something!

Thanks for the suggestion, will definitely look into it!

Also, if it won't upset the other serializers: the config can be expressed via DataContract/DataMember(Order=...)

Will definitely check this, too: If I remember correctly the 2 classes are already using those attributes (maybe with a Name, and not yet with an Order, but I can add that) but as the code suggests I'm also using a surrogate class for the metadata class, since that in turn is using a DateTimeOffset prop (and that is how I ended up on that other issue on the protobuf-net repo).
Anyway will play with the DataContract/DataMember approach too, thanks!

Update: I went with a mix of both options.
I added an internal cache (static/singleton) to keep track of each model's registered types, of course only the ones related to FusionCache, to auto-register them. I also added some locks (with the usual double check) to ease hypothetical concurrency issues that may arise and finally, when registering the types, I also included a try/catch block to avoid any issue with double registration (it should not happen, but I don't have exclusive control over what happens to a model that may be passed in the ctor.
All seems to be fine now: there are no more simply try/catch blocks that would throw every time, the locking seems fine (to me at least) and the little overhead with the internal models/types cache should be negligible, so I'm feeling good overall about the approach.
Will release it soon, and will notify it here too just to keep track.
Thanks for your support, and if you happen to have any suggestion it would still be more than welcome.

I've released v0.16.0 which includes support for Protobuf 🎉
Thanks again @mgravell for your support!


Use laravel Http facade for easy configuring request

Set minimum latest patch support of laravel
Drop support laravel 6 and 7

I think we need to change the method names as you're using the HTTP facade instead of Guzzle. Also maybe it's better to first drop the old Laravel versions before merging this in.
What do you think @Cannonb4ll ?

Hi, already drop older laravel version, and the test is passed

Would this be ready for review?

Would this be ready for review?

Hi, yes, but there a conflict with branch, will fix now

hi @Cannonb4ll all test passed and this is ready to review, thank you


slack import: Import skype and phone data of users.

Import phone and skype data as a custom profile field:

This is ready for a review.

I have updated this!

Looks reasonable, merged, thanks @rheaparekh!

@neiljp @timabbott Thank you for the reviews! :)


Removed the extra ci.spring.yml from cosmos sdk folder

Removed the extra ci.spring.yml from cosmos sdk folder

/azp run java - cosmos - spring

/azp run java - cosmos - spring

API change check
API changes are not detected in this pull request.

This is already fixed here - https://github.com/Azure/azure-sdk-for-java/pull/41447
Closing this PR


Update sal_pcb.h

__AOS_EVENTFD_H__-> _SAL_PCB_H_

K_MM_RINGBUF_H -> K_RINGBUF_H

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Additional context

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

Thanks for your commits！


Fixed warning problem in AddConsntTransform and LogTransform

There was a problem that SetCopyWarning was shown during applying fit_tranform and inverse_transform to AddConsntTransform and LogTransform. The problem was solved by adding copying of dataframe at the beginning of the methods (this copy is made in all other methods, that work with PerSegmentWrapper and don't have this issue).

Codecov Report

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

:exclamation: Current head 1b59682 differs from pull request most recent head 37a1f7b. Consider uploading reports for the commit 37a1f7b to get more accurate results

@@            Coverage Diff            @@
##             master      #26   +/-   ##
=========================================
  Coverage          ?   56.36%
=========================================
  Files             ?       41
  Lines             ?     1760
  Branches          ?        0
=========================================
  Hits              ?      992
  Misses            ?      768
  Partials          ?        0

Continue to review full report at Codecov.

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


Use window resurrection

resurrecting #80  since the original author last had activity on it in Jan 2021

Hi @tannerlinsley, please take a look on this PR.  There are lot peoples waiting for this feature.

For what it's worth, I switched our react-table implementation from react-window + react-window-scroller to this branch and it  works very well! I was even able to remove a couple hacks that were necessary before. 👌

I needed build artifacts to use this so I forked and published this PR on npm under react-virtual-window-fork, with hopefully clear attribution to @tannerlinsley, @AndyDyer and @petersendidit
Hopefully this gets merged eventually 🙏

This PR is up next. Looking through it now.

I'd love to get everyone to put their 👀 on this PR one last time and see if we could possibly rethink the way we support the window element. It seems like we should have almost all of the utilities and abstractions we need to make this happen with fewer changes. Any ideas?

Could we simply pass different hooks and elements to useVirtual?

Could we simply pass different hooks and elements to useVirtual?

I think we could, maybe like this https://github.com/tannerlinsley/react-virtual/pull/219

Could we simply pass different hooks and elements to useVirtual?

I think we could, maybe like this #219

I like this

For what it's worth, it would be extremely useful to have a single hook that can handle both use cases. We have a virtual table component that, for various reasons, must include both element-relative and window-relative "modes" and having separate hooks means we set one to the actual data size and the other to zero. This works but it would be neat if we could switch between these modes just by conditionally swapping the reference element.
Either way, great work everyone and I'll happily take whichever API you pick! 🎉

For what it's worth, it would be extremely useful to have a single hook that can handle both use cases.

Having useScroll abstraction, it would be possible to write that, for example one option could look like, imho much more flexible
 const rowVirtualizer = useVirtual({
  size: rows.length,
  parentRef,
  useScroll: props => {
    const elementRes = useElementScroll(props)

    const windowRes = useWindowScroll({ ...props, windowRef: React.useRef(window) }),

    return isWindow ? windowRes : elementRes
  }
})

To directly support window scroll, we need to have some kind of boolean in which mode is the useVirtual, for example isWindow, and the ref to window, windowRef.
const rowVirtualizer = useVirtual({
  size: rows.length,
  parentRef,
  isWindow,
  windowRef: React.useRef(window),
})

fyi Update the #219 to include those changes, build on top of useScroll

Would it be possible for parentRef and windowRef to be mutually exclusive and then use that internally to determine the mode we're in?

Would it be possible for parentRef and windowRef to be mutually exclusive and then use that internally to determine the mode we're in?

Yes, as windowRef is optional, we can check if windowRef !== undefined to determine if in window scroll mode.

Would it be possible for parentRef and windowRef to be mutually exclusive and then use that internally to determine the mode we're in?

Yes, as windowRef is optional, we can check if windowRef !== undefined to determine if in window scroll mode.

Surely you can just pass a window ref as the parentRef and do a check inside to hook to determine if its a window ref ( parentRef.current === window )? That'll save you two parameters. I did exactly that here: https://github.com/circlingthesun/react-virtual/blob/master/index.tsx#L44

@circlingthesun what about scrollToIndex? Using parentRef we can calculate the offset of the list and correctly scroll to index. Imho having explicit windowRef is better in long run.

@piecyk useRect was also updated see: https://github.com/circlingthesun/react-virtual/blob/master/use-rect.tsx#L6.

I've been running this in production for over a year and scrollToIndex works, at least for my purposes. I was going to make a PR but my fork was based on a previous version and, at the time, it seemed like the previous PR was about to be accepted. I prefer a less complex interface. I'm just raising this to point out another approach.

Guys the #219 is ready for review, as mention before imho useScroll is very flexible, and allow to change the default implementation very easy. Tested the window scroll with dynamic list/grid and works pretty good.

Surely you can just pass a window ref as the parentRef and do a check inside to hook to determine if its a window ref ( parentRef.current === window )? That'll save you two parameters. I did exactly that here: https://github.com/circlingthesun/react-virtual/blob/master/index.tsx#L44

This makes total complete sense and definitely slims down the API

This looks fantastic. Any way we could get a simple test set up for this? Even if it doesn't go super deep, I just want to make sure things at least render with the new hook.

@AndyDyer we need the parentRef to recognise where it's in page, and take it under account when scrolling.
@tannerlinsley added some simple tests 🙈

Awesome. I merged the other PR, so this should be ready to fix up

I think we might need to point this PR at the next branch or just open a new PR. If no one responds here otherwise, I'll close this PR in a few days.

Hi Guys,
Anyone knows what going on with this issue?
There is another way to achieve the virtual scrolling with window ref?
Thanks!!!

This PR is outdated and should either be closed, re-architected or rebased against v3 beta. Thanks!

Hey @tannerlinsley, is this window scrolling functionality attainable currently?

Hey @tannerlinsley, is this window scrolling functionality attainable currently?

@epurban yes it is in latest beta, you can use the useWindowVirtualizer


fix(semantic): transformer checker compare scope children

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#5056  👈
#5055
#5054
#5053
#5052
#5051
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on  Graphite


[DNM]Uts

Instructions:

The PR has to be tagged with at least one of the following labels (*):

feature
bugfix
performance
ui
backward-incompat
release-notes (**)

Remove these instructions before publishing the PR.

(*) Other labels to consider:

testing
dependencies
docker
kubernetes
observability
security
code-style
extension-point
refactor
cleanup

(**) Use release-notes label for scenarios like:

New configuration options
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (59551e4) to head (9672518).
Report is 458 commits behind head on master.

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #13175       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436     2445        +9
  Lines        133233   134638     +1405
  Branches      20636    20841      +205
=============================================
- Hits          82274        0    -82274
- Misses        44911   134638    +89727
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
0.00% <ø> (-61.75%)
:arrow_down:

skip-bytebuffers-true
?

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I think it make sense. Once we have that, we would need to study how to publish the code in the pipeline. Right now we compile with Java 11, so we would only publish an empty jar


falling to recover detailed local shapes at predicted points, Single categorie ShapeNet-55

Dear Xumin Yu.
First thanks for this such nice work and paper.
Firstly, I was able to replicate your results using ShapeNet-55, and the pretrained model.
But secondly, I performed the training of the network just using one of the categories of ShapeNet-55, specifically “bottles” that totally contains 498 .npy files. and training the network using just a single GPU.
I used the default configuration from the PoinTr.yaml replacing the batch size from 96 to 24 And max epoch to 600.
However, for this bottle class I was able only to reach CLD2 Min 0.87 and F-Score max 0.52,
After some analysis it seems that model is doing good the center points predictions, but it is falling to recover detailed local shapes at these predicted points. Because mostly of this predicted local shapes are flat surfaces. ( see next picture)

For me it is very important to know I can work with only one category and fewer samples as a previous step before of testing with my own data set, so do you have some previous experience training the network in a single category? it is possible that the DGCNN might not be extracting the features for a category with such a low number of samples?
Thanks in advance for your comments or any advice.
BR

Hi, @alekovargas
Thanks for your interest in our work. I haven't tried to train PoinTr on Single category before, but it is nice to see the results from you.
From your results and descriptions, PoinTr can work well on the coarse(center) prediction  in your setting. However, the detail local geometry can not be correctly inferred. I think there maybe two reasons:

In the training pipeline, local geometry is weakly supervised by an CD between the complete shapes, not the local regions. And CD loss, to some extend, is suboptimal in shape reconstruction problems.
The problem is too challenge. I am curious about the drop ratio when you evaluate the model ( and visualize the results). The model trained on fewer samples may lack of generalization ability to all incomplete patterns. And for those situations where the missing parts contain complex geometry patterns (beyond simple flat surfaces), the model may need more samples or more parameters. (the head and wings of airplane can be completed well by PoinTr, but for earphone, bottle, PoinTr performes worse)

For the first point, can we add a local shape reconstruction loss to constrain more on the local geometry? And for loss between overall shapes,  I haven't try to optimize EMD loss during the training of PoinTr, which worths a try.
For the second point, if your situation does not allow you to have many samples, i think more augmentations maybe helpful. In may codebase, i only use random-crop for the samples in ShapeNet-55.
Hope it can help you.
Best!

Close it since no response. Feel free to re-open it if problems still exist

sorry for the late replay,
Yes more augmentation data solved the problem, thanks for such nice work.
regards


activate builds for python 3.6 on travis

does what it says.

Coverage decreased (-72.5%) to 22.748% when pulling f104e4a77db5eca046fd9c9737786299614c42c3 on esc:esc/feature/test_py36_on_travis into 0584ee88da31b980785c34ca87b01f8ea2f73f78 on Blosc:master.

Something must be wrong with coverage detection, will fix later.


ci: upgrade jdk environments

bump to openjdk7 and oraclejdk8.

Closing it because I'll just inlcude it in my other PR that is open.


Make snmalloc optional

This allows snmalloc to be disabled.  It also only overrides new/delete.

Addresses #116


Update App Mining Eligibility Requirements

What is the problem you are seeing? Please describe.
Right now, the requirements simply state that hello-world apps are not eligible. I think we need to be more specific on where exactly the line is drawn between apps you can log into but not do much with.
How is this problem misaligned with goals of app mining?
Very basic apps end up qualifying, and I think we need to raise the quality bar.
What is the explicit recommendation you’re looking to propose?
Change the docs to reflect that apps must have some level of unique functionality and interaction outside of simply logging in.

Agreed. Once a user authenticates into an app, there must be at least 1 action a user can take within the app that is unique to the use case in order to be eligible for App Mining.

They even get top new apps rewards..

I have been vocal about some of the dApps such as SatsHi and MyPodium.
I have yet to understand why dApps that has no update and growth at all is allowed to continue participating. These are the dApps that were caught cheating on PH score as well.

SatsHi and MyPodium has $20,000+ in total app mining reward and has zero to offer in return.
Are we really okay supporting app that are providing zero value to the decentralized ecosystem?

@joshthegreatavenue "caught cheating" is a subject opinion. There are lengthy discussions about how marketing budgets can/should/might be used and what PH role is in that process. We can have a feeling why and app is a good app or a bad app, however, formalizing this in a fair, ungamable way is hard.
For this issue, I would say a good action is if an app can create, update and delete a data item. The app should specify which data this is before submitting the app. Ideally, this data is stored on gaia, if not, NIL reviewer will reduce the gaia score.

Yes we've removed Product Hunt and so this should bee

For this issue, I would say a good action is if an app can create, update and delete a data item. The app should specify which data this is before submitting the app. Ideally, this data is stored on gaia, if not, NIL reviewer will reduce the gaia score.

We're implementing a part of this in the app.co updates issue linked here, and could likely add the section about create/update/delete data items. Not sure if that would help specifically with updating the eligibility requirements. Thoughts?

"A requirement for an eligible app is that a user has to be able to create, update and delete a data item using the app."

👍We can add that to the docs, but how do you propose it be verified? What would be different from the current process?

Is it not the NIL job? Of course, if an app does not use Gaia it will get a very low score. But in the future, it will be apps that do not need Gaia and just the secure sign in. Adding it as a requirement will abandon that use cases.

It is not about gaia, the data item could be stored locally or on a centralized server.
It is about the line that separates the simple apps from eligible blockstack apps. By adding this to the guidlines, it is easier to accept or reject apps on submission.

I thought you mean Gaia, otherwise what you suggested seems fine. I think what @xanbots said seems a more helpful way. Asking to write something looks very easy.
It can be a series of questions asked in a form after submission, about what is the problem, how the app addressed it, and such. So the Mining team can judge based on that, and give it a boolean value.

Is it possible to utilize TMUI scoring?  They have two questions that might go to the heart of whether an app is too simple or not:
Q8: I found this website to be useful.
Q14: I would reuse this website in the future.
I have not looked at the data, but perhaps there is a minimum score of between these that would
filter apps that provide no real utility?

@GinaAbrams For app participating in the app mining program, how can we ensure that the dApps are also providing benefits to the Blockstack Ecosystem?
Such as :

Are these dApps growing their user base? (More Blockstack Sign-in)
Did the developers constantly making updates in improving their apps?

Regardless, dApps participating the app mining program should implement Analytics like (Fantom / Simple Analytic) to prove that they are constantly growing their apps. I think it is unwise to keep rewarding dApps that DOES NOT benefit dApp movement at all.

Are these dApps growing their user base? (More Blockstack Sign-in)

@joshthegreatavenue that would be nice! Please see #123 in regards to growing a user base.

Did the developers constantly making updates in improving their apps?

This is currently being discussed in #169.

I follow the discussions in slack/discord/here and this is what I think.
Today there are low quality in the app-mining program because it’s coupled with the contests.
To be in rule with the contests you have to be registered in app-mining. I think this is a bad setup.
The contest results are never finished products and therefor low quality.
Because people start campaigns to promote their submission to the contest,
and will have high social scores for that month and appear high in the ranking even with low-quality.
I suggest to detach the app-mining from the contests but keep all the app-mining rules in the contests.

personal domain
use auth
updated logo
use gaia
no email
no redirection
....

step 1 is a contest that prepares for app-mining
step 2 submit for app-mining at this point we can raise the bar and add more requirements to improve quality of dapps.
We could add some steps to ensure people have to do an effort like register a personal username on the chain.

collections
contracts (when needed)
...

The last thing I have my doubts about are the social scores, I don't have a solution yet but this is my experience. There was a time this meant something but today it's so easy to manipulate.
I am a single developer on my dapp, a lead developer for 5 days a week, dad, husband and try to co-organize some Blockstack meetups. I barely manage to read what's happening in Blockstack and my RSS let alone to setup social campagnes and follow ups.
This is the choice you have to make imo:

spent time and effort in your dapp to improve quality
spent time on a social campaign for a low-quality app

I choose the first one, I'm re-writing from scratch and implement some architecture so my dapp can grow and evolve over time. Even when it costs me my ranking, because I see app-mining as a small motivator but my end-goal is to have a product of my own with the Blockstack spirit and tech. I think that's the message we have to deliver,
Blockstack is a better platform to start your business/idea, with respect for users and developers,
with a great community that will help you, and if you do your best it may reward you for your efforts on the road to succes.
Anyway it's just my 2 cents

Thank you @webwizart for this feedback! I agree with this direction of thinking. With two phases, the app mining section could also incorporate launching on Product Hunt as a requirement to enter app mining (#164) as well.

I think there are low quality apps in app mining because we allow low quality apps in app mining. Where they came from is pretty irrelevant and the contest certainly isn't the only driver of low quality apps.
Entering to app mining is supposed to be the quality minimum mechanism for the contest and to ensure all effort is resulting in devs into the program. Friction is good. If we want better quality, then there should be MORE friction (higher bar), not less. I think this is a non issue if we simply raise the floor on quality for entering app mining. We should remember that the contest is really supposed to be an on ramp for new people to the program, not something that's necessarily a super cohesive, repeated part of app mining for current miners. Because some are waiting for contests to open to submit doesn't mean to me we should restructure to accommodate it.
I definitely agree on raising the app mining floor, but I think any contests should absolutely stay directly connected to app mining to ensure contests are effective at driving new apps to the program given they cost money to run.

I recently mentioned about the benefits of joining the Blockstack ecosystem and app mining program.
The truth is, we have to raise the bar higher because in reality, we are actually giving A Lot to the developers who decided to be part of the program.  We gave money, exposure, support and mentoring without asking percentages from them. (Web Summit, Sigle and Recall gets a shoutout at Blockstack Booth. It is almost impossible for any developers or founders in the world right now to get such shoutout without paying a hefty sum.)
Other than technical challenges, they have of resources they can utilize in the Blockstack community and technical support for their app.
There are a lot of dApp taking advantages of the app mining program and had nothing to offer to the community.
What I am purposing is :

New app must describe the solution they are providing in a user journey story. E.g : As a user, if I want to X, I will head to Y, and then get Z done. This is how I can get it done by using (App Name).

New app sign up must not be alpha or beta version. If they are still beta, the core feature must at least be LIVE and Working as intended. The core feature MUST at least be Clear and Concise.

For second month participants, they must at least prove that people are using the apps. (We cannot go another year with dApp rising and dying despite endlessly giving out prizes.) I mentioned that there are decentralization trade off but we must also be smart with who we rewarding our prizes to. There are developers who really want to use Blockstack to the fullest and I believe we should pay more attention to these developers.

@joshthegreatavenue regarding #2, I dont believe Blockstack i considered full release version yet.  We cant expect apps that are built on a beta-level framework to claim to be fully production-ready.  Someone correct me if I'm wrong on blockstack.js' status.
#3 How?  For privacy focused apps, we specifically should not know that users are using them.

Some examples from the November period that appear to me personally as too simple

Many Bookmark apps some only for a fixed collection of items

Everygreen Photos
Arcane Products
Startup List
Text Styler
Bible App

Simple apps

Arcane Darkroom (photo editor for single fixed photo of London)
Daily Bookmark
pBookmarks
clickbox
NoteIt
DNotes

Merging #100 here:
There are more apps now that do work in principle without using blockstack auth

Startup List and other collection bookmark apps (main feature: browse collections, blockstack auth -> bookmark an item)
Arcane Darkroom (main feature: edit THE image, blockstack auth -> share)
OI Timesheet, Dadroit JSON Viewer (main feature: work offline, blockstack auth -> sync)


104 implementation details

Work out the detail of the 104 implementation.

@Sander3003 can we discuss this item with the team and close this old issue for now?

That's oke!


run in colab

Could you add support to run it in colab, I see that it uses gradio maybe use something like share=true

we probably need help from @camenduru here, you can see camenduru https://github.com/camenduru/latent-consistency-model-colab colabs example here, since it need a reverse proxy tunnel to run the custom webserver inside cola


Add discovered ArcGIS hub data catalogs from Common Crawl dataset

Add more ArcGIS hub data catalogs from Common Crawl dataset
Validate each catalog using ArcGIS hub API and extract all required metadata

Added even more data catalogs directly from hub.arcgis.com


Detects every data point as anamolous.

Hi,
I am consuming system metrics data from kafka and inerting the same into influx where the margoth script runs to detect any anomalous system behaviour based on the metrics, but the problem is every metric  morgoth receives it's logging it as  anomalous,have attached a screenshot of my dataset and the anomalous data set as well as my tick script for the same.
Any help is appreciated!
Thanks in advance!
from my influxdb:
select VALUE,anomalyScore from anomaly_cpu where NODE_NAME='PROC-1' AND METRIC='system.cpu.idle' AND time >=<PHONE_NUMBER>000000000 and time <=1487920500000000000;
name: anomaly_cpu
time                               VALUE         anomalyScore

1487919960000000000 87.2257319 0.95
1487920020000000000 87.2394801 0.9523809523809523
1487920080000000000 87.2379489 0.9545454545454546
1487920140000000000 87.2407403 0.9565217391304348
1487920200000000000 87.2488526 0.9583333333333334
1487920260000000000 87.2469828 0.96
1487920320000000000 87.2715053 0.9615384615384616
1487920380000000000 87.245502  0.962962962962963
1487920440000000000 87.2551249 0.9642857142857143
1487920500000000000 87.2479187 0.9655172413793104
select VALUE from system where NODE_NAME='PROC-1' AND METRIC='system.cpu.idle' AND time >=<PHONE_NUMBER>000000000 and time <=1487920500000000000;
name: system
time                                 VALUE

1487919960000000000 87.2257319
1487920020000000000 87.2394801
1487920080000000000 87.2379489
1487920140000000000 87.2407403
1487920200000000000 87.2488526
1487920260000000000 87.2469828
1487920320000000000 87.2715053
1487920380000000000 87.245502
1487920440000000000 87.2551249
1487920500000000000 87.2479187
cpu_alert_tick.docx

@divgwd Can you share your TICKscript as well?

I attached it as a doc .
On 24-Feb-2017 10:11 pm, "Nathaniel Cook"<EMAIL_ADDRESS>wrote:

@divgwd https://github.com/divgwd Can you share your TICKscript as well?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nathanielc/morgoth/issues/41#issuecomment-282339444,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWQcFc47AgIdlwRz5Ra0p-TDtfCYm5mLks5rfwhWgaJpZM4MLA2G
.

@divgwd Sorry I missed that. It looks like your data points are 1m apart. You are windowing the data into 1m buckets, which means that each window only has a single point. Morgoth expects more points per window. Typically 30-60 points is best. Since Morgoth is calculating the mean and stddev of the window it is getting a stddev of 0 for windows with a single point. As a result all points are being marked as anomalous since all points are more than 3*stdedev = 0 away from the mean.
Either increase the frequency at which you are collecting data or increase the Morgoth window to 10m or something larger.

Thanks,
That worked!!
I had a doubt , so everytime I disable and enable the morgoth task will it be like a new task or will it continue as it previously did??

Perfect! Now that you have a real data set that you want to detect anomalies on you can use the record/replay features of Kapacitor to iterate on the Morgoth specific settings to catch the anomalies.
Something like this should work.
# Create a recording
kapacitor record query -type stream -query 'select cpu_usage_idle from telegraf.autogen.cpu where <time range of above graph>'
# Remember to recording ID that is printed from the above command

#Repeat as  needed
# Update the task with new settings
kapacitor define cpu_morgoth_task -tick cpu_morgoth_task.tick
# Replay the recording against the Morgoth task
kapacitor replay -recording RECORDING_ID -task cpu_morgoth_task -rec-time

Then you can iterate on the task until it catches the anomalies you want and nothing more.
A few suggestions to get started.

Play around with the sigma value. This directly controls how sensitive Morgoth is to changes.
Play around with window size, typically 60 points per window is best but you may find that even 30 or less points is enough, allowing you to catch anomalies that do not last as long.
Leave minSupport and errorTolerance at defaults for now, those settings control how well Morgoth can detect different kinds of anomalies. In your graph all the anomalies are very similar and so  the defaults should be good.

Finally be careful not to overfit your data, meaning if you tune the task to precisely catch the anomalies in your recording it may not generalize well at catching new anomalies later. You can test this by making a new recording and testing against it after you have it working on your first recording.
In answer to your question above:

so everytime I disable and enable the morgoth task will it be like a new task or will it continue as it previously did??

It will start over like a new task. The plumbing is in place to preserve it but it is not quite implemented yet. I'll open an issue to track getting that finished.

Hi,
I have morgoth running on system metrics which come at intervals of 10s,window for morgoth is 10 mins , so, I have 60 samples per morgoth window,the error tolerance and min support are set to default values and sigma is 3.3.The system is pretty stagnant without much activity yet morgoth detects anomalous data when there is no data received for those metrics .I have attached snapshots of the same. Is there something I have missed or overlooked ??

Thanks in advance :)


Here or in React Native?

Greetings!
Which repo would you like us to file reports & requests in?  Here?  or React Native?
Thanks.  :)

I think it'll be better if you will file reports and PRs to React Native and cc me or Mike :)

Yeah, we will be cherry-picking stuff later manually :)


Add hyperkit support

hyperkit support needs additional files/metadata:

we need to get the correct vmlinuz and initramfs, probably extracting them from the VM image
crc-bundle-info.json needs to describe these files
then we'll either need to also extract the full kernel command line for use by hyperkit, or add the ostree hash, the disk uuid, and the boot 'index' to the metadata file. The full kernel command line is similar to CMDLINE="BOOT_IMAGE=/ostree/rhcos-$OSTREE_HASH/$KERNEL console=tty0 console=ttyS0,115200n8 rootflags=defaults,prjquota rw root=UUID=$ROOT_UUID ostree=/ostree/boot.0/rhcos/$OSTREE_HASH/0 coreos.oem.id=qemu ignition.platform.id=qemu" (the so called 'boot index' is the '0' which appears twice in the ostree=... bit). This data will go in crc-bundle-info.json

fixed by #48


sbclPackages.cl-liballegro-nuklear: fix build

remove patch that no longer applies as upstream includes that change

Description of changes
Previous patch added :cl-liballegro in :depends-on.
But it no longer applies as cl-liballegro-nuklear.asd in current src already has it:
  :author "Andrew Kravchuk<EMAIL_ADDRESS>  :license "MIT"
  :depends-on (:cffi :cffi-libffi :cl-liballegro :trivial-features)
  :pathname "src"

Fixes build of sbclPackages.cl-liballegro-nuklear (does not build since 2024-06-24):
https://hydra.nixos.org/job/nixpkgs/staging-next/sbclPackages.cl-liballegro-nuklear.x86_64-linux
https://hydra.nixos.org/build/270524923
Error log (patch fails to apply):
Running phase: unpackPhase
unpacking source archive /nix/store/himijz3p750zq0ppnksbjzn9b0hrh50g-source
source root is source
Running phase: patchPhase
applying patch /nix/store/9m80m57md5k04fydh7w8g6kzi996782b-cl-liballegro-nuklear-missing-dll.patch
patching file cl-liballegro-nuklear.asd
Hunk #1 FAILED at 12.
1 out of 1 hunk FAILED -- saving rejects to file cl-liballegro-nuklear.asd.rej

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 339845 run on x86_64-linux 1

1 package built:

sbclPackages.cl-liballegro-nuklear


add auceonline domain

@hashbro14 Please provide us with:

the school official website URL
an URL of a page on the official website where the school offers an IT-related long-term (>1 year) course
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

@hashbro14 Please provide us with:

the school official website URL
an URL of a page on the official website where the school offers an IT-related long-term (>1 year) course
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.
This is the official link of the university, please check it out: https://auce.edu.lb/

@hashbro14 I am sorry, your reply does not contain any data but my question. Please reply with the response to the question.

@hashbro14 I checked out the link. The domain auceonline.com is not mentioned there anywhere. If I am mistaken please tell me exact URL where I can read that this university recognizes the domain auceonline.com that you are submitting as an official email domain for the students.

@hashbro14 I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue.
As for now, please apply for free educational license with an official document which proves that you are a student. You can do it using "OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students.
Thank you for the understanding!

Sorry I didn't come back to you earlier, was busy with a lot of stuff, preparing for exams. And yes that is the official website of AUCE, but really don't have any idea why they named their domain 'auceonline'. Well what I can say, welcome to Lebanon ... Sorry for any misunderstanding, but I am a student in this University and that is their domain name. Again sorry for any inconvenience...

@hashbro14 Thank you for the update! Please try and find any kind of proof: an instruction from the university to use this email address, a book published by the university with the author's email in this domain, anything. I need to see a connection between auce.edu.lb and auceonline.com. Thank you!

@hashbro14 I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!


Changed posting frequency to #gds-community from three times a week to every weekday

This PR updates the posting frequency for quotes in #gds-community to be Mon/Tue/Wed/Thurs/Fri instead of just Mon/Wed/Fri.
The change is being made as a result of the survey outcome.

@antoni-devlin what survey are you referring to? We were asked to change it to three days a week not long ago because that seemed like the most popular option

@MuriloDalRi The "It's Ok" seal project is run by Jenny Bradley (@Calcifer-j), who put out a survey asking people how often and in which channels they would prefer the Seal post in the #gds-community and #govuk slack channels. The outcome was to continue posting every weekday in #gds-community, and reduce the frequency to Mon/Wed/Fri in #gov-uk.
I've also just pushed an update to fix broken links pointing to the wiki.

These changes have been made already in another PR


'ctags' is not recognized as an internal or external command, operable program or batch file.

I am getting this error after selecting a folder. CTRL + T, CTRL + R shows a list of directories.

Hello,  i am getting the same error and can't fix it.
I am using sublime 2 and Windows 7, first I downloaded it thru the package manager, didn't work.
i then downloaded the zip which I extracted and now I have a folder ctags58 in C:\Program Files\Sublime Text 2 and it still doesn't work. I copy/pasted ctags.exe to C:\Program Files\Sublime Text 2 and still it doesn't work.
Is there anything else that can be done?

@vk011 You could modify the command argument in your settings to point to the executable?

Thanks for replying, whereexactly do I do that?
And do you mean the executable inside C:\Program Files\Sublime Text 2 or C:\Program Files\Sublime Text 2\ctags58 ?

Either one will do. Check the Sublime Text docs for info on configuring settings

I found the command in Preferences / Package Settings / CTags / Settings - Default , is that what you meant?
Now it looks like so: "command": "C:\Program Files\Sublime Text 2\ctags.exe",
Yet it still shows the same error after restarting sublime.

Found it under Ctags / Settings - Default, I copy pasted the exe to C drive now it looks like so and works (in case someone else needs it):
"command": "C:\ctags.exe",
Thanks!


Google Docs not working

Could you upload a editable Google document that I could make a copy of and test the features of the addon? It appears to not be working for me when I try to generate my own cards

actually, could you just upload this version of a Google document?
seemed like an oversight to not include a Google document people could make a copy of and try for themselves rather than an already published Google document
https://github.com/c-okelly/anki-remote-decks/issues

Hey I has just updated the docs to include a link to the google doc as you suggested!
I probably should have done it to start with but did not think of it
Closed by a020ee94daa472180da580afcc515bb427084536

Hey I has just updated the docs to include a link to the google doc as you suggested!
I probably should have done it to start with but did not think of it
Closed by a020ee94daa472180da580afcc515bb427084536


Use Component Properties for Fitted vs not-fitted in BOM Generation

Consider both variant DNI (Do Not Install) DNP (Do Not Populate)
And also Altium attribute for "Mechenachal only", "No BOM"

Linked to AllSpiceIO/AllSpice-Tools#639

From this SO answer: https://electronics.stackexchange.com/questions/124171/how-to-specify-a-capacitor-in-altium-schematic-as-dnp
The recommended way to do DNI/DNP (the original reason why we're looking into this) is to make a variant OR use the Component Kind.


RobotFramework 2.9.2 timing issues

Hi,
I have a test which is time sensitive as it is used to spoof button presses (100ms resolution). My keyword resources work fine with RobotFramework 2.8.5 but when I upgrade to Robotframework 2.9.2 I have seen that the keyword takes 250ms to execute instead of 100ms. Looking at the logs it seems that parent keyword's time taken (250ms) is not the sum of execution time of all child keywords (actual sum is 120ms). I also noticed that before child keyword was called within 10ms of calling the parent keyword but with new framework version it takes the parent keyword 45ms to call the child keyword with no other operation to perform.
Why is that Framework takes so much time to call/start the child keyword ?
This discrepancy breaks my tests as button presses are no longer replicated.
Thanks.

Has something changed from robotframework 2.8.5 and 2.9 w.r.t. the way framework handles resource imports ? Can that be a reason that delay is because of getting keywords access ?

There were performance regressions in RF 2.9. Lot of improvements then in RF 3.0. Please test with that version and see how it behaves in your case.

I upgraded to RF 3.0 and yet cannot get around the timing mistmatches. I have a keyword which have 13 if else conditions with Run keyword IF builtin keyword. This operation earlier use to take less than 50ms but now it take almost 300 ms. Any idea? I have python 2.7.10 on win32 and am checking to see if win 64 python would improve performance here.

Attaching log files in pdf format here. With old robotframework version BuiltIn keyword operation took almost no time while now they take around 200ms extra. This is one of the instances I am posting.  I do have keywords taking much longer to call child keywords (~30ms per call) which induces over 100ms delay when having a 3 layer call. Unable to spoof button presses with this additional delay of 300ms
LOG_RB2_8_5.pdf
LOG_RB3_0.pdf

I don't have time to look at the logs or to study this otherwise at the moment, but I can believe that later RF versions are slower that older in certain cases. It is very unfortunate that such a case causes problems for you. What you can do include the following:

Keep using the older versions that are faster in your use case.
Move complex logic like 13 if else conditions to a library.
Investigate why later versions are slower and try enhancing the speed.
Pay me or someone else to do the aforementioned investigation.

I tested this myself and noticed that Run Keyword If is, indeed, about three times slower in RF 3.0 than in RF 2.8.x. This slowdown seems to be caused by enhancements to evaluating expressions (#2040),
and looking at the code I couldn't find any easy way to enhance the performance.
It is unfortunate that performance has got worse in this regard, but the aforementioned enhancements are, in my opinion, much bigger than the caused problems. I'm still able to run Run Keyword If with about 250 ELSE IF conditions in 0.1 seconds on my machine so the performance is not that bad. If you must have better performance, I recommend you to move the logic to  a custom test library.

This was important for a paying customer later and was investigated and fixed in RF 3.0.2 (#2523).


Add constants for commonly used colors

This PR aims to improve readability by introducing constants for the most used/basic colors (red, green, blue, white, black, transparent white and transparent black).

Replace Color(1.0, 1.0, 1.0, 1.0), Color(1.0, 1.0, 1.0), Color(1, 1, 1) and Color(1, 1, 1, 1) with Color::WHITE
Replace Color(0.0, 0.0, 0.0, 1.0), Color(0.0, 0.0, 0.0), Color(0, 0, 0) and Color(0, 0, 0, 1) with Color::BLACK
Replace Color(1.0, 1.0, 1.0, 0.0) and Color(1, 1, 1, 0) with Color::TRANSPARENT_WHITE
Replace Color(0.0, 0.0, 0.0, 0.0) and Color(0, 0, 0, 0) with Color::TRANSPARENT_BLACK
Replace Color(1.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0), Color(1, 0, 0) and Color(1, 0, 0, 1) with Color::RED
Replace Color(0.0, 1.0, 0.0, 1.0), Color(0.0, 1.0, 0.0), Color(0, 1, 0) and Color(0, 1, 0, 1) with Color::GREEN
Replace Color(0.0, 0.0, 1.0, 1.0), Color(0.0, 0.0, 1.0), Color(0, 0, 1) and Color(0, 0, 1, 1) with Color::BLUE

Shouldn't we make named colors accessible from C++ instead?

I actually forgot that there are already named colors (and they are accesible from C++).
However, Color::get_named_color("WHITE") is significantly longer than Color::white() and the access is not as fast since the compiler can optimize the second method. so it basically acts like a true constant. In this regard this might be still relevant.

However, Color::get_named_color("WHITE") is significantly longer than Color::white() and the access is not as fast since the compiler can optimize the second method. so it basically acts like a true constant. In this regard this might be still relevant.

Could we make those actual constants with some C++ macro/template magic?

Why are they methods instead of just constexprs?

@LightningAA Unfortunately, just using constexpr wouldn't work. As Color is not an integral type defining constants can be problematic (due to the way C++ handles this). I initially used methods for this as that is considered to be a safe way to avoid linker errors.
However, as I wasn't happy with it too, I changed it to the approach used by SFML (static const declaration and initialization in the implementation file). See the updated top comment for details.

Why have Color::TRANSPARENT_WHITE when you can have Color(Color::WHITE, 0)? It's even slightly fewer characters long (22 instead of 24).

The PR makes sense, but the list of colors is to be assessed. White color is by far the most commonly used one, but e.g. blue seems to be used 8 times. Although it's a primary color, so maybe makes sense to have it anyway, idk.
Also I support the idea that transparent colors can be simply achieved with Color(Color::WHITE, 0) instead of having their own constants (it's actually shorter to write).

In order to move this forward:
Should we...

keep the proposed list of colors
keep the proposed list of colors, without the transparent variants
just add Color.WHITE and Color.BLACK
provide all the named colors as C++ constants

I was reminded about this as I am doing some performance work and noticed that in a heavy frame we spend a ton of time creating new Vectors for things like Vector3(1, 1, 1)
Vector3(float, float, float) shows up twice(!) in the top ten most sampled single function calls

While a lot of the calls to Vector3() are a result of vector operations that return a new vector, a lot of it is just the cost of constructing a Vector3 from constants.
Personally, I don't find the color constants to be more readable. In fact, without an IDE, I think they generally make the code less clear (I have to think, is red (1,0,0) or is it a different shade of red). However, there is a measurable performance benefit to using a static constant instead of creating the Color manually. Accordingly I think it makes sense to make this change with the colors that are most commonly used in hot paths. For Vector3 that is:
const Vector3 Vector3::ZERO{ 0.0, 0.0, 0.0 };
const Vector3 Vector3::ONE{ 1.0f, 1.0f, 1.0f };
const Vector3 Vector3::X{ 1.0f, 0.0f, 0.0f };
const Vector3 Vector3::Y{ 0.0f, 1.0f, 0.0f };
const Vector3 Vector3::Z{ 0.0f, 0.0f, 1.0f };

I have to think, is red (1,0,0) or is it a different shade of red

I think in code it's safe to assume HTML colors. If you see RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, BLACK, WHITE, and are generally familiar with colors, it's easy to tell or even "see" at a glance what do they mean.


docs(example): Use single arg create from rest@5

Best practices from latest @rest-hooks/rest version. Single arg create.

Codecov Report

Merging #1979 (d4a42af) into master (b84239d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1979   +/-   ##
=======================================
  Coverage   98.48%   98.48%
=======================================
  Files         102      102
  Lines        1916     1916
  Branches      402      402
=======================================
  Hits         1887     1887
  Misses         13       13
  Partials       16       16

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


No new release for 10 months

Sorry to make this an issue, but it's, well, an issue.
This library's still under fairly active development, but the last release was 10 months ago - 19 June. Do you think we could get a new release, so that we can get features like those in #43 without having to target dev-master, which I'd really hate to have to do

Absolutely agree. I'll publish a new release next week! Thanks for the reminder.

I've now released 0.5 which is directly off master, please try this out and let me know if this looks good! Thanks for the suggestion :)


Drop some of the metrics exposed by prometheus-adapter

Description
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request.
If it fixes a bug or resolves a feature request, be sure to link to that issue.
The current implementation of prometheus-adapter exposes a lot of
metrics about the health of its aggregated apiserver. The issue is that
the some of these metrics are not very useful in the context of
prometheus-adapter, and we currently can't avoid exposing them since
they are registered to the Kubernetes global Prometheus registry. Until
this is improved in upstream Kubernetes, we could benefit from dropping
some of the metrics that are not very useful.
Before this change, in a default kube-prometheus installation, we would
have 800+ series for prometheus-adapter against 400+, so we divided the
number of series by two will focusing on the most valuable metrics for
prometheus-adapter.
Type of change
What type of changes does your code introduce to the kube-prometheus? Put an x in the box that apply.

[x] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[ ] FEATURE (non-breaking change which adds functionality)
[ ] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[ ] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)

Changelog entry
Please put a one-line changelog entry below. Later this will be copied to the changelog file.

Drop some of prometheus-adapter metrics that are inherited from the apiserver code but aren't useful in the context of prometheus-adapter.

@fpetkovski @prashbnair can you please have a look at these changes and let me know if they make sense? Also if you have any other idea of metrics that we could drop let me know.

I am not familiar with which metrics are exposed by prometheus-adapter, but would it make sense to make an allowlist instead of a denylist?

I don't think so since it would mean that we would have to think about updating the allowlist whenever we will add new health metrics in prometheus-adapter.

Sounds good, then this lgtm

Do we need the ones related to authentication?

I never used them personally, but I thought that they might be useful if somehow there is an issue with the authentication since the authentication process of aggregated APIs is quite complex and these are the only metrics that we have to investigate, as far as I can tell, we don't have any intel from the apiserver itself since the requests are proxied. That's why I would be reluctant to remove them even though they are responsible for a big part of the series.
Maybe @s-urbaniak can chime in here since he has knowledge on both prometheus-adapter adapter and authentication.
Essentially the metrics that I think are worth keeping are:

https://github.com/kubernetes/kubernetes/blob/c224ca7674445ec98a2e8876daf53b9846cd3ae1/staging/src/k8s.io/apiserver/pkg/endpoints/filters/metrics.go#L44-L70
https://github.com/kubernetes/kubernetes/blob/92726bf0f3e2f2c83ca9d0b750cac53a7d74d0c0/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/metrics.go#L36-L53

But I am in no way an expert on that topic, so I don't really know if these metrics really make sense for an aggregated API.

/lgtm
lets merge this and we can remove the others if needed.

/lgtm

Thanks everyone for the reviews.


[Cider] Flatten initial

A bunch of the initial data structures for cider 2.0. Lots unfinished but figured give people a chance to take a look at things. Don't bother looking at the translation stuff too closely as it is very unfinished and has some bugs.

You can now translate single component programs into the internal flattened representations. Try:
cargo run -- tests/control/if.futil flat

This'll print out the debug representations of the primary & secondary context structs and then crash with a note about how the flattened stuff cannot do interpretation yet

(leaving this here mostly as a note to myself) As we discussed in the meeting , it might be useful to merge this even though it is in a "partial state" as long as it doesn't break anything else


Add a license

Hi everyone who's contributed materials to this repo (@joacorapela, @spewil, @stephenlenzi, anyone else?).
I noticed there was no license on this repo, are you happy with me adding a license (ideally the unlicense) so that anyone can reuse the materials (including me)?
If nobody has an objection, I'll add it in a few days.

Went with a CC-BY-4.0 License, let me know if any issues.


Setting transforms on existing layer not pure

🐛 Bug
I'm not sure if this is by design, or a bug... but setting layer.shear with a full shear matrix is impure: calling it with the same value repeatedly gives you different results.
To Reproduce
import napari
import numpy as np

viewer = napari.Viewer()
layer = viewer.add_image(np.random.rand(64,64,64))

mat = np.eye(3)
mat[2,0] = 0.5
layer.shear = mat
layer.shear  # array([-0. ,  0.4,  0. ])
layer.shear = mat
layer.shear  # array([-0.        ,  0.27586207,  0.        ])
layer.shear = mat
layer.shear  # array([-0.        ,  0.21253985,  0.        ])

yes, warnings are provided when I set those, but it's not clear from the warnings (until you look at the source code for the shear setter showing the decomposition and recomposition of the full matrix) why setting shear with the same value yields a different result.
UserWarning: Non upper diagonal shear matrix passed so reseting rotate to the identity.
UserWarning: Non-orthogonal slicing is being requested, but is not fully supported. Data is displayed without applying an out-of-slice rotation or shear component.

Expected behavior
setting a layer attribute should not depend on previous state.  If the intention was to apply shear to whatever the current matrix is, then I would have expected it to be a method (like apply_shear) rather setting an attribute layer.shear = ...

I'm not sure if this is by design, or a bug... but setting layer.shear with a full shear matrix is impure: calling it with the same value repeatedly gives you different results.

Yeah, agreed we should fix. Maybe rather than emit "UserWarning: Non upper diagonal shear matrix passed so reseting rotate to the identity." I should have just thrown an error but I didn't actually realize it would be this bad with that example (I would have thought it would be stable, but you'd loose any additional rotation information each time), so maybe more is going wrong that I thought.
The issue is that our shear decomposition always goes to an upper triangular matrix, but you're passing in a full shear matrix that is lower triangular, so something's got to give, but it should be stable.

I should have just thrown an error but I didn't actually realize it would be this bad with that example ... The issue is that our shear decomposition always goes to an upper triangular matrix, but you're passing in a full shear matrix that is lower triangular

fwiw, I noticed this first with shear_matrix_from_angle ... since that also creates a lower triangular matrix.  so setting layer.shear = shear_matrix_from_angle(31) has the same outcome

Just did some more looking into this, one fix would be to add scale = np.ones(len(scale)) here https://github.com/napari/napari/blob/master/napari/utils/transforms/transforms.py#L378-L383
This would then fix the above issue and setting shear would be stateless. We could do this as a quick fix for
layer.shear = shear_matrix_from_angle(31) but there's a deeper issue that our reduced representation is upper triangular and so we're not really able to have a nice round trip with a lower triangular input :-( Very curious what you'd recommend here, I'd love to see this fixed

If user passes a full matrix to shear we should detect if lower triangular/ upper triangular and decompose as appropriate. This would prevent the above bug. We can keep track of this and return the decomposition as appropriate.
We should also add a homogeneous keyword to shear_matrix_from_angle.
Thanks @jni and @tlambert03 for help figuring this out!!!!


[fix][broker] Fix NPE when set AutoTopicCreationOverride

Motivation
When the user wants to set the AutoTopicCreationOverride policy with non-partitioned type, the correct request body is as below.
{
    "allowAutoTopicCreation": true,
    "topicType": "non-partitioned"
}

On the broker side, the request body entity field defaultNumPartitions is null. the NPE will occur when the user sets config maxNumPartitionsPerPartitionedTopic greater than 0.
https://github.com/apache/pulsar/blob/3c60063716d3cdd561bf1e956a551a2297869fd9/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java#L839-L842
Modifications

Check maxNumPartitionsPerPartitionedTopic just topicType is partitioned

Verifying this change

[x] Make sure that the change passes the CI checks.

Add a test testAutoTopicCreationOverrideWithMaxNumPartitionsLimit to verify this change.
Documentation

[x] no-need-doc

/pulsarbot run-failure-checks

Remove the release/2.8.4 label since it relies on https://github.com/apache/pulsar/pull/12322.

Restore the release/2.8.4 since it looks like #12322 can be cherry-picked to release branches.

Does the cherry-picked tags means it has been cherry-picked in the 2.10 version ?

@Nowadays Yes.


C# extractor does not work without silently (i.e. without human interaction)

The current C# extractor needs input from the user as to what directory to parse, and where to put the resulting file. It even ends with a Console.ReadLine(), stopping it until the user presses Enter. This makes it useless for CI/CD scenarios (where the tool is run in a nightly build for instance). Instead, make it into a real command line tool, possibly with https://github.com/commandlineparser/commandline (which is the one I happen to prefer, with a permissive MIT license). Then:
generateCsharp myDll.dll >myresult.famix
You would then write error messages to stderr and the result would be spit out to standard out, so that it can take part in other tools in the pipeline.

Deprecated, since we no longer use famix as input source. Once there is a C# or .NET plugin for jQAssistant available, we will support it again.