Dc/chunk sizes

this maybe out of scope for this repo but hope you don't mind if i ask.
i'm trying to chunk some docs, eg an Apple earnings call.
I wonder if you have more insight on the parameters?
I was looking into the various params:

    v1: {
        logging: true,
        maxTokenSize: 1000,
        similarityThreshold: .20,             // higher value requires higher similarity to be included (less inclusive)
        dynamicThresholdLowerBound: .20,      // lower bound for dynamic threshold
        dynamicThresholdUpperBound: 1,        // upper bound for dynamic threshold
        numSimilaritySentencesLookahead: 5,
        combineChunks: true,
        combineChunksSimilarityThreshold: 0.2, // lower value will combine more chunks (more inclusive)
        onnxEmbeddingModel: "Xenova/all-MiniLM-L6-v2",
        onnxEmbeddingModelQuantized: true,
    },

this config gives very uneven chunk sizes
in this case we have question and answer type content. it does seem to break on the boundary, but then the lines of the question get broken apart into separate chunks.
[
    "Maybe my first one, Tim, you've obviously mentioned your excitement around Generative AI multiple times. I'm just curious how Apple is thinking about the different ways in which you can monetize this technology because historically software upgrades haven't been a big factor in driving product cycles. And so could AI be potentially different? And how could that impact replacement cycles?",
    "Is there any services angle you'd be thinking?",
    "Any early color that you can share on that?",
    "And then I have a follow up, please. Thanks.",
]

this is the reference output with that config
input:
https://github.com/dcsan/semantic-chunking/blob/main/data/docs/aapl-2024-q2.txt
output:
https://github.com/dcsan/semantic-chunking/blob/main/data/docs/aapl-2024-q2.v1-size-1000.sim-0.2.comb-0.2.dyn-0.2-1.chunks.json

I guess the question is around understanding the balance of these params:
    similarityThreshold: .20,             // higher value requires higher similarity to be included (less inclusive)
    dynamicThresholdLowerBound: .20,      // lower bound for dynamic threshold
    dynamicThresholdUpperBound: 1,        // upper bound for dynamic threshold

I'm not clear what the dynamic version of these params distinction is.
https://github.com/jparkerweb/semantic-chunking?tab=readme-ov-file#similaritythreshold


[BUG]: Inconsistency in displaying code coverage with PublishCodeCoverageResults

Task name
PublishCodeCoverageResults
Task version
2
Environment type (Please select at least one enviroment where you face this issue)

[ ] Self-Hosted
[X] Microsoft Hosted
[ ] VMSS Pool
[ ] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
Ubuntu
Task log
2023-11-04T01:02:19.9558822Z ##[section]Starting: Publish Test Coverage Report
2023-11-04T01:02:19.9567109Z ==============================================================================
2023-11-04T01:02:19.9567392Z Task         : Publish code coverage results v2
2023-11-04T01:02:19.9567599Z Description  : Publish any of the code coverage results from a build
2023-11-04T01:02:19.9567915Z Version      : 2.229.0
2023-11-04T01:02:19.9568026Z Author       : Microsoft Corporation
2023-11-04T01:02:19.9568200Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-code-coverage-results
2023-11-04T01:02:19.9568677Z ==============================================================================
2023-11-04T01:02:20.1096746Z Found 2 result(s) matching pattern: /home/vsts/work/_temp/build-artifacts/**/*.xml
2023-11-04T01:02:20.1100194Z /home/vsts/work/_temp/build-artifacts/test-results/05593de1-f4e0-4ba3-bbf0-59f240135536/coverage.opencover.xml
2023-11-04T01:02:20.1101805Z /home/vsts/work/_temp/build-artifacts/test-results/_fv-az460-120_2023-11-04_01_01_27/In/fv-az460-120/coverage.opencover.xml
2023-11-04T01:02:20.1203191Z [command]/home/vsts/work/_tasks/PublishCodeCoverageResults_2a7ebc54-c13e-490e-81a5-d7561ab7cd97/2.229.0/node_modules/coveragepublisher/CoveragePublisher/linux-x64/CoveragePublisher.Console /home/vsts/work/_temp/build-artifacts/test-results/05593de1-f4e0-4ba3-bbf0-59f240135536/coverage.opencover.xml /home/vsts/work/_temp/build-artifacts/test-results/_fv-az460-120_2023-11-04_01_01_27/In/fv-az460-120/coverage.opencover.xml --reportDirectory /home/vsts/work/_temp/704ae2ed-c1e5-4675-906a-291c690c3051 --sourceDirectory .
2023-11-04T01:02:21.6809791Z 2023-11-04T01:02:21: Loading report '/home/vsts/work/_temp/build-artifacts/test-results/05593de1-f4e0-4ba3-bbf0-59f240135536/coverage.opencover.xml' 1/2 in memory
2023-11-04T01:02:21.8191598Z 2023-11-04T01:02:21: Preprocessing report
2023-11-04T01:02:21.8231521Z 2023-11-04T01:02:21: Initiating parser for OpenCover
2023-11-04T01:02:21.8342626Z 2023-11-04T01:02:21: Current Assembly: XXX
2023-11-04T01:02:21.9080956Z 2023-11-04T01:02:21: Finished parsing '/home/vsts/work/_temp/build-artifacts/test-results/05593de1-f4e0-4ba3-bbf0-59f240135536/coverage.opencover.xml' 1/2
2023-11-04T01:02:21.9082916Z 2023-11-04T01:02:21: Loading report '/home/vsts/work/_temp/build-artifacts/test-results/_fv-az460-120_2023-11-04_01_01_27/In/fv-az460-120/coverage.opencover.xml' 2/2 in memory
2023-11-04T01:02:21.9084338Z 2023-11-04T01:02:21: Starting merging result 1
2023-11-04T01:02:21.9104355Z 2023-11-04T01:02:21: Finished merging result 1
2023-11-04T01:02:22.0183685Z 2023-11-04T01:02:22: Preprocessing report
2023-11-04T01:02:22.0198813Z 2023-11-04T01:02:22: Initiating parser for OpenCover
2023-11-04T01:02:22.0228361Z 2023-11-04T01:02:22: Current Assembly: XXX
2023-11-04T01:02:22.0960970Z 2023-11-04T01:02:22: Finished parsing '/home/vsts/work/_temp/build-artifacts/test-results/_fv-az460-120_2023-11-04_01_01_27/In/fv-az460-120/coverage.opencover.xml' 2/2
2023-11-04T01:02:22.0962032Z 2023-11-04T01:02:22: Starting merging result 2
2023-11-04T01:02:22.0962492Z 2023-11-04T01:02:22: Parsing of 2 files completed
2023-11-04T01:02:22.1085239Z 2023-11-04T01:02:22: Finished merging result 2
2023-11-04T01:02:22.1379422Z 2023-11-04T01:02:22: Initializing report builders for report types: HtmlInline_AzurePipelines
2023-11-04T01:02:22.1432257Z 2023-11-04T01:02:22: Analyzing 145 classes
2023-11-04T01:02:22.1434418Z 2023-11-04T01:02:22: Creating report 1/145 (Assembly: XXX, Class: XXX)
2023-11-04T01:02:22.1570610Z 2023-11-04T01:02:22: Writing report file 'XXX.html'
...
2023-11-04T01:02:22.8407851Z 2023-11-04T01:02:22: Creating report 145/145 (Assembly: XXX, Class: XXX)
2023-11-04T01:02:22.8409170Z 2023-11-04T01:02:22: Writing report file 'XXX.html'
2023-11-04T01:02:22.8409887Z 2023-11-04T01:02:22: Creating summary
2023-11-04T01:02:22.8410680Z 2023-11-04T01:02:22: Writing report file '/home/vsts/work/_temp/704ae2ed-c1e5-4675-906a-291c690c3051/index.html'
2023-11-04T01:02:22.8413116Z Publishing file coverage data.
2023-11-04T01:02:23.1305313Z Publishing code coverage HTML report.
2023-11-04T01:02:23.1383789Z Uploading 148 files.
2023-11-04T01:02:28.1428805Z Total file: 148 ---- Processed file: 32 (21%).
2023-11-04T01:02:38.1434140Z Total file: 148 ---- Processed file: 101 (68%).
2023-11-04T01:02:44.4422703Z File upload succeed.
2023-11-04T01:02:44.5083450Z Published '/home/vsts/work/_temp/704ae2ed-c1e5-4675-906a-291c690c3051' as artifact 'Code Coverage Report_105922'.
2023-11-04T01:02:44.5259752Z ##[section]Finishing: Publish Test Coverage Report

Relevant log output
no relevant logs

Aditional info
I'm observing discrepancy in how Code Coverage reports are displayed when build finishes normally and when interrupted (cancelled).
Configuration:

Code coverage file is generated in 'OpenCover' format.
Coverage file is published with PublishCodeCoverageResults@2 task
No report generation tools/tasks are used

Task configuration:
  - task: PublishCodeCoverageResults@2
    displayName: Publish Test Coverage Report
    inputs:
      summaryFileLocation: "${{ parameters.outputDirectory }}/**/*.xml"
      pathToSources: .
    continueOnError: true
    condition: succeededOrFailed()

Coverlet configuration:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="XPlat code coverage">
        <Configuration>
            <Format>opencover</Format>
            <Exclude>[NS.Shared.*]*,</Exclude>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>

