How can I calculate suitable parameters?

Hello, I tried to hold training on a large dataset with more than 1,000,000 speakers. But the losses had very bad results. Can you please tell me how to calculate the parameters for training to achieve good results? (batch_size, n_prediction_steps, n_negatives, etc.)
The results on small data (VCTK + LibriTTS) were good.
You have a formula in your code warmup_epochs = 2000 // (len(dataset)//cfg.training.batch_size)
Why 2000? What is the optimal number of warmup epochs?
I tried to increase the batch size to speed up the training. But during the experiments it turned out that this worsened the results.
I will be glad for any advice!

Hi, for your questions:
(1) 2000 is determined by multiple trials, and 2000 achieves best performance;
(2) I'm not sure whether increasing the batch size can give better results, but first of all, I think since the number of speakers for training is so large, you may need to keep data balance, i.e., similar number of utterances per speaker. Besides, you need to make sure that the audio is relatively clean without too much noise or reverberation, else the speaker encoder may learn those harmful information. Based on my experience, you can use a pre-trained speaker encoder (e.g., trained for speaker recognition task) instead of training the speaker encoder from scratch, this way can stabalize the training process and also improve the conversion performance when the number of training speakers is large.


Chinese-language promo image

Hi @rdunk -- the team has reviewed the Chinese-language promo image. I emailed you last week with some tag-substitutions that need to be made.

Closing task.


Throw DioError to test error handling

Is your feature request related to a problem? Please describe.
How to throw exceptions from Dio to test error handling?
Describe the solution you'd like
I think pretty useful for doing something like
dioAdapter.onGet('/test').throw(DioError(type: DioErrorType.RESPONSE, response: Response(statusCode: 500)));

thanks for the package

@kcrebound Great suggestion! It definitely makes sense. @campfire5 already started working on it and will be available soon.
Thanks!

#64 resolves this issue by introducing the throws method.
Example usage scenario:
import 'package:dio/dio.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';

void main() {
  test('Test that throws custom exception', () async {
    const path = 'https://example.com';

    final dio = Dio();
    final dioAdapter = DioAdapter();

    dio.httpClientAdapter = dioAdapter;

    final response = Response(statusCode: 500);
    const type = DioErrorType.RESPONSE;
    const error = 'Some beautiful error';

    // Building request to throw the DioError exception
    // on onGet for the specific path.
    dioAdapter
        .onGet(path)
        .throws(500, DioError(response: response, type: type, error: error));

    // Checking that exception type can match `DioError` type too.
    expect(() async => await dio.get(path), throwsA(isA<DioError>()));

    // Checking the type and the message of the exception.
    expect(
      () async => await dio.get(path),
      throwsA(predicate((DioError e) => e is DioError && e.message == error)),
    );
  });
}

@kcrebound Thank you for the suggestion!


Cannot import BinaryRelevance

The following code, based on this section of the docs, does not run and the error is not clear (to me!):
from skmultilearn.problem_transform import BinaryRelevance
from sklearn.naive_bayes import GaussianNB

This code returns the following ImportError:
ImportError                               Traceback (most recent call last)
<ipython-input-29-6a0165cb8005> in <module>()
----> 1 from skmultilearn.problem_transform import BinaryRelevance
      2 from sklearn.naive_bayes import GaussianNB