Case 1: normal build
Scenario: build runs to the end and is not interrupted.
PublishCodeCoverageResults task generates code coverage reports and uploads into builds artifacts store
...
2023-11-04T11:38:41: Writing report file 'xxx.html'
2023-11-04T11:38:41: Creating summary
2023-11-04T11:38:41: Writing report file '/home/vsts/work/_temp/1707ff5b-a2f5-45b7-bc6b-b4ed54644e87/index.html'
Publishing file coverage data.
Publishing code coverage HTML report.
Uploading 148 files.
Total file: 148 ---- Processed file: 42 (28%).
Total file: 148 ---- Processed file: 122 (82%).
File upload succeed.
Published '/home/vsts/work/_temp/1707ff5b-a2f5-45b7-bc6b-b4ed54644e87' as artifact 'Code Coverage Report_105925'.

Basic code coverage info is then visible on build summary page. Detailed info from generated html files are not shown on the tab:

On build summary page code coverage percentage is displayed correctly:

Case 2: cancelled build
Scenario: build is manually cancelled after PublishCodeCoverageResults task is executed.
PublishCodeCoverageResults task generates code coverage reports and uploads into builds artifacts store
Task execution logs and produced artifacts are exactly the same as in Case 1.
Now Code Coverage info on build summary page is displayed from htmls generated by PublishCodeCoverageResults task

On build summary page code coverage percentage value is invalid, however report shows correct coverage percentage

I'm seeing similar behaviour insofar as I only see the basic coverage report on a successful build, even though the detailed report has been uploaded as an artefact on the build.

Still relevant


Browsing link in getting_started.md results in 404 error

Browsing link under section physical-web/documentation/getting_started.md results in 404 error.
Exact line:
If you want to hack a bit, there is also a growing list of maker devices that support the broadcasting of URLs in this directory
[this directory] points to following url: https://github.com/google/physical-web/tree/master/firmware
which results in 404 error.

Excellent catch, thank you! Fixed


Add 'Tracking COVID-19'

Cool! Are you going to add responsiveness so it can also be viewed on mobile?
I would also suggest a small padding for the colored boxes.

Hi @puf17640,
Thank you, just made some quick changes. :)

Awesome! Now that it has mobile support, it's really nice 👍


Converting a C++/CX "delegate" over to WinRT

I have a UWP application in C++/CX that I would like to convert over to C++/WinRT. I have pretty much figured figured out how to translate my code over to WinRT, but I am hung up on a minor detail.
My CX app has a class that mimics the Microsoft.VisualStudio.PlatformUI.DelegateCommand class in C#.  This is how the function pointers in my CX class are defined:
public delegate void ExecuteFunction(Platform::Object^ parameter);
public delegate bool CanExecuteFunction(Platform::Object^ parameter);

And this is how the function pointers are defined in my WinRT class:
using ExecuteFunction = std::function<void(winrt::Windows::Foundation::IInspectable const& parameter)>;
using CanExecuteFunction = std::function<bool(winrt::Windows::Foundation::IInspectable const& parameter)>;

The constructor for the WinRT version of my class looks like this:
namespace winrt::MyApp::implementation
{
    DelegateCommand::DelegateCommand(ExecuteFunction  exefunc,  CanExecuteFunction  canexefunc)
    {
        m_ExecuteFunction = exefunc;
        m_CanExecuteFunction = canexefunc;
    }
}

I am trying to instantiate my DelegateCommand class this way:
namespace winrt::MyApp::implementation
{
    MainPageViewModel::MainPageViewModel()
    {
        winrt::MyApp::DelegateCommand cmd = winrt::make< winrt::MyApp::implementation::DelegateCommand>(
             & winrt::MyApp::implementation::MainPageViewModel::ExecuteTestCommand,
             & winrt::MyApp::implementation::MainPageViewModel::CanExecuteTestCommand); // <<<--- Compiler Error.
    }

    void MainPageViewModel::ExecuteTestCommand(winrt::Windows::Foundation::IInspectable const& /*parameter*/)
    {
    }

    bool MainPageViewModel::CanExecuteTestCommand(winrt::Windows::Foundation::IInspectable const& /*parameter*/)
    {
        return true;
    }
}

The compiler is flagging an error on the source code line as noted above. The error is this:
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\Generated Files\winrt\base.h(7560,82): error C2664: 'winrt::impl::heap_implements<D>::heap_implements(winrt::MyApp::implementation::ExecuteFunction,winrt::MyApp::implementation::CanExecuteFunction)': cannot convert argument 1 from '_Ty' to 'winrt::MyApp::implementation::ExecuteFunction'
1>        with
1>        [
1>            D=winrt::MyApp::implementation::DelegateCommand
1>        ]
1>        and
1>        [
1>            _Ty=void (__cdecl winrt::impl::consume_MyApp_IMainPageViewModel<winrt::MyApp::IMainPageViewModel>::* )(const winrt::Windows::Foundation::IInspectable &) const
1>        ] (compiling source file ViewModels\MainPageViewModel.cpp)
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\Generated Files\winrt\base.h(7538,5): message : No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file ViewModels\MainPageViewModel.cpp)
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\Generated Files\winrt\base.h(7469): message : see declaration of 'winrt::impl::heap_implements<D>::heap_implements'
1>        with
1>        [
1>            D=winrt::MyApp::implementation::DelegateCommand
1>        ] (compiling source file ViewModels\MainPageViewModel.cpp)
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\ViewModels\MainPageViewModel.cpp(88): message : see reference to function template instantiation 'auto winrt::make<winrt::MyApp::implementation::DelegateCommand,void(__cdecl winrt::impl::consume_MyApp_IMainPageViewModel<winrt::MyApp::IMainPageViewModel>::* )(const winrt::Windows::Foundation::IInspectable &) const,bool(__cdecl winrt::impl::consume_MyApp_IMainPageViewModel<winrt::MyApp::IMainPageViewModel>::* )(const winrt::Windows::Foundation::IInspectable &) const>(void (__cdecl winrt::impl::consume_MyApp_IMainPageViewModel<winrt::MyApp::IMainPageViewModel>::* &&)(const winrt::Windows::Foundation::IInspectable &) const,bool (__cdecl winrt::impl::consume_MyApp_IMainPageViewModel<winrt::MyApp::IMainPageViewModel>::* &&)(const winrt::Windows::Foundation::IInspectable &) const)' being compiled
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\Generated Files\winrt\base.h(7560,44): error C2672: 'winrt::to_abi': no matching overloaded function found (compiling source file ViewModels\MainPageViewModel.cpp)
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\Generated Files\winrt\base.h(7560,42): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'winrt::MyApp::implementation::DelegateCommand_base<winrt::MyApp::implementation::DelegateCommand,winrt::MyApp::implementation::BindableBase>::class_type' (compiling source file ViewModels\MainPageViewModel.cpp)
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\Generated Files\winrt\base.h(7538,5): message : No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file ViewModels\MainPageViewModel.cpp)
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\ViewModels\MainPageViewModel.cpp(86,46): error C2440: 'initializing': cannot convert from 'void' to 'winrt::MyApp::DelegateCommand'
1>C:\Users\Don\source\repos\MyAppWinRT\MyApp\ViewModels\MainPageViewModel.cpp(86,46): message : Expressions of type void cannot be converted to other types

And finally, this is the section of the generated base.h file referenced by the compiler erorr:
else if constexpr (impl::has_class_type<D>::value)
{
    static_assert(std::is_same_v<I, default_interface<typename D::class_type>>);
    return typename D::class_type{ to_abi<I>(new impl::heap_implements<D>(std::forward<Args>(args)...)), take_ownership_from_abi }; // <<<--- Compliler Error
}

I'm scratching my head over what the syntax is to pass a function pointer to a C++/WinRT runtime class. I think I'm missing a template parameter.  I have two questions: 1) Am I going about these function pointers in the right way? And 2) if so, what is the correct syntax?
 I tried posting this over on StackOverflow and got a couple of down votes without a even a reply. I'm trying here and would like a clue to get me over this hump. Thank you.

Did you try creating an instance of the delegate and pass the function pointer as argument? Thats how it worked in previous iterations of C++ language mappings. There may not be an implicit conversion from function pointer to delegate, and the delegate is an object of its own, not another view of the function pointer.

Did you try creating an instance of the delegate and pass the function pointer as argument? Thats how it worked in previous iterations of C++ language mappings. There may not be an implicit conversion from function pointer to delegate, and the delegate is an object of its own, not another view of the function pointer.

@weltkante : I understand these are pointers to class methods. The C++/CX compiler did a bit in the background to make life easier for me. I have tried using std::bind but get the same compiler error. For example:
        winrt::SaviDraw::DelegateCommand cmd = winrt::make<SaviDraw::implementation::DelegateCommand>(
            std::bind(&MainPageViewModel::ExecuteTestCommand, this),
            std::bind(&MainPageViewModel::CanExecuteTestCommand, this));

@weltkante : I understand these are pointers to class methods. The C++/CX compiler did a bit in the background to make life easier for me. I have tried using std::bind but get the same compiler error. For example:
        winrt::SaviDraw::DelegateCommand cmd = winrt::make<SaviDraw::implementation::DelegateCommand>(
            std::bind(&MainPageViewModel::ExecuteTestCommand, this),
            std::bind(&MainPageViewModel::CanExecuteTestCommand, this));

Could you post a link to the stackoverflow question/thread?

Could you post a link to the stackoverflow question/thread?

@DefaultRyan : I had deleted the StackOverflow question. After reading it again, I have gotten farther along in the last six days, so what is posted here is the pretty much same issue, but with more information (mis-information?) on my part. I just undeleted the question for you to see it. Here is the link:
https://stackoverflow.com/questions/65484996/converting-the-c-cx-delegate-object-over-to-its-equivalent-in-c-winrt

@DefaultRyan : I had deleted the StackOverflow question. After reading it again, I have gotten farther along in the last six days, so what is posted here is the pretty much same issue, but with more information (mis-information?) on my part. I just undeleted the question for you to see it. Here is the link:
https://stackoverflow.com/questions/65484996/converting-the-c-cx-delegate-object-over-to-its-equivalent-in-c-winrt

I upvoted your question. 😉
I'll let @DefaultRyan address it on Stack Overflow.

I upvoted your question. 😉
I'll let @DefaultRyan address it on Stack Overflow.

DefaultRyan posted the answer for me over on StackOverflow. The correct declaration of the delegate in the *.idl file is what threw me off.  I am now in business. Thanks! 👍

DefaultRyan posted the answer for me over on StackOverflow. The correct declaration of the delegate in the *.idl file is what threw me off.  I am now in business. Thanks! 👍


Compaction strategy not stablized yet as shown by q102 q105

http://metabase.risingwave-cloud.xyz/question/170-nexmark-q102-blackhole-medium-1cn-avg-so[…]r-second-rows-s-history-thtb-126?start_date=2023-07-09
q102 in the recent two days 0906, 0905:
https://grafana.test.risingwave-cloud.xyz/d/EpkBw5W4k/risingwave-dev-dashboard?orgId=1&var-da[…]20000&var-namespace=nexmark-bs-15-105-daily-20230906
https://grafana.test.risingwave-cloud.xyz/d/EpkBw5W4k/risingwave-dev-dashboard?orgId=1&var-da[…]18000&var-namespace=nexmark-bs-15-105-daily-20230905

@Little-Wallace is working on a new compaction strategy to stabilize the behaviors.
Just leave a record for visibility.

q105: http://metabase.risingwave-cloud.xyz/question/374-nexmark-q105-blackhole-medium-1cn-avg-source-output-rows-per-second-rows-s-history-thtb-129?start_date=2023-08-06
https://grafana.test.risingwave-cloud.xyz/d/EpkBw5W4k/risingwave-dev-dashboard?orgId=1&var-datasource=Prometheus: test-useast1-eks-a&from=1694037981000&to=1694039784000&var-namespace=nexmark-bs-15-105-daily-20230906
https://grafana.test.risingwave-cloud.xyz/d/EpkBw5W4k/risingwave-dev-dashboard?orgId=1&var-datasource=Prometheus: test-useast1-eks-a&from=1693952021000&to=1693953824000&var-namespace=nexmark-bs-15-105-daily-20230905

link #11884

@Li0k @Little-Wallace Any updates?

@Li0k @Little-Wallace  Any updates?

For q102:

For q105:

We can found that the CPU usage has decrease a lot, I think this problem has been solved, does it ?

We will keep optimizing for CPU cost and stability in the future but this issue has been solved in current test case.


Consumer closed while Fetching Messages

I have implemented a consumer that's supposed to fetch many messages. However, the consumer connection seems to be always closed even before i ack/nack the message. For my case, I expect it to be always idle. The code for the RabbitMQ consumer looks like this:
        consumer, err := rabbitmq.NewConsumer(
		p.conn,
		func(d rabbitmq.Delivery) rabbitmq.Action {
			var data map[string]interface{}
			err := json.Unmarshal(d.Body, &data)
			if err != nil {
				return rabbitmq.NackRequeue
			}

			// set type assertion for id, createdAt, and updatedAt
			var id float64
			var ok bool
			if x, found := data["Id"]; found {
				if id, ok = x.(float64); !ok {
					fmt.Println("id is not float64")
					return rabbitmq.NackRequeue
				}
			} else {
				fmt.Println("id is not found")
				return rabbitmq.NackRequeue
			}
			// set stream response
			post := &postPB.Post{
				Id:      int32(id),
				Title:   data["Title"].(string),
				Content: data["Content"].(string),
				Topic:   data["Topic"].(string),
			}

			response := &postPB.SubscribePostByTopicResponse{
				Meta: &postPB.GenericResponse{
					Status:  "success",
					Message: "success",
				},
				Post: post,
			}
			if err := stream.Send(response); err != nil {
				fmt.Println("error sending stream: ", err)
				return rabbitmq.NackRequeue
			}
			return rabbitmq.Ack
		},
		"grpc_queue",
		rabbitmq.WithConsumerOptionsRoutingKey("grpc_queue"),
		rabbitmq.WithConsumerOptionsExchangeName("events"),
		rabbitmq.WithConsumerOptionsExchangeDeclare,
	)

I need to make the consumer connection always idle and fetch as many messages as possible without closing the connection. Please suggest a solution to this issue.

I'd like to inform that this issue is no longer valid. It turns out that the issue occurred because I forgot to put the main thread blocking code, which caused the consumer to exit immediately after consuming the first message. Thanks :).


Update: ModernFlyouts.ModernFlyouts version <IP_ADDRESS>

Removing old versions to reduce clutter
Microsoft Reviewers: Open in CodeFlow

/azp run


Add 'dnd-dragover', 'dnd-dragleave' and 'dnd-drop' attributes for items

Hi Marcel,
I needed to know react on 'dragover', 'dragleave' and 'drop' events. I bet it will come handy to other developers too.
Best regards,
Zat

There are already dnd-dragover and dnd-drop callbacks. The leave callback has some problems in that it is also triggered on child DOM elements all the time. I'm not sure dragleave is useful very often, as the directive already provides a CSS class and a placeholder element. But in those rare cases you could always register your own event handler.


add three features in docs

Add the three new features mentioned in this release: https://github.com/SwiftyProgrammer690/fireworks/releases/tag/v1.2

Time to merge it now!


Move cfenv switch for PostgreSQL  to application yaml

Perhaps, application.yaml is a better place for the switch in question.

Reason: the service instance name is rather property of the deployment configuration and not the application properties.


two streams at the same time

sorry to ask this here but i did not find any support forum,
I have installed SRS on my centos 6 server I can stream and play the HLS with no issue
my question is I want to stream 2 channels at the same time!
is it ok if I setup RTMP on my encoder #1 > rtmp://server-ip:1935/live & streamname : channel1
encoder #2 rtmp://server-ip:1935/live & streamname: channel2
or do i have to configure  the CONF files?

Not a issue.


Fix query to allow different records to have same values on same keys in different locales

Something is broken. More test cases should be added and query needs a refactoring.


GitHub Action on Merging or Tagging is Failing

The GitHub action that runs after merging or on tagging is failing, for example: https://github.com/KhronosGroup/OpenCL-Headers/runs/1578577862?check_suite_focus=true
Selective lines from the log:

Err:1 http://azure.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dev-i386 amd64 2.27-3ubuntu1.3
404  Not Found [IP: <IP_ADDRESS> 80]
E: Failed to fetch http://azure.archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6-dev-i386_2.27-3ubuntu1.3_amd64.deb  404  Not Found [IP: <IP_ADDRESS> 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Error: Process completed with exit code 100.

This is probably trivial to fix, possibly even just needs the apt-get update as the log says.  I didn't spot an issue in 30 seconds of looking, but I'm not familiar with GitHub actions.