D:\XXX\Anaconda2\lib\site-packages\skmultilearn\problem_transform\__init__.py in <module>()
      9 """
     10
---> 11 from .br import BinaryRelevance
     12 from .cc import ClassifierChain
     13 from .lp import LabelPowerset

D:\XXX\Anaconda2\lib\site-packages\skmultilearn\problem_transform\br.py in <module>()
----> 1 from builtins import range
      2 from ..base.problem_transformation import ProblemTransformationBase
      3 from scipy.sparse import hstack, coo_matrix
      4 from sklearn.utils import check_array
      5 import copy

ImportError: No module named builtins

Any ideas of what the problem is?

Solved it! Needed to import the module future from my command line before running the notebook that uses scikit-multilearn.
pip install future

This eliminates the error, but I have not fully tested it yet. Is this future package a missing requirement for scikit-multilearn?

What python version are you using? Are you using the most recent update of scikit-multilearn? What are the steps to reproduce this issue? (You are using it in jupyter, and your solution works under what circumstances exactly?)

Sorry since I was closing it so quickly I stopped adding information. Latest version of the Python 2.7 variant in pip scikit_multilearn-0.0.5-py2-none-any. In python 2.7.11. Problem replicated both in Jupyter and as a script at the command line.
Solution works under all circumstances on my system (Windows 10 and OSX; both at python 2.7.11 I believe but I cannot see the OSX version now).


Sik-Ho Tang | Review: SqueezeNet (Image Classification).

Sik-Ho Tang. Review: SqueezeNet (Image Classification).

Overview
In this story, SqueezeNet, by DeepScale, UC Berkeley and Stanford University, is reviewed. With equivalent accuracy, smaller CNN architectures offer at least three advantages:

Smaller Convolutional Neural Networks (CNNs) require less communication across servers during distributed training.
Smaller CNNs require less bandwidth to export a new model from the cloud to an autonomous car.
Smaller CNNs are more feasible to deploy on FPGAs and other hardware with limited memory.

This is a technical report on arXiv in 2016 with over 1100 citations.

Architectural Design Strategies
Strategy 1. Replace 3×3 filters with 1×1 filters
Given a budget of a certain number of convolution filters, we can choose to make the majority of these filters 1×1, since a 1×1 filter has 9× fewer parameters than a 3×3 filter.
Strategy 2. Decrease the number of input channels to 3×3 filters
Consider a convolution layer that is comprised entirely of 3×3 filters. The total quantity of parameters in this layer is:

(number of input channels) × (number of filters) × (3×3)

We can decrease the number of input channels to 3×3 filters using squeeze layers, mentioned in the next section.
Strategy 3. Downsample late in the network so that convolution layers have large activation maps
The intuition is that large activation maps (due to delayed downsampling) can lead to higher classification accuracy.
Summary

Strategies 1 and 2 are about judiciously decreasing the quantity of parameters in a CNN while attempting to preserve accuracy.
Strategy 3 is about maximizing accuracy on a limited budget of parameters.

Fire Module

Fire Module with hyperparameters: s1x1 = 3, e1x1 = 4, and e3x3 = 4.

A Fire module is comprised of: a squeeze convolution layer (which has only 1×1 filters), feeding into an expand layer that has a mix of 1×1 and 3×3 convolution filters.
There are three tunable dimensions (hyperparameters) in a Fire module: s1×1, e1×1, and e3×3.

s1×1: The number of 1×1 in squeeze layer.
e1×1 and e3×3: The number of 1×1 and 3×3 in expand layer.

When we use Fire modules we set s1×1 to be less than (e1×1 + e3×3), so the squeeze layer helps to limit the number of input channels to the 3×3 filters, as per Strategy 2 in previous section.
To me, it is quite a like of Inception Module.

SqueezeNet Architecture

SqueezeNet (Left), SqueezeNet with simple bypass (Middle), SqueezeNet with complex bypass (Right).

Details of SqueezeNet Architecture.

SqueezeNet (Left): begins with a standalone convolution layer (conv1), followed by 8 Fire modules (fire2–9), ending with a final conv layer (conv10).
The number of filters per fire module is gradually increased from the beginning to the end of the network.
Max-pooling with a stride of 2 is performed after layers conv1, fire4, fire8, and conv10.
SqueezeNet with simple bypass (Middle) and SqueezeNet with complex bypass (Right): The use of bypass is inspired by ResNet.

Hyperparameters

Different Hyperparameter Values for SqueezeNet.

Squeeze ratio (SR) (Left): the ratio between the number of filters in squeeze layers and the number of filters in expand layers.
Increasing SR beyond 0.125 can further increase ImageNet top-5 accuracy from 80.3% (i.e. AlexNet-level) with a 4.8MB model to 86.0% with a 19MB model. Accuracy plateaus at 86.0% with SR=0.75 (a 19MB model), and setting SR=1.0 further increases model size without improving accuracy.
Percentage of 3×3 Filters (Right): Top-5 accuracy plateaus at 85.6% using 50% 3×3 filters, and further increasing the percentage of 3×3 filters leads to a larger model size but provides no improvement in accuracy on ImageNet.

SqueezeNet Variants

SqueezeNet accuracy and model size using different macroarchitecture configurations.

Complex and simple bypass connections both yielded an accuracy improvement over the vanilla SqueezeNet architecture.
Interestingly, the simple bypass enabled a higher accuracy accuracy improvement than complex bypass.
Adding the simple bypass connections yielded an increase of 2.9 percentage-points in top-1 accuracy and 2.2 percentage-points in top-5 accuracy without increasing model size.


Changed "a icon" to "an icon" typo on second paragraph

Updated a typo from "a icon" to "an icon" on second paragraph

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you @DominusKelvin for your contribution and congratulations on your first PR merge to this repo! 🎉
Hope to see more contributions from you in the future.


Prototype Persistence provider for AGL persistence API

Hello there,
as we do not yet know where the persistence API will end up, and want to write this in Rust/C++ anyway I just open this issue for discussion.
here is a complete - albeit beyond ugly - provider that does everything:

Starts up and reads a complete VSS json file, and filters out all entires where "persist" is set to true
Checlk AGL persistence store and in case data exists publish it t KUKSA
Subscribing all paths and in case of changes pushing it back to persoistence layer

The code

import json
import subprocess
from kuksa_client.grpc import VSSClient
from kuksa_client.grpc import Datapoint

KUKSA_PORT=55556

def extract(path, vssdata, persistPaths):
    #print(f"Extracting {path}")
    if vssdata['type'] == "branch":
        if "children" in vssdata:
            for k, v in vssdata['children'].items():
                extract(path + "." + k, v, persistPaths)
    elif vssdata['type'] == "sensor" or vssdata['type'] == "actuator":
        #print(f"Checking {path}")
        if "persist" in vssdata and vssdata['persist'] is True:
            persistPaths.append(path)
            #print(f"Persisting {path}")

def extract_path_to_persist(vssdata, persistPaths):
    extract("Vehicle", vssdata['Vehicle'], persistPaths)

def read_and_publish_to_kuksa(persistPaths):
    for path in persistPaths:
        print(f"Reading {path}")
        output = subprocess.check_output(["grpcurl", "-plaintext", "-d", f'{{"key": "{path}", "namespace": "vss"}}', "localhost:50054", "storage_api.Database/Read"])
        outputDict = json.loads(output)
        with VSSClient('<IP_ADDRESS>', KUKSA_PORT) as client:
            if "success" in outputDict and outputDict["success"] is True:
                print(f"Pushing value {outputDict['result']} to {path} is ")
                client.set_current_values({ path: Datapoint(outputDict['result']),
    })
            else:
                print(f"No data for {path}")

def main():
    print("Hello Persistent world!")
    # we are reading it from a complete VSS JSON, parsing may
    # be more complicated tha reading a simple config file
    # but the VSS way would be to define a persist field in
    # an overlay, and furthermore, the datatype information
    # might be needed when doing this in Rust or C++ as the
    # GRPC API of KUKSA is typed for performance reasons
    # (Python bindings just hid this fact. At a cost)
    vssdata = json.load(open("vss_release_4.0.json"))
    persistPaths = []
    extract_path_to_persist(vssdata, persistPaths)

    print(f"Persisting {persistPaths}")

    # try to get path form AGL persistence API and push
    # to KUKSA.
    read_and_publish_to_kuksa(persistPaths)

    # No we subscribe all Paths and update them in
    # AGL persistence API
    print("Subscribing to all paths")
    with VSSClient('<IP_ADDRESS>', KUKSA_PORT) as client:
        for updates in client.subscribe_current_values(persistPaths):
            for path, data in updates.items():
                if data is not None:
                    print(f"Updating {path} with {data.value}")
                    # update path in AGL persistence API
                    subprocess.check_output(["grpcurl", "-plaintext", "-d", f'{{"key": "{path}", "namespace": "vss", "value": "{data.value}"}}', "localhost:50054", "storage_api.Database/Write"])

if __name__ == "__main__":
    main()

This is based on https://github.com/LSchwiedrzik/agl-persistent-storage-api/tree/master
@LSchwiedrzik "just" need to rewirte in Rust.... As seperate component, or maybe an (optional) feature directly in persistent-storage
Databroker needs to run, everything to get started with that should be in https://github.com/eclipse-kuksa/kuksa-databroker/blob/main/doc/quickstart.md
fyi @eriksven @g-scott-murray

vss_release_4.0.json
Example VSS with two persist paths:
Vehicle.Cabin.Infotainment.HMI.DisplayOffDuration
Vehicle.Cabin.Infotainment.Media.Volume

@g-scott-murray you commented elsewhere

I'm not much of a fan of having to manually edit a VSS JSON or work with vss-tools overlays

I can understand, that it feels cumbersome. In the end "who does the work, can decide" :D The advantage is, some people like to consolidate all VSS related info in... well VSS....
Maybe an option would be writing abn acutaly overlay (in YAML), and parsing that. New VSS stools become quite relaxed wrt to "Incomplete" VSS specs as overlay, so a config for the example might look like this
Vehicle.Cabin.Infotainment.HMI.DisplayOffDuration:
    persist: true
    datatype: "uint8"

Vehicle.Cabin.Infotainment.Media.Volume:
    persist: true
    datatype: "uint16"

That might be easily parsed instead of the json in my example (again, actually not even datatype is necessary but I assume it might be needed to type it directly in GRPC).
People who do want a consolidated VSS could do (assuming the file above called test)
vspec export json -s ../vehicle_signal_specification/spec/VehicleSignalSpecification.vspec -o test.json --pretty --overlays ../agl-persistence-prototype/test.vspec

But users of the persistence plugin/provider would never need to do that
(side note: I was thinking "persist: false" might still be usfeul for the plugin, maybe there are datapoints we want to populate upon start but NOT subscribe/update. E.g. is somebody wants to set VIN, Vehicle color or such things...)


added the unedited ajax reponse to the cache object

Added the ajax response to the cache object so developers can use it.
smoothState.cache[<--insert url-->].doc will return this.

@pudgereyem Can you update the docs, too?

@miguel-perez sure! didn't see your message, sorry.


Use bullet points in shader editor creation dialog

This is consistent with the script creation dialog.
Preview
Script editor (current)

Shader editor (this PR)

Thanks!

Cherry-picked for 4.1.1.


Wrong description_hash returned with underscore in username

Apparently underscores in the username cause the wrong description hash to be returned.

Apparently underscores are not the cause, will have to investigate further.


Rust client does not pass supported query param format for arrays

Bug Report
Chatted with @tasn and it looks like the Rust client library is passing in array query params as comma separate (e.g. ?event_types=a,b,c) which Svix doesn't support.
Version
0.85.1
Platform
Linux: 5.19.0-41-generic
Description
Code reproduction:
use svix::api::{MessageListOptions, Svix};

// Create an async main function
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
    let app_uid = "somei-id";

    // Create a new Svix client
    let svix = Svix::new("REDACTED".to_string(), None);

    let event_types = vec![
        "card_transaction.updated".to_string(),
        "dispute.updated".to_string(),
    ];

    println!("event_types: {:?}", event_types);

    let options = MessageListOptions {
        event_types: Some(event_types),
       ..Default::default()
    };

    let result = svix
        .message()
        .list(app_uid.to_string(), Some(options))
        .await?;

    println!("got value from the server; result={:?}", result);

    Ok(())
}

I get the error:
Error: Varidation error Some(HttpValidationError { detail: [ValidationError { loc: ["query", "__all__"], msg: "String must match the following pattern: [a-zA-Z0-9\\-_.].", _type: "value_error" }] })

Just to add more context: the problem is with the OpenAPI generator. We can try just updating the generator maybe it's fixed, or alternatively we need to override the template to do it correctly.
The current implementation is really quite silly, it doesn't even escape ,, it just concatenates the array members with commas in between.


Correct grammar for multipart query

Changes to the grammar that aims at describing query structure more explicit raised some issues like #253, #265
This PR aims at fixing those issues.

@Mats-SX could you give me some hints on why the following query should lead to a grammar parsing error?
https://github.com/opencypher/openCypher/blob/94511b8e15d0cd9a590d18a31d50834e6c7b2bb3/tools/grammar/src/test/resources/cypher-error.txt#L23-L27
Basically it throws the runtime error shown below because we are to return the node that was just deleted.
Error: org.neo4j.graphdb.NotFoundException: Node not found

The following query, which is grammatically the same, succeeds on the example graph available at http://console.neo4j.org/
MATCH (a {name: 'Neo'}), (b {name: 'Trinity'}), (c {name: 'Cypher'})
CREATE ()
WITH *
DETACH DELETE a
RETURN b

@jmarton No, I don't think I can. When I implemented these rules I was under the impression that certain updating clauses (such as DELETE) were not allowed to start a query; that was a misconception. The query you listed should be valid Cypher syntax.


CodeBuild build number link incorrect

The CodeBuild build number link is incorrect. The CodeBuild ID field appears to have the project name in twice e.g. projectName:projectName:ID instead of just projectName:ID.

Not sure where the specific problem is on this one. The URL format looks correct in https://github.com/awslabs/aws-codesuite-plugins-for-backstage/blob/main/plugins/aws-codesuite/src/components/CodeBuildBuildsTable/CodeBuildBuildsTable.tsx#L35, so not sure if it's the backend or something else?

Hi @darrenlewisexperian thanks for reporting this. Working on a fix.

Appreciate the quick turnaround 👍

Appreciate the quick turnaround @niallthomson 👍


Version bump to Squirrel 0.9.4

This PR bumps us to Squirrel 0.9.4, whose primary feature is to allow installs in environments where %LocalAppData% is blocked via Group Policy
TODO:

[x] Verify Atom works

:+1:

Published as 0.31.0


Hookup viz cli click

Fixes #1090
Developers certificate of origin

[X] I certify that this contribution is covered by the MIT license as defined in our LICENSE and adheres to the Developer Certificate of Origin.

@mariacm12 would you be able to review here?


Now don't freeze Unity at play mode state changed

-Change a little the window display
-Fixed about the play mode state changed causing Unity freeze.

Sorry but I'm closing it since your PR contains too many changes for different parts of the plugin.
If you think that some of the changes are still relevant please create separate PR(s) with single aims.


PR: Don't send requests to the PyLS until it's been properly initialized

In previous versions we were sending some requests before the server responded to our initialize request, which is not expected according to the protocol. That was causing problems when reloading the previous active project at startup.
This also fixes the ordering of requests we send to the LSP server at startup.
Fixes #13351.
TODO:

[x] Add some tests to prevent regressions.
[x] Fix scrolling in the internal console.

Hello @ccordoba12! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file spyder/app/mainwindow.py:

Line 107:1: E402 module level import not at top of file

Hey @ccordoba12, I've tested this locally and this doesn't solve https://github.com/spyder-ide/spyder/issues/13897.
When starting Spyder, the outline explorer only populates for the file that is focused. When switching file, the tree for that file is not populated automatically. A change needs to be made to the file to trigger the update.

When starting Spyder, the outline explorer only populates for the file that is focused. When switching file, the tree for that file is not populated automatically. A change needs to be made to the file to trigger the update.

As I told @jnsebgosselin on issue #13928, that bug is caused by another reason. I'm preparing another PR with a fix for it.

Ok, I understand. Sorry for posting that here. I am a little bit confused since what I reported in issue #13928 isn't related to the problem I showed in https://github.com/spyder-ide/spyder/pull/13828#issuecomment-704253703, but I'm happy if this is taken care of.


Show external resources

Task:

https://trello.com/c/Em7hMTRT/4075-studio-external-tools-scorm

Online Documents:

https://www.notion.so/learningtribes/Studio-External-tools-SCORM-cb8ef10f317d4389bca70c2cea1c1319

Related PRs:

https://github.com/Learningtribes/platform/tree/studio-external-tools-SCORM-upgrades-view
https://github.com/Learningtribes/triboo-theme/tree/show-external-resources

Screenshots:

A very small issue

I think that it's fine for keeping same style of red border used in Component External Web Content while mouse hovering on card. 👇

? And do we need to support translation strings in file scormxblock/config.py

[FIGMA]

[Code Diff]

? I'm confused that why we need this change ☝

[Fixed] Width/Height of SCORM XBlock in LMS

[OK] Removed Knowly from list

Fine for me. @tassadit-sadoun


Allow alternative redirectTo from api/auth

If keycloak could redirect the browser back to an alternative path that the request originator, it would allow us to avoid a redirect on the client side, which would result in a smoother user experience.
I was thinking we could issue a request like: api/auth?redirectTo=/home

Yes, we can do this. We can add the redirecTo param as a part of https://github.com/almighty/almighty-core/issues/892

This is done.


i18n(es): Update spinal.mdx, storyblok.mdx & strapi.mdx

Description (required)
Update spinal.mdx, storyblok.mdx & strapi.mdx https://github.com/withastro/docs/commit/0bad0edf9ee997a9be8ff4a4af3e4107a498a3e1

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

es
guides/cms/spinal.mdx
Localization changed, will be marked as complete.

es
guides/cms/storyblok.mdx
Localization changed, will be marked as complete.

es
guides/cms/strapi.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

¡Ya está arreglado!


protein-translation: fact mistake readme

Right now (incorrect):
There are also four terminating codons (also known as 'STOP' codons);
Change to:
There are also three terminating codons (also known as 'STOP' codons);
Facts: (https://en.wikipedia.org/wiki/Stop_codon)

Great, thanks. Do you want to edit the description file and submit a pull request?
https://github.com/exercism/x-common/blob/master/exercises/protein-translation/description.md

@Insti I'll keep adding more like these while finishing the elixir track. When I'm done, I might decide to fix them all at once. Is this the right documentation to follow while submitting a pr: https://github.com/exercism/docs/blob/master/maintaining-a-track/reviewing-a-pull-request.md

Is this the right documentation to follow while submitting a pr

Probably not, but I've not yet been able to find the correct documentation either :(

Maybe: https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#pull-request-guidelines

Hmm github didn't auto close this after all 😕

Use the presence or absence of the exclamation mark to determine ahead of time whether it would be auto closed

???? I can't find the exclamation mark anymore. My suggestion is invalid...?!?!!?!?

Sigh, fine. Use the presence or absence of the tooltip to determine ahead of time whether it would be auto closed


Fixes possible hang after requesting permission

Hi, it seems that there may be a hang after requesting permission.
According to the document, the completionHandler is called on "an arbitrary dispatch queue". If it is called on the main dispatch queue, the closure will not be executed until the completionHandler is executed.
Changing the call from sync to async fixes the problem. Many other camera libraries use async here as well.

Thanks @timothyqiu 👍


Add support for suggestions and customer links

This PR implements the specification from #3 .Still work in progress.
Deployment/Migration Checklist:

[x] CCTV now requires permisssion (camera:(read|watch))
[x] Customers can now be deleted. Restrict using customer:delete permission
[ ] Suggestion-API requires permissions (suggestion:(read|apply))
[x] VoiceMail-API now requires permissions (voicemail:read ?)
[ ] Test calendar / event integration with google
[ ] Schema migration can now create db dumps
[ ] Source-names must not be changed from now on (no migration path yet)

Pending before merge:

[ ] Make sure the customer source in CardDAV config and the registered one work

Pre-merging this because other work needs to be based on some changes from this PR


Relay displaybooks

Adding Relay to the application
Facing issues with creating a fragment container on BookList.

I should've fixed that. Haven't actually run the app, but Relay compiler isn't complaining anymore. The Relay compiler is generating Flow types; we'll need to make it generate TS instead


Installing Ghost in subdirectory returns "Cannot get /blog"

Issue Summary
I'd like to run a Ghost blog along with a Laravel application. Ghost is installed in a subdirectory called "blog". When I access the main url I successfully see my Laravel application, eg. https://dev.stella-projects.de but when I enter /blog I get Cannot GET /blog.
In my Ghost config.production.json I set https://dev.stella-projects.de/blog as url.
This is my Nginx config which, according to multiple sources, should work.
location ^~ /blog {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://<IP_ADDRESS>:2368;
    proxy_redirect off;
}

Once everything works, there won't be a subdomain anymore as it should run with the base url (without the dev.). But I don't think this is causing the issue.
Technical details:

Ghost Version: 3.25.0

Running this on my own server with RunCloud.

I was able to "solve" this by not installing Ghost on a subdomain with subdirectory. Still, would be nice to know how to fix that error, or maybe the cause of it.


No way to access the MethodInfo of function in Middleware

When writing Middleware one of the most fundamental thing that almost every middleware will  want to do is check the function for its attributes so that the logic can be conditionally applied (e.g an Authorization attribute to mark a function as requiring Authorization).
After digging through the FunctionContext there seem to be no reference to the MethodInfo of the function being called leaving to having to search online for an answer. I thought that surely there was a way to get it without having to reflect into the assembly for the Type and Method but when I came across juunas11/IsolatedFunctionsAuthentication's Implementation and  It seemed quite as if it was the only way to access the MethodInfo.
This feels very unstable and hopefully is not intended to stay as is. Are there any plans to supply the MethodInfo and or Type of the containing class so Middleware's will be able to access any Attributes to execute logic conditionally or with additional information?
Really hoping to see this fixed as it make the Middlewares feel like they are only meant for demonstration purposes.

I guess @kshyju 🦄 was already working on this topic, but it seems to be stale now (branch). I also would like to implement the authorization as part of the middleware, and that's why I followed his progress on that branch. An "official" solution would be great 😊.
There are already many requests for this feature. 😉

any progress here? auth, logging, a lot of things would benefit from this (attribs + middleware), sad to see az func apps always lagging behind
3 year old .net sample doing want we want here https://michaelscodingspot.com/attributes-and-middleware-in-asp-net-core/

With FunctionContext you can get attributes as follow. This is in .Net 8 Isolated Functions.
context.GetTargetFunctionMethod().GetCustomAttributes(typeof(AuthorizeAttribute), false).Any()

With FunctionContext you can get attributes as follow. This is in .Net 8 Isolated Functions.
context.GetTargetFunctionMethod().GetCustomAttributes(typeof(AuthorizeAttribute), false).Any()

I cannot find this, can you give a reference? Thank you.

With FunctionContext you can get attributes as follow. This is in .Net 8 Isolated Functions.
context.GetTargetFunctionMethod().GetCustomAttributes(typeof(AuthorizeAttribute), false).Any()

Its not in .net 8, wish it was its from
https://github.com/juunas11/IsolatedFunctionsAuthentication/blob/main/IsolatedFunctionAuth/Middleware/FunctionContextExtensions.cs#L33

so on? Doens't exists / No way to get this?

this is something we intend to expose in the future.

are we there yet?


Port freesurfer recon all

Fixes Australian-Imaging-Service/pipelines#143

Conversion worked but doctest fails with error
Exception: fields with output_file_template has to be a string or Union[str, bool]
which relates to
    (         "subjects_dir",         ty.Any,         {             "help_string": "path to subjects directory",             "argstr": "-sd {subjects_dir}",             "output_file_template": "{subjects_dir}_ReconAll",         },     )
from the input_fields


Fix broken OCP release image API URL

The previous URL for looking up OCP images was deprecated and is now
defunct, causing image lookup failures. This commit fixes the URL to
point at the new location for OCP amd64 release metadata and should
fix image lookups.

/lgtm


Fancy Area

Add in README: https://craft.mxkaske.dev/post/fancy-area

Thanks for the suggestion, I've already added it to the list.
Thank


get_available_FIELD_transitions() is not working for '+' statuses

For transitions marked with source='+', the get_available_FIELD_transitions() method is not working correctly.  It's treating it as a '*'; that is, including the field transition to the current state.
I have fixed this locally.  The issue was that get_available_FIELD_transitions wasn't using the correct FSMMeta api.  I'll submit a pull request shortly.

Thank you! Could you please add a test case?

There you go.


Tenant is not loaded in user entity

ModuleZeroSampleApp with default seed gives this:

Take look at tenant for user emre - it should be loaded, as there is TenantId.
Did this test as tenants are not loaded for any user on my page.

What's even more strange is that Tenant is loaded into User just perfectly in the Seed method of Configuration (I checked that using debugger attach).

I updated the solution, so I'm closing this now.


smoothing.rst PyPlot to Plots

Looks great. One small issue is that we don't want to show labels y3 and y4 corresponding to the horizontal axis. Easy fix (which I implemented here) is just to give those lines a null label label="".


High-risk: update fastjson to 1.2.28.

 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.

目前已经更新到新版本〜thx~


proposal: net: implement fmt.Formatter on net.IP to expand IPv6 addresses

net.IP types implement a fmt.Stringer interface which will output the human representation for IPv4 or IPv6 addresses.  In particular the IPv6 address follows RFC5952 which will compress/shorten IPv6 addresses as much as possible.
However this isn't always the desired output for an IPv6 address.  Sometimes you want a fully expanded IPv6 address for comparability with other systems/languages.
This proposal is to add fmt.Formatter implementation to the IPv6 address so that when the IP address is formatted with the v verb with a + flag that the expanded IPv6 address is outputted instead of the compressed version.
Examples:
ip := net.ParseIP("2001:db8::1")
fmt.Printf("%s", ip)  // prints "2001:db8::1"
fmt.Printf("%v", ip)  // prints "2001:db8::1" (same as %s)
fmt.Printf("%+v", ip)  // prints "2001:0db8:0000:0000:0000:0000:0000:0001"

For IPv4 %s, %v, %+v will all be the same.

[...] RFC5952 which will compress/shorten IPv6 addresses as much as possible.

Well, the heart of RFC 5952 is "canonicalization" or *avoiding ambiguities on the visual perception of IP literals" for "human beings"; at that point frustrated (mostly network ops) people made a uniform of literal IP address to drop a bit troublesome flexibilities from RFC 4291 and they were happy to make their own scripts for their business systems. Therefore ParseIP accepts any form described in RFC 4291 and RFC 5952 and IP.String returns only the form in RFC 5952.

Sometimes you want a fully expanded IPv6 address for comparability with other systems/languages.

I'm still not sure whether picking up one form in RFC 4291 really makes people happy. For example, what happens when the systems/languages require "every single alpha-hex digit in the IP literal must be upper-case" and vice versa?

Although I agree with RFC5952 the particular system I am working with using using the fully expanded form of the IP address instead of the compressed version.
This is why I am suggesting using the Formatter interface to control the output.
For lower case and uppercase a simple call to strings.ToUpper() would work just fine.  Expanding an IP address requires parsing it first.

For lower case and uppercase a simple call to strings.ToUpper() would work just fine. Expanding an IP address requires parsing it first.

I disagree. If we really need a new knob to control the output form of literal IP address, it should be a custom formatter, never squats in the existing verbs in the package fmt, and never requires additional use of the package strings. Otherwise, I don't see any good reason to introduce a new API instead of using fmt and strings packages.

@mikioh  I am not sure what you are disagreeing with.  What you are describing seems to be exactly what I am proposing in this proposal.

never squats in the existing verbs in the package fmt

What is a squats or a never squats?

and never requires additional use of the package strings

My only point is that uppercasing and lowercasing an IPv6 address today is simple since it's just string manipulation.  Fully expanding an IPv6 address is not available in using the stdlib and is what this proposal is trying to address.  If you can find a nice way of using the existing verbs to do upper or lowercase as an addition to this proposal I am sure it would be welcomed, but there is nothing clear to me.

I don't see any good reason to introduce a new API instead of using fmt and strings packages.

No new API has been proposed here unless you meaning something else?

@nemith,

What you are describing seems to be exactly what I am proposing.

Well, nope, I'm still doing the assessment of API, though I don't disagree with using a custom formmatter might make sense.

What is a squats or a never squats?

If we really need to control the output form of IP literal, we should have new verbs for it for distinction.

No new API has been proposed here unless you meaning something else?

In other words, what's wrong with the following:
return strings.ToUpper(fmt.Sprintf("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x",
                ip[0], ip[1], ip[2], ip[3], ip[4], ip[5], ip[6], ip[7], ip[8], ip[9], ip[10], ip[11], ip[12], ip[13], ip[14], ip[15]))

If we introdce and keep maintaining a new API, there needs to be a rationale behind the API. I still see your proposal is just for some specific application by using one of the multiple forms in RFC 4291.

In other words, what's wrong with the following.
I am doing something like this today however there is more to it.  You need to check the IP version and deal with IPv4 vs IPv6 differently.

. I still see your proposal is just for some specific application by using one of the multiple forms in RFC 4291.
Although there are a lot of valid representations of a IPv6 address nothing really makes sense besides fully expanded and fully compressed.  You can argue that you don't want to support an expanded IP address, but painting it as just one of "multiple forms" is a bit dismissive when RFC4291 is defining the rules for how IP address are parsed and not really a description of valid output forms or their actual use in network code.

To state it in another way.  No one in thier right mind would store an IPv6 address as a string in anything but it's compressed form or fully expanded form.
To look at other implementations:
Python 3 has the ipaddress module which parses IP addresses.  There are two properties exposed for both IPv4Addrss and IPv6Address: compressed and exploded.  For IPv4 they do the same thing and compressed is similar to the behavior of net.IP.String() and exploded is the version I am proposing.
Ruby has the ipaddress module with both compress and expand methods on the IPv6 object. https://www.rubydoc.info/gems/ipaddress/0.8.0/IPAddress/IPv6#compress-class_method
C++ Folly has a method called toFullyQualified() https://github.com/facebook/folly/blob/master/folly/IPAddress.h#L414
All these implementations define similar verbs for IPv6 and IPv4 for both compressed and expanded versions.  None of them define any other format than compressed or expanded.

All these implementations define similar verbs for IPv6 and IPv4 [...] None of them define any other format than compressed or expanded.

Thanks for the investigation. However, I'm not sure "other languages only do this" is enough for a rationale behind the API.

I am doing something like this today however there is more to it. You need to check the IP version and deal with IPv4 vs IPv6 differently. It is somewhat trivial to implement so there is a point there.

I don't agree with the part "somewhat trivial to implement." The IP address identification is actually not handy. It has several pitfalls and really not good for people who just need an opaque (also well-cooked) network-layer identifier for their business. The complexity of IP address identification could be a rationale for introducing a new API using a custom formatter.
My suggestion as follows:
/*
The verbs for printing IP address literal:

        %ip     a default representation format,
                with lower-case letters
        %ip4    an IPv4 dotted-decimal format
        %ip6    an IPv6 colon-separated hexadecimal format
        %ip4e   an IPv4-embedded IPv6 address representation format,
                with the 96 bits prefix when no decimal suffix follows;
                the suffix indicates the variable length of the prefix
                in bits, and 32, 40, 48, 56, 64 and 96 are operational,
                for example, %ip4e32, %ip4e64

        %IP, %IP4, %IP6, %IP4e
                a default representation format, with upper-case letters

        +       the plus flag (%+ip) makes each hexadecimal digit of
                IPv6 address to be a complete four letters

Examples:

With the IPv4 address <IP_ADDRESS>
        Printf("%ip", v):       <IP_ADDRESS>
        Printf("%ip4", v):      <IP_ADDRESS>
        Printf("%ip6", v):      !ip6(BADADDR)
        Printf("%ip4e",v):      !ip4e(BADADDR)
        Printf("%+ip", v):      <IP_ADDRESS>
        Printf("%+IP4", v):     <IP_ADDRESS>
        Printf("%+IP6", v):     !+IP6(BADADDR)

With the IPv6 address 2001:db8::1
        Printf("%ip", v):       2001:db8::1
        Printf("%ip4", v):      !ip4(BADADDR)
        Printf("%ip6", v):      2001:db8::1
        Printf("%ip4e",v):      <IP_ADDRESS>
        Printf("%+ip", v):      2001:0db8:0000:0000:0000:0000:0000:0001
        Printf("%+IP4", v):     !+IP4(BADADDR)
        Printf("%+IP6", v):     2001:0DB8:0000:0000:0000:0000:0000:0001

With the IPv4-mapped IPv6 address ::ffff:<IP_ADDRESS>
        Printf("%ip", v):       <IP_ADDRESS>
        Printf("%ip4", v):      <IP_ADDRESS>
        Printf("%ip6", v):      ::ffff:<IP_ADDRESS>
        Printf("%ip4e",v):      !ip4e(BADADDR)
        Printf("%+ip", v):      <IP_ADDRESS>
        Printf("%+ip4", v):     <IP_ADDRESS>
        Printf("%+IP6", v):     0000:0000:0000:0000:0000:ffff:C000:0201

With the IPv4-embedded IPv6 address 2001:db8:122:344::<IP_ADDRESS>
        Printf("%ip", v):       2001:db8:122:344::c00:221
        Printf("%ip4", v):      !+ip4(badaddr)
        Printf("%ip6", v):      2001:db8:122:344::c00:221
        Printf("%ip4e",v):      <IP_ADDRESS>
        Printf("%+ip", v):      2001:0db8:0122:0344:0000:0000:0c00:0221
        Printf("%+ip4", v):     !+IP4(BADADDR)
        Printf("%+IP6", v):     2001:0DB8:0122:0344:0000:0000:0C00:0221

See RFC 4291, RFC 5952 and RFC 6052 for further information
*/

Not necessary to implement all verbs at the same time but the IP-literal verbs should work well together with the existing verbs in the package fmt because the type IP is "a slice of bytes"; interfering in user code that scrapes the underlying type is not a good idea.

Thanks for the investigation. However, I'm not sure "other languages only do this" is enough for a rationale behind the API.

It wasn't meant to be but just contrast with what is found out there in other languages/packages.
I like your suggestions for the %ip* verb.  I am on the fence on if this should be in the stdlib or provided by an external package which is probably the key part of the discussion.

net can't import fmt, sorry - we want to keep net as a much lower level in the dependency graph - so nothing in net can implement fmt.Formatter (which requires reference to fmt.State).
Also formatter can't do '%ip', because fmt stops parsing a %anything at the first letter (so %anything is %a followed by literal nything). Even %ip vs %ip4 is ambiguous - is %ip4 just %ip followed by "4"?

net can't import fmt, sorry

Yup, even though the package context imports "fmt" and the package net depends on the package context.

Also formatter can't do '%ip', because fmt stops parsing

Yup, the type of the format verb in the package fmt is int and we cannot change it; so my suggestion above is also a message for someone who wants to implement own printer implementation for net.IP (like golang.org/x/text/message) in an external package.


Async call in intent event handler?

I am trying to query an external server in my intent handler using alexa-app.  I am using a Bluebird promise inside my intent handler to make an asynchronous call to my external dialog server:
alexa_app_lib.intent("search_query", {
		// Set up a slot for the received input.
		"slots": {
			"user_input": "AMAZON.SearchQuery"
		},
		// Suggest sample input the user might say to Alexa.
		"utterances": [
			"the {user_input}"
		]
	},
	function(request, response) {
		if (g_NoDialogServer)
		{
			// Just return a simple response without querying the dialog server (for testing/debugging)  THIS WORKS FINE.
			response.say("Tell me request received.");
			response.shouldEndSession(false);
		}
		else
		{
                            // THIS RETURNS NOTHING TO ALEXA SKILL SIMULATOR.
			let userId = extractUserIdFromAlexaPostRequest(request);

			// Query our ChatScript dialog server.
			chatscript_support.queryTheChatServer_promise(userId, "user input", null, null, null)
				.then(function(chatScriptResponseObj)
				{
					// Respond to the user with the response given to use by the dialog server.
					response.say(chatScriptResponseObj.text_to_say);

					// Follow the dialog server's suggestion to end the session or not, if
					//  that value is present.
					let bEndSession = common_routines.isExplicitlyTrue(chatScriptResponseObj.is_session_ended);
					response.shouldEndSession(bEndSession);
					return;
				})
				.catch(function(err)
					commonInTellMeEventErrorHandler(response, "An unexpected error was caught and handled.", null);
					return;
				});
		}
	}
);

Unfortunately no response is generated.  My alexa-app postRequest never triggers like it usually does, and the Alexa Skill simulator hangs waiting for a response.  This doesn't happen when I don't make the async call and immediately make a call to response.say() with some arbitrary text.  That works fine and I see the result in the Alexa Skill simulator.
I'm guessing that the problem is with having the intent handler return without calling response.say() before the intent handler exits?  In other words, although my Promise that calls the external server does fire properly and calls response.say() later in the Promise "then" block, it's too late because the intent handler code has already returned?  Note, I'm sure that the Promise works properly because I have traced out the code and seen the response.say() call being made properly in the Promise "then" block.
If so, how do I call an external server to process the user input from within an alexa-app intent handler?  I'm really hoping I don't have to try and do something like figuring out how to make a blocking call from a Node.JS code block.

Sorry.  I think this tells me what to do in that I need to return a promise myself rather than executing directly:
https://www.npmjs.com/package/alexa-app#asynchronous-handlers-example
I'll try that now.


Unable to access rails-assets.org (site)

Hey guys,
I tried to access rails-assets.org today, and it's a bit weird (assets doesn't load)
some idea?

My bad. Should be fixed now.


Inconsistency on tabnet between paper and code

Hi
For me there are two items on https://github.com/google-research/google-research/blob/master/tabnet/tabnet_model.py  that are different from what was reported in the paper https://arxiv.org/pdf/1908.07442.pdf
On interpretability section the author @soarik  says that:

But the given code in github is dividing this sum by the number of steps:
(line 177)
# Aggregated masks are used for visualization of the
 # feature importance attributes.
         scale_agg = tf.reduce_sum(               decision_out, axis=1, keep_dims=True) / (                   self.num_decision_steps - 1)
Also, for the aggregate feature importance mask, it looks like the normalization is missing. The paper states:

But the give code is:
(line 182)
aggregated_mask_values += mask_values * scale_agg
Inside a for looping over each step, which will give only the top part of the equation.
Am I missing something or the paper and code are really different?

Hi
For me there are two items on https://github.com/google-research/google-research/blob/master/tabnet/tabnet_model.py that are different from what was reported in the paper https://arxiv.org/pdf/1908.07442.pdf
On interpretability section the author @soarik says that: ![](https://render.githubusercontent.com/render/math?math=\sum_{c=1}^{N_d} ReLU(d_{b,c}[i])) But the given code in github is dividing this sum by the number of steps: (line 177) # Aggregated masks are used for visualization of the  # feature importance attributes.  scale_agg = tf.reduce_sum( decision_out, axis=1, keep_dims=True) / ( self.num_decision_steps - 1) Also, for the aggregate feature importance mask, it looks like the normalization is missing. The paper states: ![](https://render.githubusercontent.com/render/math?math=\frac{ \sum_{i=1}^{N_{steps}} \eta_b[i]M_{b,j}[i]} {\sum_{j=1}^{D}\sum_{i=1}^{N_{steps}} \eta_b[i]M_{b,j}[i]}) But the give code is: (line 182) aggregated_mask_values += mask_values * scale_agg Inside a for looping over each step, which will give only the top part of the equation.
Am I missing something or the paper and code are really different?

Hello,as the README.md said,I use python -m test_experiment_covertype.py for simple test,but its result is obviously wrong,The traing loss and val accuracy are irregular,just because it's  in the low-resource environment?How can I fix this problem?


Use ACE editor for JavaScript if app includes it

Use ACE editor anywhere user can edit JavaScript.
To enable app just needs to include script tags for ACE build (see related pull request in formio-app-formio).
If app doesn't include ACE build then fall back on textarea for editing.
Autocomplete includes API names of form's components (press Ctrl + Space).
Requires related pull request in ngFormio.
See also related pull requests in formio and formio-app-formio.

How is this supposed to work? I am trying to run this for our latest app build and it isn't turning these text areas into the ACE editors.

Hi Travis.
The application needs to include the ACE build.  Textarea is fallback.  See related pull request at formio-app-formio.

Ah... yeah, got it working. We are going to pull this into our next portal release. Thanks again!

Happy to help Travis!


Release new version

Now that the addon has been updated to current Ember patterns, release v2.0 of the addon.

Investigate: while setting up release-it today, I found that npx release-it causes an error: cb.apply is not a function. Figure out what is causing this error & fix it.

Resolved.


Igate Mobile use

Low priority but would be a great asset,
The igate has only a static loction entry possible.
It would be great to also have an option, so that the Igate could be used mobile, and the location would come from the
onboard GPS of the board.
If you see this as a possible change, I would love to hear about it ;)
Thanks
ON2ON

I vote for this as well

this is already possible with version https://github.com/lora-aprs/LoRa_APRS_iGate/releases/tag/v22.12.0


Impossible to implement this SDK in any app

The problem is that you are touching "appearance()" of entire UI of the app. This causes a lot of issue, some labels become invisible, navigation bar in dark mode becomes white and many other issue.
NEVER touch UI appearance! NEVER!

Same here, just adding the SumupSDK changes the navigation bar colors to white, so they become white even in dark mode.

Same problem here, in all sheets the navigation bar is white now:

Same Problem here. Are there any suggestions?

We've just released version 4.3.3, which contains a fix for this UIAppearance problem.  Please let me know if this does not fix the issue for you.

@jadeburton-sumup v4.3.3 does not fix the issue for me, after calling into Sumup (just logging in to show the list of payment methods and cancelling), the title bars become white in Dark Mode for the whole app.

Alright @ralfebert thanks for checking this.  We will need more time to find the cause of this; the UIAppearance code we removed apparently wasn't it.

Has this been fixed? I'm trying now to integrate into my taximeter app and don't see any UIAppearance effects from SumUp on my app.

Hi @staninprague, the last thing that changed in this area was in 4.3.3, and @ralfebert reported that it was not fixed in that version.  I don't have a timeframe for a fix at this stage.


Single command to switch to and instantly play a playlist

General Troubleshooting
Please check off these steps before suggesting a feature or reporting a bug:

[*] I am running the latest version:
[*] I have followed all instructions on the setup page (and if applicable, Raspberry Pi)
[*] I have read through the planned and suggested features

Issue
Issue Type

[ ] Bug Report
[*] Feature Request

Description
A single command that condenses clearing the queue, adding a playlist, and skipping to the next song (Start of the new queue).
Currently, to do this you have to send three separate commands, or two if you end up waiting for the current playing song to finish playing. It gets a bit tedious when trying to do this.
An example of how I would be using that is with a "tabletop" RPG group I'm a part of with on Discord. Having playlists for moods and areas the characters are in. (Such as Woodlands, Battle, Desert, Evil Presence, Epic Battle, etc.)
Currently, we are able to use it as such, but with the requirement of multiple commands to pull it off, it gets tedious and ran into some problems when accidentally doing them out of order. That and it spams a channel each time with not just the commands, but the bot reporting back those actions.

I'm just thinking about how this specific feature seems a bit niche, but something that might make more sense:
play <song> (existing command)
play playlist <name> (existing command)
playnext <song> (adds to the front of the queue)
playnext playlist <name> (adds entire playlist to the front of the queue)
playnow <song> (adds to the front of the queue and skips)
playnow playlist <name> (adds entire playlist to the front of the queue and skips)
I know this doesn't cover the clearing item; I'll need to think more about that.

Maybe something like clearplay <song> and clearplay playlist <name> to clear the queue and start the new entry?
As for the niche aspect of it, other uses I can think of would be for moderation. Such as if several users added a bunch of troll songs, having the ability to clear and instantly start a new list would help in that regard. Still a little niche, I suppose.


Updating the test filename and description to match the command under test

It's the little things :)

@mattberther merged, thanks a lot! :+1:

Thanks @BridgeAR.
Im not sure the entire pull request was merged though. The file rename commit didnt appear to come through -- in NodeRedis:master, its still called exits.js.

You're absolutly right. It was just way to late in the night. Fixed on master. Thanks for pointing that out :)

Thanks @BridgeAR. Github still shows that there are unmerged commits -- i just wanted to make sure that it was fine to delete the mattberther:exists_test_update branch, or was there more that needed to be done?

I cherry-picked your commits instead of merging them. At times I also use git am instead of merging. So it's safe to delete the branch.


LVM-mode: mounting ext4 file system with added -o dax fails on Clear testing VM

make test_e2e fails in recent test clusters, if devicemode=lvm,
Same test works if devicemode=direct.
These have been verified to fail:
k8s=1.13.5 (Clear few steps older than 28640, I did not record)
Clear=28640 k8s=1.14, kernel 5.0.6
There are mount errors:
Executing: mount -c -o dax /dev/ndbus0region0fsdax/107eea56-56cc-11e9-93d6-36feaaf12372 /var/tmp/tmp.bvQWXy7mlR/staging
mount: /var/tmp/tmp.bvQWXy7mlR/staging: wrong fs type, bad option, bad superblock on /dev/ndbus0region0fsdax/107eea56-56cc-11e9-93d6-36feaaf12372, missing codepage or helper program, or other error.

The error is reproducible on plain VM CLI as well. It turns out that failure happens when -o dax is added, and file system type is ext4 (That's the one used by e2e test).
I can mount xfs-formatted file system with dax option without error (but it has to be bigger than 1M or 4M which is used by e2e testing, for mkfs.xfs even considering making file system).
This used to work short time ago so seems to be caused by a recent change.
@pohly verified e2e test works on his cluster which is Clear=28070

Another finding: In a new cluster created with 'make start', example deployment succeeds.
The code has #222 and #224 changes applied on top of current devel branch. That means one ext4 and one xfs volume get provisioned OK in LVM mode, with dax option added.
Then I run 'make test_e2e' in same cluster, and in that test mount of ext4 volumes fails as described in this issue. There is something different in e2e mounts than example deployment mount. Smaller volume size ?

It is pretty small: https://github.com/intel/pmem-CSI/blob/410910868c78ccf0e311ff1f7c9111fed77f78fc/test/e2e/storage/csi_volumes.go#L110

Confirmed that mount works for larger volume (4GB) and fails for smaller (1MB).
On a VM tester host (Clear 28780, kernel 5.0.7), without pmem-csi driver involved, just CLI:
4GB size used by example deployment, mount works:
root@host-2 ~ # lvcreate -L4g -n v1 ndbus0region0fsdax
  Logical volume "v1" created.
root@host-2 ~ # mkfs.ext4 /dev/ndbus0region0fsdax/v1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 1048576 4k blocks and 262144 inodes
Filesystem UUID: 7077eff5-89b7-47c5-b4f0-7853c59fda8d
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

root@host-2 ~ # mount -o dax /dev/ndbus0region0fsdax/v1 /mnt

1MB size used by e2e, mount fails:
root@host-2 ~ # lvcreate -L1m -n v2 ndbus0region0fsdax
  Rounding up size to full physical extent 4.00 MiB
  Logical volume "v2" created.
root@host-2 ~ # mkfs.ext4 /dev/ndbus0region0fsdax/v2
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 4096 1k blocks and 1024 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done

root@host-2 ~ # mount -o dax /dev/ndbus0region0fsdax/v2 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mapper/ndbus0region0fsdax-v2, missing codepage or helper program, or other error.

ext4 file system block size is key to mount failure.
Creating filesystem with 1048576 4k blocks and 262144 inodes
Creating filesystem with 4096 1k blocks and 1024 inodes
If omitted in calling options, mkfs.ext4 selects block size heuristically determined by the filesystem size.
It is selected 4k for larger system and switches to 1k somewhere between 512M and 256M.
When forced to 4k in smaller system, mount will succeed.
When forced to 1k in larger system, mount will fail.
There is way to make it heuristic but guarantee at last min.value of 4k: using mkfs.ext4 -b -4096
i.e. prepending dash to size. This could help our driver LVM mode in small systems

If we look at explained examples at
https://pmem.io/2018/05/15/using_persistent_memory_devices_with_the_linux_device_mapper.html
there all ext4 formatting examples just use hard-coded, forced block size: -b 4096 so that no heuristics is allowed. Should we do same, is 4096 enough static value that we can hard-code it?
Or, another way is to look up block size from lower layers, for example with lsblk, and use same value. That would avoid hard-coding numeric value.


Fix AddAllActuators() with authorization callback

Description
Bugfix: when using AddAllActuators on a host builder with a callback to require authorization, the callback is ignored.
Quality checklist

[x] Your code complies with our Coding Style.
[x] You've updated unit and/or integration tests for your change, where applicable.
[ ] You've updated documentation for your change, where applicable.
If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
[ ] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
[ ] You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

/azp run Steeltoe.All


GHA: add initial workflow for building on Windows

Introduce a Windows build using GHA. This builds with both SPM and CMake.

Bug/issue #, if applicable:
Summary
Provide a description of what your PR addresses, explaining the expected user experience.
Also, provide an overview of your implementation.
Dependencies
Describe any dependencies this PR might have, such as an associated branch in another repository.
Testing
Describe how a reviewer can test the functionality of your PR. Provide test content to test with if
applicable.
Steps:

Provide setup instructions.
Explain in detail how the functionality can be tested.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] Added tests
[ ] Ran the ./bin/test script and it succeeded
[ ] Updated documentation if necessary

@swift-ci please test


Note 5 Support

Please add support for Note 5 devices.
The sample projects work on s6 but not note 5. Note 5 is a great device. Please add support for Note 5.

Could you please elaborate further? What samples did you try? What happens when you run them?
I have been running various samples on my Note5 without a problem.

@liaxim   I run the gvr-vuforia sample project from the gearvrf/GearVRf-Demos repo. On S6, it works great. On Note 5, the screen is all black (no crash).
The sample project has two device XML files. One is for S6 and the other one is for note4. I tried both but the result is same. So I thought it might need a device XML for note 5.

Vuforia is a bit special. I will check it out. I expect the rest of the samples to work though.

as for the xml files, naming them after devices is outdated.  we've since setup the xml so that they are device independent.  we'll need to do a pass through all the samples to update them to just have a single xml file not named after a device.

@liaxim
the gvr-video and gvropacityanigallery demo are also not working on note 5. Only one window is rendered in the middle of the screen. Please check my screenshots here.
http://postimg.org/image/9gp28qkmd/
http://postimg.org/image/el5qgl2zb/

@liaxim
Do you remember which sample work on Note 5? I have tried a few but they all don't work, including the simple-sample one.
Thank you!

are you building against a pre-built gvrf? or building from source?  it should work from source.

@thomasflynn  I'm using the pre-build from the samples. Will build from source today and report back. Thanks!

alright, thanks.  we should do another release then.  i'll talk to the team about it.

Building from source works. Thank you for the help.
BTW, is the new S7 supported as well?

In source, yes.  We’ll be spinning new binaries sometime this week.
From: Will Li<EMAIL_ADDRESS>Sent: Wednesday, March 09, 2016 11:07 AM
To: Samsung/GearVRf
Cc: Thomas Flynn
Subject: Re: [GearVRf] Note 5 Support (#438)
Building from source works. Thank you for the help.
BTW, is the new S7 supported as well?
—
Reply to this email directly or view it on GitHubhttps://github.com/Samsung/GearVRf/issues/438#issuecomment-194455812.

A new release is available at
https://github.com/Samsung/GearVRf/releases/tag/2.4

@tjlian616 We have a new binary release. Can we close this issue?


Implement Node.js Event Listener for Sequential Tasks

GitHub Issue: Implement Node.js Event Listener for Sequential Tasks
Objective: Develop a Node.js event listener to handle tasks that occur sequentially after a modification API call in our application.
Description:
Tasks:

Create Event Listener:

Develop a Node.js event listener that listens for events triggered after a modification API call.
The event listener should be capable of handling sequential tasks that need to be executed in response to the API call.

Event Handling Logic:

Implement the necessary logic within the event listener to process tasks sequentially.
Ensure that tasks are executed in the correct order and that they depend on the successful completion of the previous task.

Integration with Modification API:

Integrate the event listener with the modification API to trigger events and initiate sequential task processing.

Error Handling:

Implement error handling and retries for failed tasks to ensure robustness in handling sequential tasks.

Acceptance Criteria:

A Node.js event listener is created to handle sequential tasks triggered after a modification API call.
The event listener effectively processes tasks sequentially in the correct order.
Tasks are dependent on the successful completion of previous tasks.
The event listener is integrated with the modification API to trigger events.
Proper error handling and retries are in place for failed tasks.

assign me this issue

assign me this issue

Please read the acceptance criteria carefully before posting the PR. Happy to have you on board.

what should be the path of this eent listner file or where should i implement the logic for the event listner

What should be the path of this event listener file or where should I implement the logic for the event listener

Please check the events folder ( index.ts ). It would help if you implemented your logic there.

thanks for it i will start right now !


[Hackathon] Remove standard C++ library dependency

This PR removes dependencies on the standard C++ library by:

Removing all uses of std::string, std::map, std::pair, std::vector
Using containers provided by the client in the m2m namespace and extending them where required (string)
Creating missing m2m containers: Pair and UnorderedMap

This PR saves 15.43kB of ROM with GCC_ARM in the release profile when using the simple MCC example. I also expect that it will eliminate significant heap allocations.

@donatieng  closing this as no PRs are accepted to the public repository.
https://github.com/ARMmbed/mbed-cloud-client-internal would be the correct place.

Similar changes have been made and are part of the Client from version 2.2.1 onwards (at least, if not earlier).


Add Terraform plan and prompt for confirmation

Run Terraform plan, and output the plan to stdout, then use the plan in in the subsequent apply step. Prompt the user in between to accept the plan, and provide a variable terraform_autoapprove to always apply the plan. terraform_autoapprove is true by default to maintain existing behaviour.

WIP while testing, based on code in https://github.com/stackhpc/ansible-slurm-appliance from @sjpb.

WIP while testing, based on code in https://github.com/stackhpc/ansible-slurm-appliance from @sjpb.

Should ensure requirements in https://stackhpc.atlassian.net/browse/GT-485 are captured by this PR (or, discussed at least!)


PDPTW with multiple copies of same depot

I'm playing around with some single-depot PDPTW instances and I compared the results I get with a corresponding multi-depot formulation with multiple copies of the same original depot location.
In other words, each vehicle corresponds to a "different" depot location (as explained here under "setting start and end locations for routes", where all these locations are actually copies of the original depot location.
While I usually get the same solution for single and multiple-depot (as I would expect), there are instances in which the solution of the multi-depot version is slightly worse.
Now, I'm aware that the solver does not necessarily return the optimal solution (BTW: is there a way to check whether the solution is optimal or not?), hence it might be that in the multi-depot case I get a sub-optimal solution, i.e., this issue might be not bug-related.
On the other hand, is there a way (e.g., with some solver parameter) to "force" the solver to compute the optimal solution, so as to better compare the solution in both cases?

CP solvers prove optimality by exhausting the search space. If you set a solution or time-limit, the solution isn't going to be proven optimal. Conversely, you prove optimality by not setting a search-limit and letting the solver exhaust the search space.
In all likelihood, by introducing multiple copies of the depot you decrease performance of that model and you're getting different results because one model is able to perform better within a given search limit.
I haven't used this solver myself but I imagine you simply omit any search limit parameters to prove optimality.
I haven't used the benchmarks you mention either, but it looks like they use 100+ tasks. I wouldn't be surprised if you wouldn't be able to prove optimality in a reasonable timeframe for instances that large.
If you want to verify that the two models are equivalent, I would suggest trimming the instance data down to were you can solve for optimal solutions and verify that the two models get the same optimal solution.
Alternatively, take the solution of either model and plug it into the other to verify that it's still a valid solution under a different viewpoint.


Adding example project that using hostpath as storage

Can you add a readme on how to use this? It's not clear to me how to disable etcd checks that happen as part of apiserver-boot vendored libraries.


Unable to unfreeze entry is fixed under which fixes in 3.23.2 version ?

Unable to unfreeze entry this error is fixed under which fixes in 3.23.2 version ?

@mrniko Please can you check and reply on this ?

yes


Added isJavaScriptEnabled option

Seems Travis is failing because the file tests/main.test.js isn't properly formatted with Prettier. Can you look into that?

The tests are failing because of an integration test that is not your fault. I'll try to fix it and then perhaps you can rebase or merge in master.

Ok. Waiting for this to land. https://github.com/peterbe/minimalcss/pull/321

Can you please rebase this PR now?

Sorry, it needs to be rebased again :(
This time I'm much more confident it's going to work.

I am so sorry for missing this! I must have missed that you did one last master merge-in.

This is shipped in version 0.8.3 now.


Issue892

Fix of issue892.

Signed-off-by: Andres Garagiola garagiol<EMAIL_ADDRESS>

@andresgaragiola Please rebase on master as there are merge conflicts. Also, could you provide a bit more detail about this PR to help others review? Issue #892 does not have enough info. Thanks

@srderson I'm waiting the processing of PR #1310 before fix this conflicts.

I'm closing this PR because now we have other functionalities to merge with it before process the PR.


Add invoice and quote cloner

Move duplicate methods from invoice and quote manager classes to separate dedicated classes

Coverage increased (+0.9%) to 26.466% when pulling ae3610a89881e295ac2dcf983df9ddd1f7300ce8 on pierredup:item-clone into c83133d152670dd1b484f3be2cde111b2e609b87 on CSBill:master.

Coverage increased (+0.9%) to 26.466% when pulling ae3610a89881e295ac2dcf983df9ddd1f7300ce8 on pierredup:item-clone into c83133d152670dd1b484f3be2cde111b2e609b87 on CSBill:master.

Coverage increased (+0.9%) to 26.466% when pulling ae3610a89881e295ac2dcf983df9ddd1f7300ce8 on pierredup:item-clone into c83133d152670dd1b484f3be2cde111b2e609b87 on CSBill:master.


feat(rating-menu): implement InstantSearch.css

Specs
https://instantsearch-css.netlify.com/widgets/rating-menu
Stories
https://deploy-preview-3161--algolia-instantsearch.netlify.com/v2/dev-novel/?selectedStory=RatingMenu.default

We should probably change the routing option from starRating to ratingMenu.

@haroenv This is intended for now. We've got the same behavior on other flavors. Let's move forward and fix that later.

@Haroenv I added the behavior in #3187.


PostgreSQL LIMIT with OFFSET fails

Describe the bug
When trying to limit a select query, and using an offset, the limit is just left off the query entirely.
Information

Version of Medoo: 1.6
Type of Database (MySQL, MSSQL, SQLite...): PostgreSQL 10
System (Liunx\Windows\Mac): Linux (Ubuntu 18.04 is executing the php code. The db server is on CentOS 7 with the official PostgreSQL yum repo enabled.)

Detail Code
$this->db is from new Medoo(...);.
$offset = 0;
$size = 100;
 $get = $this->db->select('actions_data',
                  ['id', 'action', 'udcid', 'field', 'value', 'created'],
                  ['LIMIT' => [$offset, $size]]
                );

Using xdebug, I can tell the sql statement is:
SELECT "id","action","udcid","field","value","created" FROM "actions_data"

Expected output
I expect a result with 100, or fewer, results.
The query should have looked like:
SELECT "id","action","udcid","field","value","created" FROM "actions_data" LIMIT 100 OFFSET 0;

The $offset value changes based on the results of a loop that processes each returned row.

What I get is all 1.8 million rows in my database table.

Never mind. If found some code before my select call if(empty($offset)) can evaluate to true when $offset = 0... Inside that if statement, I was selecting all rows.


Paragraph says that "plot is rendered as a line plot" when its rendered as a point plot

https://github.com/bob-carpenter/prob-stats/blob/52ff4148cda79fc0a86355d69b0126890f4ea162/multiple-random-variables.Rmd#L490

Thanks.  Fixed.


bin accidentally committed to repo

Binary files should only be in the releases, not in the repo.

i didn't have anywhere else to keep track of them. i will move them to releases


feat: link to borrowed assets in navbar

Closes #231

Tests are failing, apparently because this line https://github.com/hpi-swt2/bookkeeper-portal-red/blob/224214dfb93a677c7cde8eedb2f64c0fe06a6499/spec/features/items/reservation_spec.rb#L42
tries to click on "Borrowed", and the first thing with that content that it finds is the navbar link "Borrowed Assets". Let's see how we can fix this 🤔

haha, https://github.com/hpi-swt2/bookkeeper-portal-red/pull/239/commits/2c08d2d7bc237d8e27c850266ff5eb2e7ff1173f fixed it!


Support Python 3.6.0

The Deque type from typing was added to Python 3.5.4 and Python 3.6.1. It is not available in Python 3.6.0 (Source). By relying on Deque, the minimum version of websockets has become 3.6.1 while the readme mentions 3.6.0. If this was by choice, close this PR.
Closes #655

MyPy is not happy
src/websockets/protocol.py:264: error: Implicit generic "Any". Use "typing.Deque" and specify generic parameters
src/websockets/protocol.py:493: warning: Returning Any from function declared to return "Union[str, bytes]"

A solution could be to add # type: ignore

I'm starting to think it would be best to document that at least 3.6.1 is required:

generally speaking, I think it's best to stick to the latest 3.6.x micro version (or 3.7.y, etc.);
that's what hosted CI services do; I don't have the resources or the will to run CI on every micro version;
there's a few other places in the code base where 3.6.0 holds us back (look for "3.6.1" in comments).

If you don't mind, I'll keep it open so I don't forget to update the documentation, then I'll close it.


Lux correction formula application start (100 or 1000 lx)

convert_raw_als_to_lux only applies the low gain correction formula from >1000 lx, however according to page 10 (20-sept-2019 design application document), see figure 10, it is applicable from >100 lx.
Or was this implemented as-is because page 10 sates:

The VEML7700 shows good linear behaviour for lux levels from 0.007 lx to about 1 klx. Illumination values higher than 1000 lx show non-linearity.

However if you zoom-in, quite a bit, on fig 9 one can start to see (minor) deviations from before 1000 lx.

I only apply it to values > 1000lx because the manual states so, as you quoted:

The VEML7700 shows good linear behaviour for lux levels from 0.007 lx to about 1 klx. Illumination values higher than 1000 lx show non-linearity.

According to Figure 10, the correction formula seems to yield good results for > 100lx as well, though.
I suppose this value is a compromise, since the correction also has a computation/energy cost as well as precision requirements/numerical stability risks.

Did not yet properly test how (if) significant the difference is, i was just checking the design application document with the driver implementation and noticed the inconsistency.

Did a quick calculation (no need actually measure), with the maximum error defined as: (Lux_VEML - CORRECTED_Lux) / Lux_VEML = -7.5% for 1000 lx and -1.0% for 100 lx (rounded). It very gradually moves from 1.0 -> 7.5% for 100 -> 1000 lx. (applies to gain 1/4, 1/8 across all integration times)
Provided i did not make any silly mistakes.
The formula is just a polynomic trend line with excel (generated from data in fig 9), they can start from wherever they like. There might indeed be energy concerns depending on the application (possibly indeed also numerical stability); and they do provide other correction formula (same polynomic trend line but in a different range) if so desired (e.g. start from 1000 lx instead of 100 lx if one is fine with the 1-7.5% accuracy hit).

Thanks for running the math on it.
What I could do is to change the code a bit so that the convert_raw_als_to_lux function always does the correction and the read_lux is the one that decides to apply it or not depending on the value being > 1000 lux.
Then, if the users want to apply the correction starting in another range, they can do read_raw() and then call convert_raw_als_to_lux. Then they can decide on an accuracy deviation limit. Something like: we want to apply the correction starting from a theoretical deviation of 2% and skip it otherwise.

Makes sense. If so i would presume the client becomes responsible for the gain check as well when not using read_lux (or will you automatically return the input if != 1/4 or 1/8).
I think the flow should become: read_raw(), convert_to_lux(als)  (== Lux_VEML), if desired apply_lux_correction(lx) (now internally called correct_high_lux); where read_lux does the same internally with gain and cut off check. You can also provide an convert_to_lux version taking gain and IT as well (as you do now for convert_raw_als_to_lux as well).
(to be honest if i would use a cut off different from 100 lx i would contact Vishey for a different correction formula, hoping it is cheaper to compute, and apply it myself client side but for that one would need a convert_to_lux(als) function exposed (or duplicate the logic client side))


pip install broken?

root:~# pip install okta
Collecting okta
  Could not find a version that satisfies the requirement okta (from versions: )
No matching distribution found for okta

root:~# pip --version
pip 7.0.3 from /usr/local/lib/python2.7/dist-packages (python 2.7)

The issue with this is that PIP does not find the proper nested packages.... the find_packages function in setup.py should be changed to use the version from setuptools import find_packages or just made to be recursive.

i will create a pull request when I have time

This is now fixed


Fix reprojecting GeoArrow input

Closes https://github.com/developmentseed/lonboard/issues/528
When GeoPandas 1.0 is out, we should add a test for this. Ref https://github.com/developmentseed/lonboard/issues/533

Published 0.9.3


 Changes on yip required

https://github.com/mudler/yip/pull/168


docs:fix broken img links under managed-datahub

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

lgtm
can we use some tools to auto detect these broken links?

@hsheth2 Great idea, actually we can add markdown-lint-check somewhere in github action or pre-commit. I'll open another PR on this.
Also, I think you should force-merge on this one. :(


Add bdd test for issue_616.feature

Thanks for raising the issue. Let's implement this test first and let it fail. And then proceed to work on the solution.


Open controller/templates in editor

Hello there. I would like to add functionality to batarang

open controller in editor
open view in editor

I want to add $CONTROLLER_PATH to each controller and directive and $TEMPLATES.push($FILE_PATH) to each template.
I can do this with script or assets preprocessor, but it would be the best to add this by default to every controller and directive.
Could you point me out how could I modify default angular controller to achieve this very wanted by me functionality?
I can probably do something like:
var originalCtrl = angular.module("app").controller;
angular.module("app").controller = function(name, ctrl){
  var c = originalCtrl(name, ctrl);
  c.$scope.$CONTROLLER_PATH = getCurrentPath();
  return c;
}

Am I on right track?

Do you mean the Chrome DevTools editor?

This would be awesome, but I was thinking about running executable(but I'm not sure addons can do it) or simply coping path to keyboard so I can do cmd + p -> cmd + c -> enter in atom for example.

I want this functionality because in big projects it's hard to find proper template for view. I guess best solution for now is to give unique ID like template-teplateName for each template and use xpath to find it and have controller/directive in same folder in editor so you can use open in tree view and find it easily. Or for each scope add $CONTROLLER_NAME and have templates in same folder. If don't you have to go to router and check where controller is used. And if it's used in many places you have to find most probable. So simply adding ng-init="$TEMPLATES.push(path)" at top of template would solve this problem. I've found proper way to decorating controller in this stack overflow post http://stackoverflow.com/questions/23382734/angularjs-get-controller-name-from-scope it's already very helpful when used with batarang and local templates, but what I propose would be even better IMO.

This is well outside of the scope of Batarang.  I'd suggest creating a simple Chrome extension yourself.


setup.sh scripts overrides PATH

setup.sh scripts overrides PATH and misses /opt/local/bin causing "cmake" not found when building HElib

Fixed. in commit 16871cc


Move schema files to centralized catalog

Description
Per side-channel discussion, we realized that it's going to block integration development if we need to keep our schemas in sync with each other everywhere. This PR centralizes the catalog files so that variations in schemas can be better tracked. This is a stand-in solution until the catalog API is available at opensearch-catalog.
Following this PR, the following process for updating catalog files is advised:

Create a new copy of the catalog file with an updated version number in accordance with SemVer.
Please sync updates to catalog files back with opensearch-catalog.
Optional: inform authors of integrations using old catalog files that a new one is available. We'd like to release with all integrations using the same catalog files, and prune any redundant copies as we go. We'll need to do one final pass-through before release.

Issues Resolved
N/A
Check List

[X] New functionality includes testing.

[X] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Todo: Update front-end display to trim leading directories from categories.
Actual: If you open the VPC integration you'll see the categories listed as aws/vpc_flow, cloud, communication, logs_vpc, aws/s3.
Expected: Trim leading directories for vpc_flow, cloud, communication, logs_vpc, s3, and possibly capitalize everything + remove underscores to make it look nicer? Still a little awkward but easy to implement and a step in the right direction. Vpc Flow, Cloud, Communication, Logs Vpc, S3.

Status update: Postponing to after we're done with 2.9 release. This is a hefty refactor and will need some time to get done right. Will leave it as a draft for now, we can revisit it in a month or so.

resolved in https://github.com/opensearch-project/opensearch-catalog/issues/69


Support lamda expression like Java8

Lamda expression is very similar with closure. We can translate lamda to closure in the ASTBuilder.
The new feature will be added when the new parser can handle current  syntax of Groovy and Groovy dev team approve it.
Reference: http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax

parsing the lambda into a ClosureExpression is a good idea. +1

We can also add some property(e.g. syntheticLamda) for ClosureExpression to indicate that the closure is an lamda expression actually.


[Request] Print ETA

It would be great if in addition to Printing Time and Time Remaining the print monitor had an ETA screen with displaying (current time+time remaining).
something like this maybe? https://github.com/pablogventura/Octoprint-ETA/blob/master/octoprint_eta/init.py

Any news about that? or any ideas to implement it easily?

Second this request.

Bumping as I would like to see an ETA as well!

Victor7376's fork does this beautifully. Just download and upload it over existing and it will add more screens. I've been using it for a couple of months.

Victor7376's fork does this beautifully. Just download and upload it over existing and it will add more screens. I've been using it for a couple of months.

Yep. I noticed that. I have compiled it and its working well.
Thanks


SSE is enabled by defalut on all new storage accounts

Please see the following announcement: https://azure.microsoft.com/en-us/blog/announcing-default-encryption-for-azure-blobs-files-table-and-queue-storage/

@tamram code updated, grammatical errors fixed.  Thank you! :)

Approved.
#sign-off

Should we also update the "Overview" section to clarify the following bullet point:

"Azure Resource Manager storage accounts (but not classic)"

Seems like the "but not classic" should be removed based on the above edits.

@mjyeaney - I will handle this on a separate pull request.

PR reviewers - approved, please merge.

#hold-off

@lakasa - can you approve this PR when SSE by default is fully rolled out?

@JackStromberg - Thank you for your contribution.
Approved - #sign-off


Atspi rustfmt.toml

This PR contains two commits:

The introduction of a rustfmt.toml
The config introduces a few defaults and, most importantly perhaps, a link to the fustfmt options' documentation.
The options that were chosen are stable.

The crate's sources reformatted using the new config.

Feel free to disagree and play around with (stable) options and make suggestions, so we can land upon a unified layout.


[Color Picker] Configurable color formats

Configurable color formats: let the user create custom color formats so they have the complete freedom to create something custom. It would be nice to re-sort the list or to set a format as the default copy-to-clipboard. The format editor would live in Settings.

Pending work from #5379

Do you mean for example something like:
red: %r, blue: %b and green: %g

Yes

@martinchrzan proposed to make these color formats like the PowerToys plug-ins. Contributors can create their own plug-ins that would include all the color conversions. These formats / plug-ins can then be enabled/disabled in Settings, similar to what we currently have.

@martinchrzan proposed to make these color formats like the PowerToys plug-ins. Contributors can create their own plug-ins that would include all the color conversions. These formats / plug-ins can then be enabled/disabled in Settings, similar to what we currently have.

Sounds like a great idea. So we don't have any problems with the different ways of conversation.
I think these formats (plugins) should be available in the copy to clipboard and the editor feature.

@martinchrzan proposed to make these color formats like the PowerToys plug-ins. Contributors can create their own plug-ins that would include all the color conversions. These formats / plug-ins can then be enabled/disabled in Settings, similar to what we currently have.

I'm not familiar with PowerToys plugins... Does this mean that a separate module would have to be written every time someone wants a custom format?
I see custom formats as a very powerful feature. For example, any time I work in a different programming language, I'd like to be able to copy a color to the clipboard in the syntax of that language (like the example in the original post). If a separate plugin has to be written for custom formats, it doesn't help end users who can't either write a plugin themselves or happen to find one that already meets their criteria. Aside from general extensibility, it's practically not much better than hard-coding additional formats into the base application.
Hopefully I am misunderstanding the idea. :)

Well it is better in the case that we cannot hardcode milion different formats that people might want. We want to have 2 approaches - either simple snippet as in the original suggestion, so you can format string but you are limited with RGB/HSV numbers. If that is not enough and you need to do some transformation, we can provide plugins - we give you a skeleton project, you just fill in the logic, build and drop that dll in. We could add this scripting experience directly inside the editor, but that sounds like an overkill to build and validate some code inside our application (but not impossible)

Totally agreed on the extensibility of plugins. I'm just thinking about a user who wants a quick and dirty format without much work. I'm guessing that snippets would cover the vast majority of these cases.
If it's within the scope of the project, supporting both approaches would be awesome! I would vote to prioritize snippets. :)
Thanks!

I've suggested an approach with predefined codes for parameters and number-types before:
Number formats

percentages with and without percent sign %% and as either integer %P or floating point number %p.
floats in the range [0.0, 1.0] with %0. or without leading zero %.
uppercase [0-9A-F] or lowercase [0-9a-f] single %H / %h or double hexadecimal digits %X / %x #5455
8-bit integers [0, 255] %i or [16,240] %I, possibly 10-bit %0 and 12-bit integers #5422 or turned into flats with the respective precision
angles with %D or without %d degree sign ° or symbol (CSS: deg)
angle in radians %r (CSS: rad), possibly with a factor of π incorporated %R
angle in partial turns %t (τ, CSS: turn)
closest X11/CSS/SVG color name %n, possibly other palettes (e.g. spot colors, Pantone, Crayola, HKS, RAL)

Color spaces and models

sRGB representations: RGB %R/%G/%B, HSL, HSV, HSI, HWB %H/%S/%s/%l/%V/%I/%W/%B
optional alpha transparency %A or opacity %a
wide-gamut RGB #5422 %r/%g/%b: CIE, Adobe, ProPhoto/ROMM, DCI, UHD/Rec.2020/2100, ECI
CIELab #5440 (1931) %L/%?/%?, LCH %c/%h, Luv (1976) %u/%v, xyY, XYZ %x/%y/%z/%Y
YUV, YCbCr/PbPr
CMYK, CcMmYK, CMYKOG via ICC device or interchange (e.g. Fogra51) profiles
…

Presets
%1 through %9 are just shortcuts to the most frequently used combinations of generic % + number format + component.

Does anybody have an estimate if and when this might be implemented?

Does anybody have an estimate if and when this might be implemented?

Does anybody have an estimate if and when this might be implemented?

I think whe  someone has the time to implement it. I think if you want to work on it, then you can do this.

Does anybody have an estimate if and when this might be implemented?

I think whe  someone has the time to implement it. I think if you want to work on it, then you can do this.

This is a very good Idea, would love to see in future releases

The ability to copy the HEX color (like #123456) with or without the #

Hi everybody,
I've started to work on this issue or better new feature.
I would like to collect ideas about the parametrisation.
What is proposed in the example video - is too few, I think. In a programming world when there is a “custom” possibility than it should allow every possible parameter.
I have extracted from the other color formats the possible parameters, I mean which pop up in the predefined formats. You can find it in the following table. Also added the format, like hex or decimal or percent.

| byte (0..255) | int | hex | float | percent
-- | -- | -- | -- | -- | --
Red | X |   | X |   |
Green | X |   | X |   |
Blue | X |   | X |   |
Alpha | X |   | X |   |
Cyan |   |   |   |   | X
Magenta |   |   |   |   | X
yEllow |   |   |   |   | X
blackKey |   |   |   |   | X
Hue |   | double rounded to int |   |   |
Saturation |   |   |   |   | X
bRightness |   |   |   |   | X
Intensity |   |   |   |   | X
Lightness |   |   |   | X | X
valUe??? (part of the HSV   format) |   |   |   |   | X
Whiteness |   |   |   |   | X
blackNess |   |   |   |   | X
chrOmaticity a |   |   |   |   | X
chromaTicity b |   |   |   |   | X
X |   | double rounded to int |   |   |
Y |   | double rounded to int |   |   |
Z |   | double rounded to int |   |   |
Decimal value |   | X |   |   |

We could allow every parameter in every format with 2 characters after the % character. First is the parameter identifier, second the format, for example %Rb could mean R as red and b as byte format. In the first column, where there are the possible parameters, I have selected a distinct uppercase ‘identifier’ for every parameter, for the formats the b (byte), i (int), h (hex), f (float) and p (percent) could do.
Some examples: %Mh  --> Magenta in Hex format,      %If --> Intensity in float format.
Eventually every parameter could have its default format and it would be enough to write %R for red (byte) value or %S for saturation (percent value).
With longer identifiers (like %Sat for example) the 'format string' would be more readable, on the other hand many people like type less...
What is your opinion?
Thanks and best regards,
Laszlo

I proposed a different two-character variable system before.
It’s important to note that almost every component may occur with and without a prefix or, more often, a suffix (i.e. usually a unit symbol, but also # for hexcodes).
Hexadecimal digits may be upper or lowercase, come in nibbles or octets.
Hues are almost always angles, often specified in unit-less degrees, but possibly in radians or something else.
Many other components are either percentages or look like ones: 1.0, 1,0, 100, 100%, but sometimes values outside the zero-to-one range occur.
CMYK should not be supported, because the algorithm used is harmful trash.
CSS prefers OKLab now, which isn't supported here yet.
You’ll quickly run out of single-letter component identifiers.

The code for this issue has been released in 0.65. Please update PowerToys to the latest version:
https://github.com/microsoft/PowerToys/releases

I understand that users are free to add color formats.
However, I have a hard time understanding why there is no template for Web Colors (Hex Triplet), which is probably the most used template.
The PowerToys project often doesn't take into account the most commonly used functions and formats, which is very confusing.