The package archive was updated with a newer version of the libc-dev-i386_2.27 package on 12/08, and the older version removed.
N.b. you might consider building a Docker image containing all the right components for this. Even just updating the apt database and installing components from cmake 96 times (# of jobs in the Linux job matrix) takes considerable time.


back/forward navigation

Currently atomic-router does not have programmatic API for back/forward navigation
You can call history.back() from the current history instance, but it can lead to improper imports (e.g. from app/router to features/some-feature, or import history from separated directory and have two sources for similar tasks)

Released in v0.7.0


CLI gives error message when creating hashedrekord types that isn't useful

Description
bcallaway@bcallaway01:~/git/sigstore/rekor$ ./rekor-cli upload --signature /tmp/Qubes-R4.0.4-x86_64.iso.asc --artifact /tmp/Qubes-R4.0.4-x86_64.iso --public-key /tmp/qubes-release-4-signing-key.asc --type hashedrekord
invalid public key: failure decoding PEM

the hashedrekord type only supports X509 PKI at the moment, but this message doesn't help the user to understand that.

Ah, I see the other issue on this -- golang's openpgp didn't support verifying a hashed message, and is frozen, so unlikely to ever support signing/verifying hashed messages.
Happy to fix the error message for now. I see this is for https://github.com/sigstore/rekor/issues/601. I'm slightly hesitant to implement verification just given PGP problems but WDYT? Legitimate use case, and could be nice to have

Unless we could use a supported PGP library to verify the signature via hash only, I think solving #601 by using hashedrekord won't work.


Work out good approach for automatic Hessian sparsity detection

SparsityDetection.jl is no longer maintained, and the sparsity detection functionality in Symbolics.jl still seems somewhat brittle. Currently this package just uses ForwardDiff, but that is a suboptimal solution (very slow in high dimensions).

Should be solved by some combination of SparseConnectivityTracer.jl and the solution to https://github.com/gdalle/DifferentiationInterface.jl/issues/263

Now that SparseConnectivityTracer supports linear algebra, can you see if this is enough for your use case?
Note that to support linear algebra, you will have to use local sparsity detection, which means the sparsity pattern cannot be reused between calls because it depends on the value of x. If you need a global sparsity pattern, do tell us which linear-algebraic functions you use and we can add specific overloads for them?

That's great! The main functions that are both important to have, and difficult to handle till now, are log-determinants (of both dense and sparse matrices). I need them to calculate loglikelihoods of Gaussian Markov random fields (aka MV Normals paramaterized by a precision matrix instead of a covariance). If I can trace through dense and sparse versions of the MWE function in https://github.com/gdalle/DifferentiationInterface.jl/issues/263 I will be pretty happy:
const y = randn(10)

function f_dense(u)
    Q = diagm(exp.(u))
    return logdet(Q) - y' * Q * y
end

function f_sparse(u)
    Q = spdiagm(exp.(u))
    return logdet(Q) - y' * Q * y
end

In most problems, the structure of Q will be constant, so in theory the sparsity pattern should not change between calls.
Currently, SCT can handle the dense one with local tracing, but gets a stack overflow error with the sparse one.

Can you use this code in the meantime? I still haven't decided whether it belongs in DI itself or just in the docs as an example
using ADTypes
using DifferentiationInterface
using SparseArrays

struct DenseSparsityDetector{B} <: ADTypes.AbstractSparsityDetector
    backend::B
    atol::Float64
end

function ADTypes.jacobian_sparsity(f, x, detector::DenseSparsityDetector)
    J = jacobian(f, detector.backend, x)
    return sparse(abs.(J) .> detector.atol)
end

function ADTypes.jacobian_sparsity(f!, y, x, detector::DenseSparsityDetector)
    J = jacobian(f!, y, detector.backend, x)
    return sparse(abs.(J) .> detector.atol)
end

function ADTypes.hessian_sparsity(f, x, detector::DenseSparsityDetector)
    H = hessian(f, detector.backend, x)
    return sparse(abs.(H) .> detector.atol)
end

Yes, that solution is probably good enough to close this issue, and I already have it as a patcj on a development branch here. My $0.02 is it would be great to have it in DI unless there's a compelling reason not to.

Added in https://github.com/gdalle/DifferentiationInterface.jl/pull/297

Working here, will close this issue once I merge that branch. Thanks for the quick fix!

Awesome! I have a few remarks on the PR, will put them here:
https://github.com/ElOceanografo/MarginalLogDensities.jl/blob/e62bebc9c2b0639cee3593a3afd57d567ed856fa/src/MarginalLogDensities.jl#L127-L131
Why pick finite differences over forward as the default second order method? Forward over reverse would be much faster for large problems
https://github.com/ElOceanografo/MarginalLogDensities.jl/blob/e62bebc9c2b0639cee3593a3afd57d567ed856fa/src/MarginalLogDensities.jl#L132-L138
Why separate the sparsity detector, coloring algorithm and backend? With the ADTypes AutoSparse struct, the user can provide all of them at once, with less bookkeeping for you.
Also keep in mind that the DenseSparsityDetector is local by nature. To avoid accidental cancellations and incorrect sparsity patterns, you should make sure that your function has no value-dependent control flow, and pick a random point x for evaluating it.
https://github.com/ElOceanografo/MarginalLogDensities.jl/blob/e62bebc9c2b0639cee3593a3afd57d567ed856fa/src/MarginalLogDensities.jl#L212-L213
I'm not entirely sure that preparation is correct when you have different function objects such as two anonymous functions. I think it's better to define g = Base.Fix2(f, p2) for instance, and use it several times.

Also I don't think your test failures on nightly are related to DI. I think it's Reexport.jl interacting badly with the new public keyword

Most of these decision were made to err on the side of reliability (at least for now). If I'm showing this package to someone who is currently using R/TMB, I'd rather they encounter something that runs slower than they'd like, rather than something that breaks in a situation that they are used to having work. In my anecdotal experience, it's not uncommon to try some model that should work, but breaks because of some AD corner case, hence my conservatism.  What I really need to do at this point is work up a more comprehensive set of realistic problems and test them systematically for performance comparisons, and to find bugs.

Why pick finite differences over forward as the default second order method? Forward over reverse would be much faster for large problems

I made FiniteDiff the default because it is guaranteed to work with any inner backend, and is often not actually much slower than ForwardDiff if the Hessian is sparse enough.

Why separate the sparsity detector, coloring algorithm and backend? With the ADTypes AutoSparse struct, the user can provide all of them at once, with less bookkeeping for you.

True, not sure why I made it this way now. Will probably change it.

Also keep in mind that the DenseSparsityDetector is local by nature. To avoid accidental cancellations and incorrect sparsity patterns, you should make sure that your function has no value-dependent control flow, and pick a random point x for evaluating it.

Good to know.

I'm not entirely sure that preparation is correct when you have different function objects such as two anonymous functions. I think it's better to define g = Base.Fix2(f, p2) for instance, and use it several times.

Also good to know, and might explain some odd timings I've seen.

Closed via https://github.com/ElOceanografo/MarginalLogDensities.jl/pull/25

Also keep in mind that the DenseSparsityDetector is local by nature. To avoid accidental cancellations and incorrect sparsity patterns, you should make sure that your function has no value-dependent control flow, and pick a random point x for evaluating it.

Good to know.

The docstring for DenseSparsityDetector explains this in more detail:
https://gdalle.github.io/DifferentiationInterface.jl/DifferentiationInterface/stable/api/#DifferentiationInterface.DenseSparsityDetector


Marriage abroad Russia update July 22

https://govuk.zendesk.com/agent/tickets/4862149
https://trello.com/c/OKW1xllv/3899-getting-married-abroad-russia-uk-cni-exchange-process-fee
3 commits to add information about certificates of no impediment and fee payment to 3 outcomes.
Also:

reworked list of register offices
fixed missing link
reworked headers to deal with new information

Preview shared on Zendesk. Fact check amends received. Uopdating with fresh commits.
Comes down to 2 things:

Whole section about CNI validity seems off to them (the comments aren’t especially clear, but we’ve got to the bottom of them I think)
Payment info is inaccurate.

CHANGE
How long a CNI is valid for
Your CNI must be valid both:

in the issuing country

under local law in Russia

A CNI issued in England, Wales or Northern Ireland is valid forever. A CNI issued in Scotland is valid for 3 months.
If you live in the Isle of Man, Jersey or Guernsey, check with your local registrar to find out how long a CNI is valid for.
You must check with the local authorities in Russia to find out how long a CNI is valid under local law.
TO
^ A Scottish CNI is only valid for 3 months from the date it’s issued
REASON
It looks like we went over the top here - no need to mention that other CNIs do not expire - Scotland is really the exception, and we can get away with warning about that particular case.
Also no need to mention checking local validity/expiration - as they say, your CNI will become valid in Russia when you legalise or exchange it. Checking that it is valid is redundant.
So the whole section seems redundant.

It will cost £50.
You normally have to pay fees for consular services in the local currency – these are shown in the list of consular fees for Russia.
If you’re paying by credit card, you can use either MasterCard or Visa.

You’ll have to pay a fee. Check how much it will cost on the list of consular fees for Russia.
You can pay using MasterCard or Visa.
REASON
After pushing for the figure previously, they’ve now suggested (on previous GDS advice) that we just give the link. OK!
No messing about with local currency - it’s just mastercard and visa at this point.


Translator API always gives me 404

I'm trying to use translator API through a free trial subscription. After creating it, I set resource groups and add cognitive service to it. On that cognitive service page, I followed the "Quick Start" guide and got a pair of keys and ENDPOINT url.
Then I followed this document. It says an API key and endpoint are needed to use translator API. And I get them from RESOURCE MANAGEMENT>Keys and Endpoint.
https://docs.microsoft.com/en-gb/azure/cognitive-services/translator/quickstart-translate?pivots=programming-language-javascript
But I always get 404 status code from this API every time I send a request. Is there anything I do wrong? How can I use this API?
SubscriptionID: zzzzzzzzzzzzzzzzzzzzzzzzzzzzz
My code:
 const subscriptionKey = 'my-sub-key'; // There are two keys, key1 and key2. I use key1 here.
 const endpoint = 'https://japaneast.api.cognitive.microsoft.com/';
 const options = {
        method: 'POST',
        baseUrl: endpoint,
        url: 'translate',
        qs: {
          'api-version': '3.0',
          'to': 'en'
        },
        headers: {
          'Ocp-Apim-Subscription-Key': subscriptionKey,
          'Content-type': 'application/json',
          'X-ClientTraceId': uuidv4().toString()
        },
        body: [{
          'text': 'hello world'
        }],
        json: true,
 };
 request(options, function (err, resFromMicrosoft, body) {
        res.json(resFromMicrosoft);
}

Error response:
{
        "statusCode": 404,
        "body": {
            "error": {
                "code": "404",
                "message": "Resource not found"
            }
        },
        "headers": {
            "content-length": "56",
            "content-type": "application/json",
            "apim-request-id": "e2ae69cc-b93c-4db2-aef4-47096eb3ec61",
            "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
            "x-content-type-options": "nosniff",
            "date": "Fri, 19 Jun 2020 06:11:24 GMT",
            "connection": "close"
        },
        "request": {
            "uri": {
                "protocol": "https:",
                "slashes": true,
                "auth": null,
                "host": "japaneast.api.cognitive.microsoft.com",
                "port": null,
                "hostname": "japaneast.api.cognitive.microsoft.com",
                "hash": null,
                "search": "?api-version=3.0&to=en",
                "query": "api-version=3.0&to=en",
                "pathname": "/translate",
                "path": "/translate?api-version=3.0&to=en",
                "href": "https://japaneast.api.cognitive.microsoft.com/translate?api-version=3.0&to=en"
            },
            "method": "POST",
            "headers": {
                "Ocp-Apim-Subscription-Key": "my-sub-key",
                "Content-type": "application/json",
                "X-ClientTraceId": "8eedf6f4-db0c-45cb-a95b-92a2797df067",
                "accept": "application/json",
                "content-length": 83
            }
        }
    }

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

ID: ee674ddb-442c-b07e-70b6-8cd9321ecd2a
Version Independent ID: 522d27d5-4e6b-c02d-4a44-a7b0b57c9f74
Content: Quickstart: Translate text - Translator - Azure Cognitive Services
Content Source: articles/cognitive-services/Translator/quickstart-translate.md
Service: cognitive-services
Sub-service: translator-text
GitHub Login: @erhopf
Microsoft Alias: erhopf

@tinytortoise-dev Thanks for the feedback! We are currently investigating and will update you shortly.

@tinytortoise-dev If you have already created a new resource from azure portal you can use the endpoint name that is available on the resource page directly. For example:

You can also use it as mentioned in the document.

Try using the global endpoint in your code instead of the one given in "APIs and Endpoints".
So in this case, put https://api.cognitive.microsofttranslator.com as your endpoint.

@RohitMungi-MSFT @manikyabard I've already tried using the global endpoint. But got a bit different response:
{
        "statusCode": 401,
        "body": {
            "error": {
                "code": 401000,
                "message": "The request is not authorized because credentials are missing or invalid."
            }
        },
        "headers": {
            "content-type": "text/plain; charset=utf-8",
            "x-requestid": "TRAN.PS1P.8BE7.0622T1018.4F006B",
            "access-control-expose-headers": "X-RequestId",
            "x-content-type-options": "nosniff",
            "strict-transport-security": "max-age=31536000; includeSubDomains",
            "date": "Mon, 22 Jun 2020 10:18:10 GMT",
            "connection": "close",
            "content-length": "111"
        },
        "request": {
            "uri": {
                "protocol": "https:",
                "slashes": true,
                "auth": null,
                "host": "api.cognitive.microsofttranslator.com",
                "port": null,
                "hostname": "api.cognitive.microsofttranslator.com",
                "hash": null,
                "search": "?api-version=3.0&to%5B0%5D=en",
                "query": "api-version=3.0&to%5B0%5D=en",
                "pathname": "/translate",
                "path": "/translate?api-version=3.0&to%5B0%5D=en",
                "href": "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to%5B0%5D=en"
            },
            "method": "POST",
            "headers": {
                "Ocp-Apim-Subscription-Key": "my-sub-key",
                "Content-type": "application/json",
                "X-ClientTraceId": "7cedbf92-407f-45e6-9c93-be338bd6794a",
                "accept": "application/json",
                "content-length": 83
            }
        }
 }

And I want to make sure what subscription key is.

I suppose KEY1 and KEY2 are the subscription keys, right?
Here are the failed combinations:
My ENDPOINT & KEY1(404)
My ENDPOINT & KEY2(404)
Global Endpoint & KEY1(401)
Global Endpoint & KEY2(401)

@tinytortoise-dev It looks like you are using a common cognitive service resource and a key. Most the services have moved to using an individual resource type and if you can create and use the translator resource the steps mentioned in the documentation should work as is.

@RohitMungi-MSFT Would you share the exact document which mentions about the difference between a common cognitive service and an individual resource type, and the reason why a user cannot use translator API through the common congnitive service, if you don't mind. It would be also highly appreciated if you tell me how to create an individual resource because I'm not a master yoda of Azure services.

Sure, a common resource is used to consolidate the billing. Here are some details about single and multi service resources.
This documentation or quickstart uses a single resource so the steps mentioned are using those endpoints.

@tinytortoise-dev We hope you are able to proceed further using the translator resource with the correct endpoint. You can also refer the API reference for more help.  If there are no further questions regarding this matter, we will go ahead and close this issue.


CLICK step not working - for keyboard step to work need to make Chrome active window

Hi,
Wrote a simple (7 lines) script to test out CLICK step and it seem to fail - pls see below.

https://github.com/join
wait 5 seconds;
type user_email as ABC
type //input[@id="user_email"] as 123
click //input[@id="user_email"]
keyboard [ctrl]a
wait 10 seconds;

If CLICK works, keyboard statement would have (Ctrl-A) select/highlight the text in email address field. BUT nothing happens. I had ran the script multiple times and when I manually use my mouse to click on the email field prior to KEYBOARD step, the KEYBOARD with Ctrl-A works.
If CLICK fails due to wrong XPATH provided, then why would TYPE (at line 4) works. See screenshot.

Sorry @kelvinl22 I was away the past few months - https://github.com/tebelorg/RPA-Python/issues/144
Oh, the type and click (steps 4 and 5) will talk to Chrome directly to perform the actions. But they do not make Chrome browser in the foreground and in focus. That means any keyboard keystrokes will not be received by the browser, just like a normal human user interaction. If you do [ctrl]a when the browser is not the active window it will not work.
The solution for above is to add 1 more step, for eg click chrome_icon.png to make the browser the active window. Or click user_email.png to click on an image of the textbox to make the browser window active. This extra steps can be done at the start of the automation or just before the keyboard step. Most impt is make browser active in foreground.
Closing issue for now but please lemme know if any input or question.

Hi Ken,
Thanks for your reply.
So there are inconsistencies in the implementation of CLICK?
When click on input box element (such as click //input[@id="user_email"] ) of webpage, browser window would not be activated (active).
But when click on picture element (such as an image click user_email.png ) on same webpage, browser would be selected and active.
... because if seen from perspective of normal human user interaction, both above actions would require or have activated browser window.

Sorry @kelvinl22 I was away the past few months - tebelorg/RPA-Python#144
Oh, the type and click (steps 4 and 5) will talk to Chrome directly to perform the actions. But they do not make Chrome browser in the foreground and in focus. That means any keyboard keystrokes will not be received by the browser, just like a normal human user interaction. If you do [ctrl]a when the browser is not the active window it will not work.
The solution for above is to add 1 more step, for eg click chrome_icon.png to make the browser the active window. Or click user_email.png to click on an image of the textbox to make the browser window active. This extra steps can be done at the start of the automation or just before the keyboard step. Most impt is make browser active in foreground.
Closing issue for now but please lemme know if any input or question.

Sorry @kelvinl22 I was away the past few months - tebelorg/RPA-Python#144
Oh, the type and click (steps 4 and 5) will talk to Chrome directly to perform the actions. But they do not make Chrome browser in the foreground and in focus. That means any keyboard keystrokes will not be received by the browser, just like a normal human user interaction. If you do [ctrl]a when the browser is not the active window it will not work.
The solution for above is to add 1 more step, for eg click chrome_icon.png to make the browser the active window. Or click user_email.png to click on an image of the textbox to make the browser window active. This extra steps can be done at the start of the automation or just before the keyboard step. Most impt is make browser active in foreground.
Closing issue for now but please lemme know if any input or question.

Hi Ken,
Thanks for your reply.
So there are inconsistencies in the implementation of CLICK?
When click on input box element (such as click //input[@id="user_email"] ) of webpage, browser window would not be activated (active).
But when click on picture element (such as an image click user_email.png ) on same webpage, browser would be selected and active.
... because if seen from perspective of normal human user interaction, both above actions would require or have activated browser window.

Hi Kelvin, that's correct. The click step actually has 3 different implementations combined into 1. First is using web identifiers, next is using image snapshots, 3rd is using screen coordinates. For web identifiers, it is done using direct communications to Chrome browser, which Chrome will not allow instructions to make it active. That's the reference standard for web-browser automation, like any other automation tools.
For image snapshots and coordinates, they are doing using visual automation to replicate actual mouse movements and keyboard keystrokes. So doing a click on the Chrome browser will make it active like a normal user would.
The alternative of not combining all 3 into 1 step is having 3 separate steps click_web, click_image, click_coordinates instead of click. This way, all 3 steps are separate and there won't be inconsistency, but it comes at expense of making it harder for users to use, having to remember 3 steps instead of 1 step for click. And multiply that by the many other TagUI steps like read, snap, dclick and so on.
It is also a bad design if TagUI always use visual automation to click on Chrome browser to make it active at the start. Partly because it is hard to do that consistently on Windows, Linux and macOS and within each OS different screen resolutions. Also, using visual automation slows down the automation due to the requirement to load computer vision and OCR data into memory during starting. This will make all automation slower for all users even when visual automation is not needed.
So it's up to user to do an initial click using visual automation on the browser if they want to make it an active window.

Hi Kelvin, that's correct. The click step actually has 3 different implementations combined into 1. First is using web identifiers, next is using image snapshots, 3rd is using screen coordinates. For web identifiers, it is done using direct communications to Chrome browser, which Chrome will not allow instructions to make it active. That's the reference standard for web-browser automation, like any other automation tools.
For image snapshots and coordinates, they are doing using visual automation to replicate actual mouse movements and keyboard keystrokes. So doing a click on the Chrome browser will make it active like a normal user would.
The alternative of not combining all 3 into 1 step is having 3 separate steps click_web, click_image, click_coordinates instead of click. This way, all 3 steps are separate and there won't be inconsistency, but it comes at expense of making it harder for users to use, having to remember 3 steps instead of 1 step for click. And multiply that by the many other TagUI steps like read, snap, dclick and so on.
It is also a bad design if TagUI always use visual automation to click on Chrome browser to make it active at the start. Partly because it is hard to do that consistently on Windows, Linux and macOS and within each OS different screen resolutions. Also, using visual automation slows down the automation due to the requirement to load computer vision and OCR data into memory during starting. This will make all automation slower for all users even when visual automation is not needed.
So it's up to user to do an initial click using visual automation on the browser if they want to make it an active window.

Thanks for providing clarity. Totally understand the intention of combining 3 steps for better usability by user/developer - just like in many other scripting/coding languages, some are more explicit, while others a lot easier.

I guess there might be another reason why web automation standard does not bring browser to focus or find a way to make browser the active window before automating.
Traditionally, in a setup where computers used to be expensive, allowing automation to run on the web browser in background means a user can continue doing other work on the laptop while automation is running. If finding and implementing a solution to make it always active window, the laptop can't be used for the whole duration of the automation.

I guess there might be another reason why web automation standard does not bring browser to focus or find a way to make browser the active window before automating.
Traditionally, in a setup where computers used to be expensive, allowing automation to run on the web browser in background means a user can continue doing other work on the laptop while automation is running. If finding and implementing a solution to make it always active window, the laptop can't be used for the whole duration of the automation.

Hi Ken,
In the case where where input form field needs to be cleared prior to text entry, and KEYBOARD not appropriate (since it's not for background processing), what technique can we use?

Hi Kelvin, first way is using web automation type identifier as [clear] to clear the field. 2nd way is use visual automation method to first click on the textbox, then do something like keyboard [ctrl]a, keyboard [delete] to clear the field.
You can use image editor to make centre of textbox transparent so that no matter what text is inside it can be clicked visually. Alternatively, find some anchor label to do an offset to click. Example of getting (x,y) coordinates and adding offset - https://github.com/kelaberetiv/TagUI/issues/879#issuecomment-734014871


[suggestion] Re-evaluate deriving serde traits in no_sd contexts

Feature request
We probably have no need for Serialize/Deserialize in no_std contexts (triggers/validators).
Motivation

IMO, the Peer as a whole is an oversight if allowed on the smartcontract side: reason being that the Peer operations are registering and de-registering, which should be done rarely and with human oversight.

Moreover, any form of serde deserialization has to do with running code in the peer, (not with the smartcontract) which usually depends on std. I don't think it's inconsistent, it's just not exactly what we're doing at the moment.

Originally by @appetrosyan in https://github.com/hyperledger/iroha/pull/3373#discussion_r1169629137
Who can help?
No response

we should actually work on removing no_std support altogether from data_model


spidermonkey_91: remove platform restriction

Description of changes
Try removing the platform restriction on spidermonkey to build it and couchdb3 on darwin.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Dropping a note that I'm running into this platform restriction when trying to install libvirt on darwin right now as well (that package uses platforms.unix, but fails to build because of spidermonkey.

Dropping a note that I'm running into this platform restriction when trying to install libvirt on darwin right now as well (that package uses platforms.unix, but fails to build because of spidermonkey.

platforms.unix means it could or did at some point on unix platforms. It does not mean the package could not be broken on darwin throughout time.
Also please follow the contributing guide when naming your commits.

Hi @SuperSandro2000 this is just an experimental draft since I don't actually have a mac to test on. I was interested in seeing what could be done interactively since that worked remarkably well for the anaconda package manager pr, but I wasn't really sure if anyone cared about a dependent of spidermonkey on darwin in nixpkgs, so that's good to know @johnjameswhitman

A few quick notes from my end (happy to move this conversation elsewhere if that's preferred):

I just realized that libvirt depends on spidermonkey_78 so if we figure the issue out here for v91 might be worth replicating for v78.
Spidermonkey is a transitive dependency for libvirt -- is there a good way to find out the path between the two? I tried nix why-depends nixpkgs.libvirt nixpkgs.spidermonkey-78 but that seems to require building the package, which is blocking it.
I tried to pull your branch and build spidermonkey_91 on my local macbook and still got an error, but didn't have time to debug. I'll try and devote some more time to it tomorrow.

git clone -b spidermac --single-branch git@github.com:lostnet/nixpkgs.git
export NIXPKGS=~/path/to/cloned/nixpkgs
nix-env -f $NIXPKGS -iA spidermonkey_91

Which resulted in:
...
configurePhase completed in 33 seconds
building
running xcodebuild
error: no project found
builder for '/nix/store/rryspi9aacb12pxwvqxpjf1v44435kjf-spidermonkey-91.10.0.drv' failed with exit code 1
error: build of '/nix/store/rryspi9aacb12pxwvqxpjf1v44435kjf-spidermonkey-91.10.0.drv' failed

nix depends --derivation. It's through polkit. Which hopefully we'll just transition to duktape, once they have a release with support for that out. Although the next release will also have support for spidermonkey_91 iirc. In general, we're trying to get rid of 78, see #157874.

@johnjameswhitman After switching the xc away from hooks it indeed looked better and I've added libiconv for darwin failing on it for unexplored reasons and it seems to pass. If you can try this out and see if it would work I will look into the specifics of those dependencies and begin addressing @SuperSandro2000 earlier review comments and other things related to getting this out of draft.

Wooo, it works 🎉 thanks @lostnet!
➜  nixpkgs git:(spidermac) nix-shell -I nixpkgs=. -p spidermonkey_91

[nix-shell:~/projects/third_party/github.com/lostnet/nixpkgs]$ ls /nix/store/*spidermonkey*/bin
/nix/store/3wq4apjjlk6dz1hmzza841i72mw18hd3-spidermonkey-91.10.0-dev/bin:
js91-config

/nix/store/ibw7jxj3gwwp56j5hdsfzw3mm6p9jh4r-spidermonkey-91.10.0/bin:
js  js91

[nix-shell:~/projects/third_party/github.com/lostnet/nixpkgs]$ which js
/nix/store/ibw7jxj3gwwp56j5hdsfzw3mm6p9jh4r-spidermonkey-91.10.0/bin/js

[nix-shell:~/projects/third_party/github.com/lostnet/nixpkgs]$ js
js> console.log("hello");
hello
js>

@lostnet do you plan to finish it?

Hi @catap I haven't had much time for spidermonkey recently but will be happy to review https://github.com/NixOS/nixpkgs/pull/179822

Closed by #185928.


tags page doesn't show sidebar image

Need to tweak the theme to display the sidebar image in Tag page

Looks like the source of this bug is that the tag.hmtl files are all within a tag subfolder. Because of this the path to the base image, which is relative to the local folder, doesn't work.
I can either: use the makefile to copy an image/coverimage.jpg file to the tag subfolder, or, try to separate the template logic more, to use different paths depending on where the sidebar is being used.
The first is easier, but more hacky...

Found another, more elegant solution, to augment the sidebar call to create a fixed path changing:

to

8cf98bc0, closed.


Finalize ColorType enum

The ColorType enum is used to represent the meaning of subcomponents of Pixels and Decoders. However it has a few issues:

Many values of it are completely ridiculous and almost surely never used in practice. Why would anyone have an image with 157 bits per pixel BGR?
Parts of the library are unimplemented for certain color types. At very least it should be possible to convert between any pair of color types (filling any missing values with some reasonable default).
Adding enum variants would be a breaking change to the library, yet some relatively useful/common formats (like floating point RGBA) are missing. This needs to be resolved before a 1.0 release.

One option is to replace the enum with the something similar to the following (based on the supported modes in the Pillow library):
enum ColorType {
    // 8-bits per channel
    Palette,
    Luminance,
    LuminanceAlpha,
    RGB,
    RGBA,

    // Reversed channel order
    BGR,
    BGRA,

    // Exotic single channel bit depths
    U1,
    I32,
    F32,

    // High bit depth color images
    RGBA16,
    RGBA32F,
}

Questions
[ ] Do we want to include BGR / BGRA formats?
[ ] Should we include U1 (packed 1 bit per pixel, 8 pixels per byte)?
[ ] Should we define a smaller set of "core" types, say Luminance + RGB + RGBA + RGBA32F, and then focus on conversions to and between them?

What about some sort of two-tiered ColorType with possibly two different ColorType enums?
One for colortypes that can be used in ImageBuffer without conversion and failure, and another that can maybe be converted with a possibly expensive conversion.
This will allow ImageDecoder::colortype to return a larger space of possible colors, while keeping the rest of the library from having to support thousands of colortypes. This will also allow users to create their own Pixel implementation if they need a colortype that is not supported one a first-tier level.
If something happens with #793 this will be especially important.

@birktj I'm not sure whether having decoders return more colortypes would be an improvement since it creates more possible cases for any users of the library to handle. Perhaps we could make the ColorType enum contain only formats that are supported throughout the library, and then have a second enum with more exotic options. Each variant of ExtendedColorType (better name needed...) would have an associated core color type as well as a batch conversion function that converted a slice in the extended format to one in a core format. In this design, encoders would only support the standard core color types.

My idea was more that there wouldn't really be any conversion support to begin with. You would probably have an ExtendedColorType::to_colortype(&self) -> ImageResult<Colortype>, but the main reason for the type would be to accommodate the ones that would like to use the decoders directly and work with rarer colortypes  without coming in the way of the rest of the library.
I guess that if you want to use the decoders directly one of the reasons would be to get access to the arbitrary byte data, in that case it may be useful to have a larger set of possible colortypes. If you need full library support for your colortype you would simply call to_colortype and maybe get some sort of UnsuportedColortype error.
This may also help with all of the unimplemented! that are scattered around the current ColorType enum.

What should the library do if it is asked to open an image file with a color type that isn't one of the core formats? It sounds like you are suggesting that we just return an error rather than try to convert it, but I'm not sure I understand why. There are tons of formats like 4-bit RGBA or RGBX that can very easily and lossessly be converted to core color types, so why shouldn't we just do that?

Of course we should convert if we can. But for some formats adding conversion may be harder than others. So I was thinking you could add the enum now and then implement conversion progressively. Given all of the different pixel formats out there, adding support for everything at once is a huge undertaking so you want some sort of simple backwards-compatible way to implement conversion which I think this is.

Exactly this. We know about some exotic color formats existing, but offering all in the same api suggests they are supported equally well, or at least comparably. Like the read-only GenericImage, returning one of the exotic color types doesn't invalidate the usability of the decoder itself, but the library can not necessarily map all operations, sometimes returning a Err(Error::UnsupportedColor). While in the core set of color types every operation should work without error.

I started trying to convert image to have two separate color type enums. I very quickly noticed that not just decoders, but also encoders needed to operate on ExoticColorTypes to avoid loss of functionality (some encoders support 1 bit black/white images but the rest of the library doesn't). The only other uses of ColorType in the library are for our "poor man's RTII" on Pixel, and to indicate what type of data is stored in a DynamicImage -- which is itself already an enum over the color types it supports...

@birktj @HeroicKatora I tried out implementing a split color type enum, but didn't find the result all that compelling. What are your thoughts?
Through this process, I'm leaning more towards defining a non-exhaustive enum of color types with some programmatic way to see what functionality is supported for each color type + a required canonical form for to convert each color type to/from from the set: {L, LA, RGB, RGBA} x {u8, u16, u32, i16, i32, f32}.

I understand what you mean, CoreColorType isn't really used that much.
I think a non-exhaustive enum is good, but I would like some more variants,
personally I would really like cmyk.
Could something like this be used to convert between representations? It should
allow to convert between representations that are not memory backed while still
having to potential to be reasonably performant.
trait PixelConvert<To: Pixel> {
    fn convert<R: Read, W: Write>(from: &mut R, to: &mut W) -> ImageResult<()>;
}

impl<T: Primitive> PixelConvert<Bgr<T>> for Rgb<T> {...}

impl ColorType {
    fn can_convert(&self, to: ColorType) -> bool;
    fn can_convert_list(&self) -> Vec<ColorType>; // To enumerate?
    fn convert<R: Read, W: Write>(&self, other: ColorType, from: &mut R, to: &mut W) -> ImageResult<()>;
}

@fintelia I think the reason why it's not compelling enough is the lack of other color representations that do not fit in this list. Add rgb555 to the non core type etc, and I think the picture is much clearer. For a (too) long list, maybe take the opengl/vulkan buffer colors.

Regarding converters, I would have built the api close to ffmpeg.
struct Converter<From: Pixel, To: Pixel> { _priv: (), /* */ };

impl<From: Pixel, To: Pixel> Converter<From, To> {
    fn iterate<I: Iterator<Item=From>>(&self, iter: I) -> ToIter<I, To> /* impl Iterator<Item=To> */;
    fn io(&self, in: impl Read, out: impl Write) -> io::Result<usize>;
    ...
}

trait PixelConvert<To: Pixel> {
    fn converter() -> Convert<Self, To>;
}

@HeroicKatora I like that design though it would have to be in addition to a dynamically typed version like the one @birktj described. (You frequently don't know what type an image will be until you open it...)
Regarding CoreColorType, I'm concerned that anywhere we use it in the library will only constrain functionality rather than expand it. Decoders and encoders can't be limited to only taking core color types. Similarly, making implementations of Pixel return a CoreColorType limits which implementations of Pixel we can have, an issue DynamicImage also runs into. Perhaps all of those cases should actually use a normal ColorType, and the CoreColorType should be reserved only when doing conversions?
Another question: I've been assuming that the CoreColorType enum is exhaustive, meaning that users can match over all its variants, but it can't be expanded once we hit 1.0. Is this consistent with your thinking?

Decoders and encoders can't be limited to only taking core color types.

Not at all, but that would be a possibly clean boundary for ImageError::UnsupportedColor(_). Meaning, the non-abstracted version of the decoder can return a buffer with BroadColorType but the DynamicImage representation will return an Err(ImageError::UnsupportedColor(_)) when trying to import the image with the generic method, presumably with the error message hinting at this restriction. And also only when automatic conversion into one of the supported color types is infeasible.

Another question: I've been assuming that the CoreColorType enum is exhaustive, meaning that users can match over all its variants, but it can't be expanded once we hit 1.0. Is this consistent with your thinking?

Yes, more or less. CoreColorType is exhaustive while the other is not. Note that, of course, this doesn't make it impossible to add mutable buffers for other types, just that those would not be part of the 1.0 equivalent of DynamicImage.

So I understand, you are imagining that CoreColorType is really an enumeration over the color types supported by DynamicImage? And that Pixel and by extension GenericImage would allow color types outside the core ones (constrained by which ones could provide the full interface required by the Pixel trait)?

Oh right, making it non_exhaustive is a form of finalization ^^


Many engine jobs cancelled due to bot update timeout

Example https://ci.chromium.org/ui/p/flutter/builders/prod/Linux Production Engine Drone/120529/overview
Marking P0 because this is blocking engine -> framework rolls, and running presubs on PRs, so no one can land changes at the moment.

GoB team is working on mitigating fixing the issue. This has been an ongoing issue since last Friday.

I am keeping communication open with gob team, will provide updates as they are available.

@zanderso can you please provide the link as well for the dashboard image you have in the description.

https://user-images.githubusercontent.com/6343103/232811680-4a5b0bfc-5ae6-4154-be3f-8a9a6459f614.png

LInk to dashboard origin: https://flutter-dashboard.appspot.com/#/build?taskFilter&authorFilter&messageFilter&hashFilter&showMac=true&showWindows=true&showiOS=true&showLinux=true&showAndroid=true&showStaging=false&repo=engine&branch=master

Reducing the priority on this issues, since times are recovering. Re runs on some previously failing builds are now working as well, e.g.  https://ci.chromium.org/ui/p/flutter/builders/prod/Linux linux_web_engine/850/overview
Will update with any information provided by the GoB team about the event.

For gob quota increases that might help with some of the issues: https://b.corp.google.com/issues/278745928

Another tracker to address dart quotas: https://b.corp.google.com/issues/278749670

Seeing this again. It blocked rolls over the weekend, and blocked the most recent Dart -> Engine roll here: https://github.com/flutter/engine/pull/41447. Sorry to bump priority again, but I suspect this will be impacting the team.

@godofredoc Are the slow git checkouts related to the service accounts not being added to the right GoB hosts? I see the slow checkout on https://github.com/flutter/engine/pull/41447 was from a chromium.googlesource.com host. Should we be setting up mirrors in flutter.googlesource.com where it's easier to manage the service accounts, like you were saying last week?

Adding the service account as readers to the GoB hosts didn't help.
New things that were tried out:

Update depot_tools to the latest version which include fixes to deal with http connection timeouts in bot_update recipe module.

https://flutter-review.googlesource.com/c/recipes/+/42520 rolled depot_tool to TOT
http://b/279481291 confirmed things are stabilizing on GoB side.
Issue hasn't reproduced since last night:

It looks like we're in good shape. Closing as presumed fixed.


About the One scale model problem?

HI, what is the one Scale model in Table 2? How do you construct the One scale model?
Can you share the One scale model code ?
Thks.

Thank you for your attention. As for One Scale model, we use the maximum disaprity range(maxdisp=16) for all views to construct cost volumes. So for all cost volumes, their D in the dimension(B×D×H×W) is the same. And then we use 2×SimpleBottleneck(corresponding code) + volumegate(corresponding code) + 4×SimpleBottleneck for aggregation. I'm really sorry that I can't find the code. I hope my description can help you.

Hi, Sorry for trouble you.
what is 'all views' mean? 8 views in horizontal and vertical EPI  or 81 views?
maxdisp range means D ==33?

Hi, Sorry for trouble you. what is 'all views' mean? 17 views in horizontal and vertical EPI or 81 views? maxdisp range means D ==33?

Yes, the input view (2-streams) and the channel number of features (16) have been selected in Table 1. For maxdisp=16, D is 33 as you said.


Just joined and player data nonexistent

My roommate just found this and was like you join. when i did it refused to display anything about my profile. i have tried to refresh the page and the refresh button but it still does not load my game data. i would love to check this out more but cant because it refuses to load anything. i use the same account name.

@scottcandy34 It looks like you haven't enabled "Expose Public Match Data" in your dota 2 settings.
It should be under options -> advanced options -> social -> Expose Public Match Data.
Once you enable that you should be able to hit the refresh button on your profile again and then matches will start showing up in a little while.

@coreymaher Thx that fixed it right up....


MSID: 88049 Version: 2 DOI: 2<IP_ADDRESS>0833

[PLACE MANUSCRIPT AND EDITOR DETAILS HERE WHEN AVAILABLE] See step 3
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[ ] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v1/by-publisher/elife/get-by-manuscript-id?manuscript_id=88049)

or (only one should be ticked. remove other from description.)

[ ] Confirmed with Ted at bioRxiv that MECA archive is available

Send the following email to Ted and wait for his reply.
Hi Ted,

Please can you prepare the preprint MECA for 10.1101/2<IP_ADDRESS>0833

Thanks

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/88049/v2)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[ ] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>0833)
[ ] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/88049/v2/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/88049)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/88049

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/88049

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/88049/v2/88049-v2.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/88049)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

@KJT08, is this a revised RP?

@fred-atherden yes it is

Author missing suffix


chore: update java-uuid-generator from 4.0.1 to 4.1.1

Updates com.fasterxml.uuid:java-uuid-generator from 4.0.1 to 4.1.1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.fasterxml.uuid", artifactId = "java-uuid-generator" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.fasterxml.uuid", artifactId = "java-uuid-generator" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #178.


Need an API to completely "null" out a date

There is no clear method like clear and doing update('') or update(null) result in using the initial date or now it seems. I was implementing Dependent pickers but the i need the "to"/"end" date to only have a value given that my "type" (a select field) is a certain value, otherwise I need to null it out. (I also tried just nulling the form field with $('#myfield').val(''))

Non issue. must have been a JS compilation error. Using $('#myfield').val('') seems to work.

Hey Ant! This is Difster from back in Tribe days. I logged in Yahoo messenger after years of neglect, saw your name on my list and thought I'd look you up. FYI - I'm also a programmer now after years of doing IT. Drop me a line<EMAIL_ADDRESS>I'm pretty easy to find on FB too.


WebJobs new-project template not displayed in VS2017 15.9.6

re: 'Use the WebJobs new-project template for a WebJob linked to a web project'
This instruction is not valid:
'Right-click the web project in Solution Explorer, and then click Add > New Azure WebJob Project.'
No such 'New Azure WebJob Project' menu item is displayed in VS2017 15.9.6 as illustrated in the article.

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

ID: 2b7b9f5c-4610-8cea-28d4-fea8ea03e7e1
Version Independent ID: cc09b46d-cd40-45e8-ed45-7a0e3bf4b100
Content: Develop and deploy WebJobs using Visual Studio - Azure
Content Source: articles/app-service/webjobs-dotnet-deploy-vs.md
Service: app-service
GitHub Login: @ggailey777
Microsoft Alias: glenga;david.ebbo;suwatch;pbatum;naren.soni

@rccnw, Thanks for the question! We are investigating and will update you shortly.

@AjayKumar-MSFT please assign to me, I think that this article is likely out of date. Thanks @rccnw for reporting this.

@ggailey777, Sure, thank you for checking on this!

Update: sorry for not including important fact: I was in the context of an ASP.NET Core web app. I see that the article is correct for a Full framework web app.
On Wed, Feb 6, 2019, at 1:14 AM, AjayKumar-MSFT wrote:

@ggailey777 https://github.com/ggailey777, Sure, thank you for checking on this!

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MicrosoftDocs/azure-docs/issues/24313#issuecomment-460951340, or mute the thread https://github.com/notifications/unsubscribe-auth/ADDC6eXkJiL3DaWU1DVttfGNWAU8Q4uXks5vKp0BgaJpZM4akK8F.

@rccnw, Thank you for sharing more details on the query, @ggailey777, Is having a looking this issue further.

@rccnw I was just going to say that I think that the tooling doesn't yet support ASP.NET Core apps. I am checking with the Visual Studio folks to see what the plans are here. In the meantime, I am clarifying the article.

@rccnw and @AjayKumar-MSFT on checking with the Visual Studio tools folks, it looks like the changes made to support Core are a bit more extensive than I realized. The good news is that when you publish a .NET Core console app to Azure App Services, and it gets published as a WebJob. The work to update the article is being tracked internally (1446722). I will update this thread when I have a new PR for this open.

I think that this issue has been addressed. Please reopen if there are still issues with the article. #please-close


fix append error for distribution csv - 0.8

In the case where nothing is logged for the
interval (i.e. one of the percentiles is None),
simply skip recording the metric

@matthiaslee mind looking at https://github.com/appian/locust/pull/8


Show aliases

Hi, I got the allow aliases working with a custom domain.
Is there a way we can show a dropdown on front-end where visitors can choose which domain alias they want to use?
Thanks

@mediageni The intention of this plugin is simply to allow short links created and shared with an old domain to continue to work even after the domain has changed.  In other words, both old.domain/link and new.domain/link will work.


missing twitter service

don't know if intentional but missing /services/twitter file

I just need to add support for multi-server support on the twitter service. Got the code just need to remove the hard-coded variables

ah okay my bad D:

This has now been added


Added DNX support in the NancyBootstrapperLocator

The following changes were made

Now supports DNX through the ILibraryManager
Updated so that only Nancy-referencing assemblies are returned (for both platforms)

Once this pull-request is in, and the one for a DNX compatible IAssemblyCatalog, then the ILibraryManager code, for getting Nancy-referencing assemblies, can be refactored out to a helper and used in both places. Right now there is a bit of code duplication going on

LGTM :shipit:


Fix IDEAL

Description
Order keeps in Processing state.
Order gets wrong quoteId.
Changing getQuoteId() to getLastQuoteId() fixes the issue.

Hi @rrodrigonuez,
Thanks for the PR! We will investigate this if getLastQuoteId is indeed better, maybe you can provide us some more info about the difference between getLastQuoteId en getQuoteId ?
Regards,
Rik
Adyen

Hi @rrodrigonuez
We are unable to reproduce this bug. Could you please provide more context?
The $quoteId is set to null at the end of the redirect function:
$session->setQuoteId(null);
so the only way this would be empty is if the redirectAction() function is called twice. Is this the case for you? The purpose of this check is to prevent two requests for the same order (for instance if the back button is used) and thus creating two offers. Your solution will populate the $quoteID var but will not prevent this duplicate request.
Regards,
Scott
Adyen

Hi @rrodrigonuez,
I'm going to close this issue as there is no response. If you have any issues, please let us know.
Thanks,
Scott
Adyen


df: always round up usage percentage (#3208)

Always round up the usage percent. For example, 25.1% is now rounded to 26%, previously it was rounded to 25%.

Thanks
the failures are unrelated


Converter .webidl -> .wit ?

Is it planned to create .idl -> .wit converter? It seems that it can be useful to focus only on this .wit format and get js glue and webidl together (for languages that didn't implemented webidl integration yet).

Can you clarify what ".idl" format you're referring to? Do you meant WebIDL? Or perhaps some other idl of some kind?

Yes, WebIDL, here an example of it https://hg.mozilla.org/mozilla-central/file/tip/dom/webidl/WebGLRenderingContext.webidl

Ah ok, at this time there are no plans for this, but it's something that I think would be worthwhile at some point. There's tons of WebIDL for the web and having some way to interoperate that with interface types is highly desired. I don't know the exact shape this would take but it probably won't precisely be a *.webidl to *.wit converter, I think there's a lot of other various subtelties which need to be handled, probably with a specific JS glue layer or something like that.

I'm going to close this for now as there's no immediate plans to implement this, but I think it's still going to eventually be wanted for JS hosts where it's a nice way to give components access to web APIs. Whether or not it's specifically a WebIDL to *.wit converter, though, I'm not sure.


Break the linters and the tests into two CI jobs

The linters doesn't have to run on every Python we support. The tests must run on every OS we support.

I'm gonna see if the docs should be updated, and then I'll merge.

Nope, seems like merging now is ok :)


[5.0] Add new Verify Post Size middleware

So I was doing some AJAX file uploading, and kept getting random TokenMismatchException errors. After much debugging - I realised the issue related to post_max_size.
If the file I was attempted to upload was greater than my post_max_size - PHP clears the super globals of $_POST and $_FILE - but still sends the server the POST request (which is now empty).
The problem is that the empty post hits Laravel, and when doing CSRF detection there is no _token - so you'll get a TokenMismatchException, leading you on wild goose chases as to why your forms are not sending correct tokens.
It also means that the user will be shown an incorrect error. Rather than be told they are uploading a file that is way to large - it just throws a 500 error with the wrong message.
I did some investigating - and there is a way to detect this situation. I propose we include this as part of the HTTP Middleware.
Originally mentioned here: https://github.com/laravel/framework/issues/8202

I realize that using laravel's classes like Request is important instead of super globals but why is that exactly?

I realize that using laravel's classes like Request is important instead of super globals but why is that exactly?

You say you realise that it's important, then ask why - that's not realising it's important?
The reason is that you MUST NOT be making assumptions about the global state of php. Encapsulating all information about a request allows you to serve multiple requests from a single php instance, for example, during testing.

Ok - I've made some changes. There was actually a bug - so this fixes that.
The getPostMaxSize() function is drawn from the official PHP docs on how to get the value as bytes: http://php.net/manual/en/function.ini-get.php

Reading further down the php.net page - there is an optimised function. Given we'll be calling this on every call - thought might as well switch to that.
I'll squash all this to one commit once everyone is happy (and assuming Taylor even wants to accept ths).

ping @GrahamCampbell - is that better?

Fix the two remaining things and squash to one commit please.

Sigh... I'll fix this - I obviously did something wrong squashing to one commit... working on it now...

You rebased against the master instead of 5.1 by the looks of it.

You rebased against the master instead of 5.0 by the looks of it.

Yeah - my bad. Still learning Git properly. Anyway - for simplicity I've done another PR - https://github.com/laravel/framework/pull/8215