LSM performance degrades significantly over time

Setup Tigerbeetle cluster inside docker based on this Page: https://docs.tigerbeetle.com/operating/docker/  with a clean, fresh data storage.
Create 10k accounts using Golang client (v0.16.4)  (with flag History:true)
Create a for loop making 1 transaction to tigerbeetle at a time (i.e. batch size = 1, concurrency = 1)

After cluster is Initially created latency distribution is following (ranges in milliseconds, measurement sample size = 1000);
1-6.7      84.9%  ██████████▏  849
6.7-12.4   7.2%   ▉            72
12.4-18.1  3.6%   ▌            36
18.1-23.8  0.3%   ▏            3
23.8-29.5  0%     ▏
29.5-35.2  1%     ▏            10
35.2-40.9  1%     ▏            10
40.9-46.6  1.3%   ▏            13
46.6-52.3  0.5%   ▏            5
52.3-58    0.2%   ▏            2

Create 1M transactions in TB via 1000 batches of 1000 transactions
Repeat the measurement (batch size = 1, concurrency = 1)
Now latency distribution looks like following (ranges in milliseconds, measurement sample size = 1000);

1-87.1       53.1%  ██████████▏  531
87.1-173.2   41.1%  ███████▊     411
173.2-259.3  4.1%   ▊            41
259.3-345.4  0.8%   ▏            8
345.4-431.5  0.2%   ▏            2
431.5-517.6  0.2%   ▏            2
517.6-603.7  0.1%   ▏            1
603.7-689.8  0%     ▏
689.8-775.9  0.1%   ▏            1
775.9-862    0.3%   ▏            3

Docker stats:
fd603a23591d   wallet_tigerbeetle_1_1   16.67%    2.396GiB / 13.34GiB   17.96%    0B / 0B       3.4GB / 27.2GB    10
8f0ddc1dc408   wallet_tigerbeetle_2_1   16.59%    2.405GiB / 13.34GiB   18.02%    0B / 0B       3.41GB / 27.2GB   10
ebf04163809a   wallet_tigerbeetle_0_1   17.12%    2.388GiB / 13.34GiB   17.89%    0B / 0B       3.39GB / 27.2GB   11

As you see TigerBeetle has written 27GB! of data for 1 million transactions inserted (1000 batches of 1000).
It also consumes 15% CPU on 6-core machine for making like 10 RPS.
If I make just 1000 transactions (1 transaction in 1 batch) TigerBeetle will write to disk additional 17! GB of data. (instead of 10KB - size of 1000 transactions)
CONTAINER ID   NAME                     CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O         PIDS
fd603a23591d   wallet_tigerbeetle_1_1   16.63%    2.355GiB / 13.34GiB   17.65%    0B / 0B       3.46GB / 44.5GB   11
8f0ddc1dc408   wallet_tigerbeetle_2_1   16.28%    2.362GiB / 13.34GiB   17.70%    0B / 0B       3.48GB / 44.5GB   10
ebf04163809a   wallet_tigerbeetle_0_1   17.41%    2.348GiB / 13.34GiB   17.60%    0B / 0B       3.46GB / 44.6GB   10

The sizes of databases are following:
du -sh data/*
8,1G	data/0_0.tigerbeetle
8,1G	data/0_1.tigerbeetle
8,1G	data/0_2.tigerbeetle

go version go1.21.0 linux/amd64
lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 21.1
Release: 21.1
Codename: vera
cat /etc/os-release
NAME="Linux Mint"
VERSION="21.1 (Vera)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 21.1"
VERSION_ID="21.1"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=vera
UBUNTU_CODENAME=jammy

If I make just 1000 transactions (1 transaction in 1 batch) TigerBeetle will write to disk additional 17! GB of data. (instead of 10KB - size of 1000 transactions)

We do have known space amplification issues with partially full batched! Applications should try to submit full batches, if possible.
That being said, we do have some mitigations in place for this already, and this seems unexpected! Although I am wondering if 0.16.4 predates that?

It also consumes 15% CPU on 6-core machine for making like 10 RPS.

Right now, TigerBeetle is expected to more or less pin one CPU core regardless of load.

Now latency distribution looks like following (ranges in milliseconds, measurement sample size = 1000);

This looks roughly expected --- we are at hundreds of ms per batch worst case at the moment.

@matklad Thanks for clarifying the expectations!

I really don't know why you decided to reinvent your own wheel with storage.

That's an excellent question! The main explanation is that any database is a result of:

one hour napkin sketching at the start to figure out the right high level design, and
a decade of work to fill the sketch with all the details to make it as fast as the design allows.

We do think that TigerBeetle design is qualitatively better for tracking financial transactions! We are at the start of our building-the-database decade, but we are sure in the end result.
These two things about design explain why we are not just slapping Raft on top of SQLite:

We want TigerBeetle to be resilient to disk corruption. There were some discussions recently about how SQLite doesn't use checksums. This makes total sense for SQLite, which is a single-node embedded database, its just not much you can do if your single disk goes toast.  But, if you are building a replicated database, it is just wasteful to not take advantage of cluster redundancy to repair disk faults.
But fixing that requires that the storage layer and consensus layer are aware of each other, you can't just compose this out of SQLite and a Raft library. See this paper and this talk for details.
In terms of code, the fact that this callback doesn't have error case is what motivates quite a bit of design here!

We want TigerBeetle to do accounting really fast, and for that we need to move business logic over to the database, as SQL-mediated row-locks across network are the bottleneck for highly-contended workloads. This part we could've done by building on top of some other storage engine, but we also want to have our storage resilience!

So these are the reasons why we do everything from zero, rather than assembling existing building blocks: we need different bricks to get to the level of safety and performance we want.
That being said, it takes a lot of work to build storage engine. Today, of course PostgreSQL, RocksDB, SQLite are more optimized, more featureful, and have more bells and whistles.
It is totally fine if TigerBeetle doesn't quite fulfil your requirements at the moment, you don't have to use it. If the PostgreSQL ledger works for you today, go for it!

@matklad I looked at the paper and watched the video. The ideas are good and make sense, but there's a big gap between what's advertised and what is actually implemented in the code.
I hope this gap will close itself over time and the issues with the TigerBeetle are only limited to performance and not to reliability of durability.

I wouldn't waste my time bothering you with all those issues on Github if the product would have performed the way it's advertized on website.

We appreciate the 4 issues you opened. To be fair, 3 of the 4 were opened in the last 2 weeks and are already closed:

#2468 came down to intentional misconfiguration of TigerBeetle, passing in the network topology intentionally in the wrong order, as you described in the issue ("If order of Tigerbeetle hosts is incorrect - it will always have high latencies"). While TigerBeetle is able to work around this, you have to expect increased latencies if you're giving TigerBeetle the wrong addresses for machines in the cluster.

#2467 and #2448 were the result of either running more clients than the maximum allowed limit, or else running an extremely old client version (0.15.3) against an incompatible server version (the release notes document version compatibility where applicable). Nevertheless, the TigerBeetle client detected both operator misconfigurations and panicked the client with a session eviction error. This behavior of client session eviction is documented. We've furthermore added a callback in #2484  to let you handle these client session evictions yourself even if there's no chance the client will be able to connect.

In other words, these are not discrepancies from what is advertised, but rather a result of intentional misconfiguration or not following the docs. In addition, your CTO emailed us about this list of issues, and we provided similar explanation.

Right now TB performs so bad that I have to choose other solution, even with a really huge desire to try out TigerBeetle in prod.

The only remaining issue here then is this specific issue of space amplification for a cluster under low load, where batch sizes are being artificially and intentionally limited to 1 transfer per batch (i.e. batch size = 1, concurrency = 1).
While we're interested in this from a space amplification perspective, and again, while we're looking into it and will likely resolve it soon (adding a hard guarantee w.r.t to space amplification in TB's LSM-Forest is actually work we'd already planned), from a performance perspective this is not representative of a cluster under load, where batch sizes will naturally approach 8K transfers per batch.
If you believe that another system is able to provide better debit/credit performance than TigerBeetle when under load, for example, able to process 10 billion debit/credit transfers (and not simple key/value inserts—comparing apples to apples) with better performance, then you should use it!

I still think you can close this gap simply by using RocksDB as a storage layer. Yes - ideally you want to just recover the sector that was corrupted by using your own storage layer and in theory it will be faster and better. But in reality - It's much easier to have simple system and just to throw hardware at the problem

In fact, it's not only a matter of cost, but also correctness. The literature has shown that combining Raft and RocksDB in the way you describe is not safe. For example, a single sector error on one machine can propagate through the consensus protocol and lead to global cluster data loss. This is why TigerBeetle goes to such lengths, to co-design the global consensus protocol and local storage engine. We would rather get the foundational design right, and we're happy to invest in it for the long term.
For this reason, we're more likely to resolve this specific issue soon with further space amplification optimizations, than to replace TigerBeetle's entire local storage engine and global consensus protocol with non-deterministic, non-storage fault-tolerant, dynamic implementations, which were explicitly not designed to provide the same guarantees that TigerBeetle provides.
In the interest of mutual respect, I'm going to lock this issue until the issue of space amplification under low load is resolved.


BETA Strategy Room Profile

as we can see thru the pics, here is my report

Player ID not listed properly (asdasd)
Player Server is Unknown Server
Win rate for Sorties is 0.96 where areas mine is 96%, suspected wrong calculation and it divide by 100
Win rate for Sorties, PvP and Success Rate for Expedition is back to 0% if back to main menu

ah yes, thanks for the report.
though even after fixing this, the problem remains that we usually wouldn't get the "rate". it's only loaded when you go to the in-game admiral profile screen. I also found out that the real "rate" is not always the percentage between the win vs lose counts, so we can't manually do the math, (something to do with one being the total throughout your career, and the other being for this month only)
though I will note that when you go back to home port screen, we should not revert it back to zero if it was already loaded in the profile screen


[core] Unify the ThrottlingRetryPolicy in core and app-configuration

As of PR #6431 we now have two implementations of the ThrottlingRetryPolicy - one in core-http and one in AppConfiguration.
We probably want to discuss how to properly merge them in a way that is non-breaking.
The differences between them are:
.catch vs .then:

AppConfig's ThrottlingRetryPolicy attaches itself to the .catch of the returned promise
(internally the HTTP client generates a 429 which causes a RestError to be thrown).

Is this different than what other clients are getting? Is AppConfig doing something incorrect here?

core-http attaches itself using .then which doesn't fire off for appconfig

headers

AppConfig's policy checks Retry-After and two additional headers (although we probably only need to check one)
core-http's only checks Retry-After

I have enough tests that this is simple enough to swap out and ensure it works in AppConfig but I'm unsure about the rest of the codebase.
In both cases the throttling retry policy doesn't have a retry limit. We probably want to add that in while we're working on this.

CC: @ramya-rao-a , @johanste , @bterlson , @daviwil

As mentioned in another thread, I think the distinction between catch/then handling in the policy is likely not intentional. It's possible appconfig is doing a weird thing by mapping the 429 error code, but it seems reasonable to me and so I think the policy should handle both .catch and .then. But I would like @johanste to weigh in once he's back tomorrow (I think?).

It looks like core-http's ThrottlingRetryPolicy is also looking for StatusCodes.TooManyRequests so if that status only ever gets returned as a Promise rejection then we need to add .catch() logic there anyway to support it correctly.

Adding @xiangyan99  - looks like Python might need to change something as well, so just keeping him apprised of what's going on here.

@xirzec, @jeremymeng Do you think this should be part of v1 or v2 of core-http?

I think this works better in v2 personally

Agree it's better to do as part of v2.

We'd like to have a unified retry policy that allows some degree of customization.
Here's what other languages are doing. They all have a single retry policy.

Java

Java has a single retry policy which handles retrying on network errors and specific status codes. Underneath that we have retrying strategies, fixed and exponential backoff as implementations but a customer could provide their own, where the maximum retry count is configured for the specific retry policy.

.NET

.NET has a single retry policy that doesn’t allow plugging in retry strategies. The retry count is configured on retry options.

Python

Python has a single retry policy
We expose some configurable settings including total_retry, retry_mode, retry_on_status_codes, etc.

C++

C++ also has a single retry policy, with retry options for max retries, what status codes are retriable, etc.
We have a way (via the context) to track and expose the RetryCount from within the policy that other internal policies like storage’s (switch to secondary host) can use to keep track of how many retries have happened.
Someone can derive from that retry policy to override whether to retry on a transport failure, and which response status codes to retry on, if needed.

Now that the retry policies have been refactored to re-use key components under a new unified retryPolicy, we will be able to reduce most of the retry code on App Config.
How it would happen is that App Config’s throttling try policy here: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/appconfiguration/app-configuration/src/policies/throttlingRetryPolicy.ts would be written similar to how the throttling retry policy is written in the new core, here: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/core/core-rest-pipeline/src/policies/throttlingRetryPolicy.ts#L38-L45
However, we will only be able to do this after App Config migrates to the new core: https://github.com/Azure/azure-sdk-for-js/issues/15809 which is scheduled for the February Milestone. Therefore, I’m moving this issue to the February Milestone as well.

I haven’t seen updates on https://github.com/Azure/azure-sdk-for-js/issues/15809 , so I’m moving this to the next milestone.

Moving it two milestones ahead to give #15809 some time.

https://github.com/Azure/azure-sdk-for-js/pull/20817


[question] can nestedtext do id reference like YAML?

Example in YAML
bill-to: &id001
    given  : Chris
    family : Dumars
ship-to: *id001

No.

In other words, there is nothing in the format itself that implements ID references. There is nothing that stops you implementing it in the underlying application.


Tangle in /editor/

ref #140874

This is now broken up:

If you want to add a background color to the area on the left that displays the number of lines in the overlay, which property should be set in defineTheme


Full width onboarding carousel

Onboarding carousel frame updated to full width, while maintaining cell sizing across idioms

Can you provide a screenshot and/or screen recording for this?

Of course!


Only update the enqueued key on save if there isn't already one

I noticed that if a cron job is resaved within ~30 seconds of when it supposed to be enqueued next it won't be enqueued. The resave in my case is a result of the application being restarted and the initializers being triggered. The failure to enqueue appears to be caused by line 417 in job#save.
I am curious about the need to set the job_enqueued_key on save, but my assumption is so that new jobs aren't immediately queued. Let me know if my assumption is incorrect.
Thanks.

Coverage decreased (-0.6%) to 92.628% when pulling 424ec3780fda9812f25b9c244adcabd378f5b438 on MMartyn:fix-resave-issue into 9c7f2e5a662b87e7ead6ede764ff94beffbf33da on ondrejbartas:master.

@MMartyn your assumption is correct. And your code looks good, but travis is failing. I would like to see this code merged, can you update code so it is not failing?
Thanks.

@ondrejbartas Sure. I am not sure why it is failing in travis as it passes locally, but I'll see if I can track it down.

Coverage increased (+0.3%) to 93.59% when pulling e733649d81d6bb81faf1aa1309f1150b2048d96e on MMartyn:fix-resave-issue into 9c7f2e5a662b87e7ead6ede764ff94beffbf33da on ondrejbartas:master.

@ondrejbartas Not sure if you get notified. Just in case you don't travis passed. Thanks.

@MMartyn 👍


Fix mongodb

Description
On 1.17.0 release: Drop support for PHP 7.2 and 7.3,
https://pecl.php.net/package-changelog.php?package=mongodb&release=1.17.0
1.16.2 For PHP 7.2 and 7.3
Motivation and Context
Fix mongodb
Types of Changes

[x] Bug fix (non-breaking change which fixes an issue).
[] New feature (non-breaking change which adds functionality).
[] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Definition of Done Checklist:

[x] I've read the Contribution Guide.
[] I've updated the documentation. (refer to this for how to do so).


mv cov merger outside of loop

Discussed via email with @wasade and tested in qiita-rc and qiita. Merging.


Added traceflags enricher

Fixes https://github.com/RehanSaeed/Serilog.Enrichers.Span/issues/245

Added a new enricher to support ActivityTraceFlags.

This looks good. Happy to accept it. Can we please add some tests for the new functionality?

Thanks for the comment Rehan! I forgot to add the link to the issue and thanks for fixing that. I just added the unit tests. Let me know if you'd like to see more test cases.


empty OU and date changes on UI

DigiCert will deprecate the Organizational Unit field (simply ignoring the field from the requests). To honor this change and make it transparent to users, Lemur will not render this field as empty in UI and make it optional form input

Considering the limit of 397 days of validity of certs issued by Public Issuers ( #3081 ), the date picker from UI is now changed to show dates only within the allowed range - PUBLIC_CA_MAX_VALIDITY_DAYS (default 397). For any other CA which is not configured as Public, Lemur will allow selecting dates within DEFAULT_MAX_VALIDITY_DAYS.

Coverage increased (+0.02%) to 57.919% when pulling 5b96b3a0320d6e446a952ad97c51bd3ad0addd3e on charhate:pub_issuer into 14b73b73cfce5463a96d0ef1f8aa9846ddf5b4d4 on Netflix:master.


Connect-AutopilotIntune' is not recognized

In the step 3 of Create the JSON file i am receiving this error, has it changed or something ?
PS C:\WINDOWS\system32> Connect-AutopilotIntune -user<EMAIL_ADDRESS>Connect-AutopilotIntune : The term 'Connect-AutopilotIntune' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:1

Connect-AutopilotIntune -user<EMAIL_ADDRESS>
  + CategoryInfo          : ObjectNotFound: (Connect-AutopilotIntune:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

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

ID: 17bfe927-f7b7-608b-8537-5c2274ccdced
Version Independent ID: 5dd9abca-92d9-fbb2-6796-d1f6b9ab3c8b
Content: Windows Autopilot for existing devices
Content Source: windows/deployment/windows-autopilot/existing-devices.md
Product: w10
Technology: windows
GitHub Login: @greg-lindsay
Microsoft Alias: greglin

Hi
Connect-MSGraph should be used instead.

@officedocsbot assign @jvsam

Hi @mustafafarooq, our apologies for the inconvenience. We would love to help you with your concern, however, this GitHub-based documentation feedback system is intended to help improve the quality of the technical documentation of Microsoft Docs. What we recommend is to open a service/support ticket in your tenant to get immediate assistance. There are also other support resources that you can explore like the Microsoft Tech Community or the Technet forums where you can post your question and get help from the community. You may also want to check this:
The term is not recognized" error when you try to run Azure Active Directory for Windows PowerShell cmdlets
Kindly keep us informed if you find any relevant information that can be incorporated into this documentation.
@CyclopsHelpdesk could you please clarify your comment? Do you mean instead of using Connect-AutopilotIntune, use Connect-MSGraph? Is this a workaround when you get that error? Thanks for the information.

I'm seeing this error also. The error is raised at step 3 of the "Create the JSON file" section .
Using Connect-MSGraph instead does indeed work.

My concern was if the cmdlet doesnt exist as the error indicates, then what is it doing here in the documentation.

Hi, I'm trying to get this working. I've seen that I now have to connect with MSGraph, however when I try to run the following command:
Get-AutopilotProfile | ConvertTo-AutopilotConfigurationJSON
I get the below error:
ConvertTo-AutopilotConfigurationJSON : The term 'Get-Organization' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is c
orrect and try again.
At line:1 char:24

Get-AutopilotProfile | ConvertTo-AutopilotConfigurationJSON

                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : ObjectNotFound: (Get-Organization:String) [ConvertTo-AutoPilotConfigurationJSON], Comman
dNotFoundException
FullyQualifiedErrorId : CommandNotFoundException,ConvertTo-AutoPilotConfigurationJSON

I can't find where that "Get-Organization" command is supposed to come from. What am I missing?

Try making the dir first c:\Autopilot then it should run.

Actually, the problem was that the command ConvertTo-AutopilotConfigurationJSON isn't in the older version of the module. I ended up installing the older version because Install-Module WindowsAutopilotIntune -Force didn't actually install anything. Took forever to find the correct install path for the latest version, but once that was installed everything worked.

Hi @Jamin79, with what you've experienced so far, does it mean the information (specifically the instructions) in the documentation is still accurate? As per the discussion, using Connect-MSGraph instead of Connect-AutopilotIntune works (as confirmed by @CyclopsHelpdesk and @redog). If there is missing information or amendments should be made based on empirical data, please let us know.  Thank you.

For Reference: https://oofhours.com/2019/11/02/whats-new-with-the-windowsautopilotintune-powershell-module/
Connect-MSGraph should now be used instead of Connect-AutoPilotIntune

Thank you for that additional information @kennethvs. Let me get this over to the Windows content writing team for review.

(ref. #5772 )

@mustafafarooq
With the help of your feedback, the content has been updated with relevant changes accordingly. Thanks.

Coonect-MGGraph is correct


ActorNaming .prefixed is named confusingly

We had people be confused by it
system.spawn(prefixed(with: "hello")
system.spawn(prefixed(with: "hello")

does not explain well that this spawns "hello-1" "hello-2" (or using letters).
As we remove the tree, consider what to do about this when we implement a ChildrenContainer

This is going away


remove unnecessary opsration of aead ciphers

As md_ctx_enc is not used in aead ciphers, it's not necessary to do such md operation.
new modification for #1374

--none--

@mrpre : There're a typo in the commit message, "opsration" instead of "operation".

Thank you for your contribution! We independently discovered this in #1421, I'm afraid I missed your pull request when investigating that. I'd rather pick #1464 which doesn't hard-code the list of non-MAC ciphersuites and has backports ready, but I added a ChangeLog entry to recognize your prior contribution.


Ctrl->Caps lock remapping issues with Surface Slim Pen 2

Microsoft PowerToys version
0.85.0
Installation method
Microsoft Store
Running as admin
No
Area(s) with issue?
Keyboard Manager
Steps to reproduce
remap Ctrl as Caps Lock, then attach/dettach surface slim pen 2 from type cover
✔ Expected Behavior
just remapping Ctrl->Caps Lock
❌ Actual Behavior
slim pen 2's shortcut button(or, erase button) features are run

attach: 1-click function, detach: 2-click function
for every attach/detach caps lock toggled
even bluetooth off, not connected

Other Software
No response

not powertoys issue, surface issue. sorry


Update people.yml

Edited democratic candidates except for Nathan Bloxham. May need further edits to the latitude and longitude.

Awesome thanks!


Typography: letter-spacing / tracking not applied

I see that the letter-spacing / tracking is not applied in components.
I'm aware that letter-spacing is not part of the font shorthand.
Is there an actual reason it was not included? Could it just be added with a pull request?

Letter-spacing and tracking customization has historically not been heavily used in Material, and designers are considering removing those tokens.
To avoid future breaking changes and reduce typography complexity, we're not including letter-spacing or tracking until design is more confident with their use cases.


Unnecessarily calling a method in created()

Describe the bug
Unnecessarily calling a method in created and watch. The thought behind this is we want to run the watch hook as soon as a component is initialized.
Expected behavior
But Vue has a built-in solution for this. It’s a property of Vue watchers that we often forget.
All we have to do is restructure our watcher a little bit and declare two properties:

handler (newVal, oldVal) — this is our watcher method itself.
immediate: true — this makes our handler run when our instance is created.

Screenshots

Desktop (please complete the following information)

OS: Ubuntu

Additional context
Want to work on this :)

Which component is this? cause I found 2 CollectionBrowsePage components and I cant see the created in them

@hemanth-hk It is present in CollectionBrowseMixin.js

I'm gonna ping @brenoferreira to get his input as I'm unsure if this was intentional. Pending his approval, you may work on this @abhisheknaiidu :)

Refreshing this @brenoferreira

@akmadian , Next time onwards, I'll take of it :)

You can try changing it. I can't really tell how it will behave without testing it, specially because we have server side rending.

@brenoferreira I got you, and I already made some changes in PR #747


Can we have to two state field in a model, each state field is for seperate finite state machine

ex:
Order{
order_state
invoice_state
}

Sorry, github issue tracker  is not a QA support website.


Component 'multiplier_remover' is not attached to 'Nette\Forms\Form'

When using manual rendering of forms with groups and iterating over groups, I am getting InvalidStateException: Component 'multiplier_remover' is not attached to 'Nette\Forms\Form'
...
$form->addGroup("TEST");
$multi = $form->addMultiplier("multi", function(\Nette\Forms\Container $container, \Nette\Application\UI\Form $form) {
            $container->addText("a", "A");
        }, 1);

$multi->addCreateButton("Add");
$multi->addRemoveButton("Remove");
....

Latte:
{form testForm}
    {foreach $form->getGroups() as $groupName => $group}
        {foreach $group->getControls() as $name => $input}
             {input $input}
        {/foreach}
    {/foreach}
{/form}

This error doesn't happen when the form is rendered automatically or you itarate right over $form->getControls()

Sorry for late response. Thank you for issue


Fix "similar-code" issue in src/message-processor/MessageProcessor.ts

Similar blocks of code found in 2 locations. Consider refactoring.
https://codeclimate.com/github/sshivananda/ts-sqs-consumer/src/message-processor/MessageProcessor.ts#issue_5eb5ca6bf20913000100002c


Datadog endpoint for logs should be unbound from metrics/trace host.

Note:
If you have a feature request, you should contact support so the request can be properly tracked.
Is your feature request related to a problem? Please describe.
I've started playing with CI integration in Datadog. Because Datadog accepts neither stats nor process data in their raw form, we force this plugin to send data to an agent for processing. In the current implementation, this demands I setup a custom TCP "logger" (which I do understand to be closer to a proxy)
The agent's TCP connector feature is understandably brittle, given its lack of broad use. It seems to be somewhat of an orphan in configuration. Indeed, after nearly a month's time, support clarified that though com.datadoghq.ad.logs may largely be configured as expected when running within Docker (using envvars, labels, annotations)...the TCP listener in practice behaves like a check and requires YAML onboard the container to work properly. Although I'm hoping to simply sidestep the need to build a custom container, bind mount, or the like, I'm curious why the configuration for logging is tightly bound to metric collection. There's obvious benefits for consolidating tagging, but that's all I can come up with.
The TCP submission method does not use encryption and is considered by Datadog to be a backup method, and the proxy does seem even less reliable. It's particularly painful given my experience that when the pipe reaches an error state (presumably when Jenkins is abruptly terminated or another malformed request is sent...or some flavor of un-ACKed RST is sent from one end, the agent appears to do nothing to correct the matter. Exascerbating that is that this plugin writes a SEVERE level log after each send error, spamming Jenkins logs 1:1 with any offending job, such that I end up with quite a bit of log bloat on any failure.
I think it's likely that https://github.com/jenkinsci/datadog-plugin/pull/221 didn't appreciate that the appeal of  https://github.com/jenkinsci/datadog-plugin/pull/74 extended beyond the lack of a local agent. At their core, however, the gathering of CI metrics and logging are independent activities and I'd expect configuration to reflect that if possible.
Describe the solution you'd like
Configuration for CI Metrics remains like present, toggled by a boolean with either unified host/port configuration or preferably (someone's bound to end up with an edge case) separate host/ports for each.

Logging submission is offered its own host configuration, and is selectable between HTTP and TCP submission

Describe alternatives you've considered

Not collecting logs at all
Monitoring Datadog and Jenkins alike to keep the TCP flow connection healthy
Life as a lumberjack.

Additional context
During my either quixotic or dramatically ill-informed attempt to get the TCP listener to be generated promptly, I've run across a fairly wide swath of troubled souls who had some flavor of trouble setting this up as such. Plenty of unreliable TCP connections, a few issues getting the custom log uptake to start properly, and the occasional local networking frustration. This approach would retain CI functionality while allowing a user to sidestep what I believe is a needless binding of the two configurations.

Thank you for your note. We will look deeper into our current process for metrics and logs ingestion, but not something we can change in the short term. I would also like to take the opportunity to clarify a few points here

TCP is a backup method
In the context of Jenkins plugin, there is no easy alternative to collect logs. TCP is the next best alternative to when the Agent cannot tail logs from a file. So while TCP is considered a backup, here it makes sense for a TCP connection.

TCP does not use encryption
Yes, while the TCP connection between the Jenkins plugin and the Agent is unencrypted, the Agent itself further processes these logs and sends them over an encrypted HTTPS connection to Datadog.

Plugin generates spammy Jenkins logs upon connection error
Thank you for your feedback. We will take a look to improve the logging and have a more graceful failure logging

In the context of Jenkins plugin, there is no easy alternative to collect logs. TCP is the next best alternative to when the Agent cannot tail logs from a file.

I find this confusing, which is probably my own lack of familiarity. However, forwarding logs over HTTPS to Datadog, directly, which is the default setting, suits my purposes and works consistently. I don't note much complexity in either the writer or the client it invokes. Why is it not possible to offer a configuration option to use the agent for trace data and the like, while sending logs over HTTP? There's multiple other tickets/issues indicating issues with the lack of per-service configuration that this would solve, and outwardly the approach seems simple.

Yes, while the TCP connection between the Jenkins plugin and the Agent is unencrypted, the Agent itself further processes these logs and sends them over an encrypted HTTPS connection to Datadog.
Ah, my misunderstanding, then. "TCP log shipment" is a bit of an overloaded term, and the TCP connector feature isn't terribly well-documented. I certainly don't have much concern about encrypting Jenkins -> agent traffic, but assumed the TCP connector feature was opening a direct port-forward to Datadog's receivers.

TCP is a backup method
This is my primary issue with the approach as-implemented. While I agree it's the agreed-upon solution for the agent to ship in this context, it's not a well-implemented, or well-documented feature. It took me nearly a month to convince DD support that a TCP listener was even a feature that could be implemented by an agent container. Even as such, implementing it using the Docker agent requires a rather un-Dockery bind mount of a configuration YAML file, or otherwise a custom container. I'd consider both considerable drawbacks over simply sending the logs over HTTP. I'm not sure what utility the agent is providing in this context past ensuring consistent tagging.

Yes, nothing has not changed to improve the agent configuration. I can continue to replicate ongoing issues with the TCP connector. Documentation has not been improved. I continue to contemplate life as a lumberjack.

Hi, I would like to apologize for my tardiness. I have spoken to my team, and we will add a feature request to decouple metrics and logs ingest. We are also currently working on the documentation and should have it ready within a couple of weeks at max.
Regarding the log level - can you share a sample log message. We would like to understand if the message here pertains to failure to send a log line or a connection failure. TIA!

Hi @bradq, just bumping this in case you missed @shris-github's message!


The demo website is dead

Looks like https://vibe.nicedash.com/ domain expired.

@TomixUG My bad. This should be fixed now. thanks for the heads up.


feat: hairlines width can be configured with a sass variable

I have found rendering artifacts that can be fixed changing the value to 0.5px.
This commit does not change it, but I allows developers to configure it.

ouch! I forgot to remove the hairline css for the outline button... should I remove it? should outline buttons be hairline on iOS by default?


Fix WidgetAggregation :: Watch 'aggregation' data rather than 'value' prop

Codecov Report

Merging #257 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #257   +/-   ##
=======================================
  Coverage   97.98%   97.98%
=======================================
  Files          57       57
  Lines         842      842
  Branches      163      163
=======================================
  Hits          825      825
  Misses         17       17

Impacted Files
Coverage Δ

src/components/stepforms/WidgetAggregation.vue
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Could you elaborate a bit in your commit message on the rationale behind this change?


1.2.4 causes InvalidCharacterError on class$ attributes when using setAttribute

I am currently using video.js in a component that I've created at n4gashi/videojs-element.
I've recently ran on this issue where updating to Polymer version 1.2.4 is breaking the video.js code, because videojs is using setAttribute on it's code to replicate attributes on the <video> HTML tag.
Here is the InvalidVCharacterError console error :

Here is the video.js code causing the issue :
Object.getOwnPropertyNames(attrs).forEach(function (attr) {
      // workaround so we don't totally break IE7
      // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7
      if (attr === 'class') {
        el.className = attrs[attr];
      } else {
        el.setAttribute(attr, attrs[attr]);
      }
    });

I wish I had the fix but unfortunately i do not have the time to get my hands dirty right now. Just reporting this cause I feel like it should be compatible with libraries using setAttribute as this is a common method. Even if duplicating attributes may be an edge case, I feel like this is not the only library to do this, so could be cool to fix this.
Thanks !

Did this code work in 1.2.3?
https://github.com/Polymer/polymer/commit/07d8c06 and https://github.com/Polymer/polymer/commit/690838a may be related.
cc @azakus

I am unable to reproduce the issue: http://jsbin.com/quleyuwisi/edit?html,console,output Please reopen this issue if you can provide a JSBin which shows the error.


Is this project still going? It would be great to have a robust LP solver for Rust

Have you looked at integrating parallelisation via:
https://gitlab.com/lappsufrn/MulticoreParallelSimplex
explained in
Pdf Paper
And of course better pivot selection Langrangian or others?

Hi @ronniec95 and thanks for your interest in the project! Right now I'm not actively working on it - I've implemented most of the tricks that I wanted to experiment with and reached satisfactory performance for my use cases. But of course I'm open to bug reports and contributions.
With regards to pivot selection - which algorithms do you have in mind? Right now pivot is selected using steepest descent + Harris rule for both primal and dual simplex. A possible robustness improvement would be to implement tricks from this paper.
Parallelizing the solver would be a great project and probably a good fit for Rust and the rayon library, but again, not something that I have time to do right now.

That's a shame. I'm not a Simplex expert unfortunately but I can in my spare time try to implement the robustness logic you noted. That's more useful than the parallelization immediately but that would be great to have too.

Here is what seems to be the standard benchmark for simplex LP solvers: http://plato.asu.edu/ftp/lpsimp.html. It consists of 40 hard problems and minilp is currently able to solve 18 of them. Which is good but below the capabilities of established solvers. So yes, any improvement that allows to solve more problems from that set will be nice to have.

Hello @ztlpn, sorry for pinging you. Is this lib wasm-able (can be converted to wasm)?


Use inspectField to simplify code

Signed-off-by: Qiang Huang<EMAIL_ADDRESS>

@hqhq I may be wrong but seems not all dockerBinary, "inspect" have been removed? could you try to grep for dockerBinary, "inspect" and see if you catched everything? :)

@runcom I use:
grep -rnI "\"inspect\"" integration-cli
and changed all that I can see is safe. Some exceptions:

use other format like {{ len xxx }} or {{ range xxx }} which are not wrapped by a function
with .CombinedOutput in the tail and I haven't see if it's safe to directly change
in daemon test and they are used in different way

Updated.

@hqhq thanks, LGTM

LGTM


fix(version): update fabric8-runtime-console to 0.8.27

There were the following issues with your Pull Request

Commit: 80556c5e52ebe0f708c15785ea6238ed9c7a144e
Your subject line is longer than 50 characters

Guidelines are available at https://github.com/fabric8io/fabric8-ui

This message was auto-generated by https://gitcop.com


Add types/py.typed

Currently if you use mypy with matchlib you get error: Skipping analyzing "matchlib": module is installed, but missing library stubs or py.typed marker  [import-untyped]

Done, thank you


older ppn not working after wasm update

Expected behavior
I got a licensed PPN which I used xxd to convert to hexadecimal array for use in the JS wasm flavor of porcupine. It used to work, up until recently when it started to break with the error "failed to initialize porcupine."
I see that even on the demo code for JS the byte arrays have changed for the same wake word. Do I need a new PPN file ? Or there is some other postprocess required on the existing ppn ? It will be great if I could get the hexadecimal equivalent of the PPN we recieved.

If you have a licensed file please contact us directly via email. Most probably you had an evaluation licensed that has expired.


create initial shared file

Q
A

Bug fix?
Yes

New feature?
Yes

BC breaks?
No

Deprecations?  No

Fixed tickets
N/A

Yii2 advanced app receipe :
The shared step create empty config in shared & link.
After that  the "init" phase create the config file in their place.
I've inversed the order to be able for the 1st deployment a valid config file without manual edition.
Shared /deploy/shared.php
When a shared_file is not present in shared, but present in release we use it as reference.
An exemple for yii2 receipe :
-> Init phase create for exemple "/common/config/main-local.php"
-> Shared phase now copy this file in the shared dir, remove it from release and create the link.
The file is now non empty in shared and the yii2 app is functional
If the file exist in shared, no copy and same as usal.

Do not forget to add notes about your changes to CHANGELOG.md

And please add to changelog.


Update README.md

PR Description
Add your description
Related Issues

Closes #

Checklist

[x] I have gone through the contributing guide
[x] I have updated my branch and synced it with project main branch before making this PR

Undertaking
I declare that:

The content I am submitting is original and has not been plagiarized.
No portion of the work has been copied from any other source without proper attribution.
The work has been checked for plagiarism, and I assure its authenticity.

I understand that any violation of this undertaking may have legal consequences that I will bear and could result in the withdrawal of any recognition associated with the work.

[x] I Agree

Actually while you had explained i didn't even note down or run the code
practically bcz i had been stuck in the traffic so regarding this can i
contact you on thursday that is (oct 17,2024) . Could you please explain my
doubts so that complete this successfully
On Mon, 14 Oct 2024 at 21:26, Yodha Sudarsi @.***>
wrote:

Merged #17 https://github.com/Yodha-Sudarsi/Practice-Open-Source/pull/17
into main.
—
Reply to this email directly, view it on GitHub
https://github.com/Yodha-Sudarsi/Practice-Open-Source/pull/17#event-14639641170,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BCPRUJ6EGFWV25MUWUWNV3LZ3PSTNAVCNFSM6AAAAABP5JXQTSVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGYZTSNRUGEYTOMA
.
You are receiving this because you were assigned.Message ID:
@.***
.com>


Update configure-windows-event-collection.md: Order of Permissions

While trivial, if the permissions that need to de-selected are listed in the order they appear in the UI of Windows Server, it makes it just reduced the risk of misconfiguration a small bit.
Editing DS ACLs isn't something most do won't do light-hearted, thus if you can follow the documentation exactly it just makes checking documentation vs. actual setting applied easier.

Thanks so much for the update @matsimon! I agree - this change is very helpful. Merging now.


Road from SlpineMesh Repeater

Hi all,
I'm currently testing Carla environment for my work, and I'm stuck on map customisation problems.
I would like to understand how to, after having created a curved road from Spline Mesh Repeater, have that newly created road considered as a road by the vehicles. For the moment the vehicles won't follow the roads.
An example from an empty map (according to map_customisation documentation). My actions were:

Create my road with Spline Mesh Repeater. This road is a curved one that shall join two automatically generated roads (with CarlaMapGenerator)
Set a Route Planner for the vehicle to turn on my new road (as explained in documentation).
Bring the SplineMeshRepeater under the CarlaMapGenerator in the hierarchy of "World Outliner"
Trigger "Road Map Generation" in CarlaMapGenerator

When starting the simulation, the vehicles do follow the Road Planner, but when arriving at the end of the Road Planner the vehicles are lost (i.e. they don't keep on following the curved road). See image below. Is there something I missed ? I see from map_customisation image that the straight roads are filed with green arrows telling the vehicles the good direction… How can I set this on my curved road ?
I know you're planning to improve custom map generation on future releases (#579) so the answer to my question might be "coming soon", but I have the felling I missed something.
Thanks your help, and well done for all the work on that project, it is quite impressive ! Looking forward to next evolutions !

Hi @TheNihilisticRobot,
Thank you for the quick answer. I understand this is not the way to do integrate a road to RoadMapGenerator.
In current CARLA version, is there a way to do so (for straight/curved road) (other than using the CarlaMapGenerator, with which you can't draw the roads as you like)?
Otherwise, I will wait for the next version :)
Thank you


puppet: nagios-plugins-basic is replaced by monitoring-plugins-basic.

In Bionic, nagios-plugins-basic is a transitional package which
depends on monitoring-plugins-basic.  In Focal, it is a virtual
package, which means that every time puppet runs, it tries to
re-install the nagios-plugins-basic package.
Switch all instances to referring to $zulip::common::nagios_plugins,
and repoint that to monitoring-plugins-basic.

Testing Plan:
GIFs or Screenshots:

Seems like a pretty reasonable change by Debian given that many other tools support the Nagios plugin format.


MSbuild crashes when run inside terminal

Windows Terminal version
1.18.3181
Windows build number
10.0.22621.0
Other Software
MSBuild (VS 2022)
Steps to reproduce

Open the Developer Command Prompt for VS 2022 profile.
go to a C# solution folder
Run MSbuild to compile. (Or run msbuild /t:Restore to restore some nuget packages)

Expected Behavior
MSbuild to succeed
Actual Behavior
MSBuild starts working but stops very early. No error is written to the console.
In Event Viewer -> Application, the following error appears:
Faulting application name: MSBuild.exe, version: <IP_ADDRESS>904, time stamp: 0xe31ab667
Faulting module name: combase.dll, version: 10.0.22621.2792, time stamp: 0xd9671289
Exception code: 0xc0000409
Fault offset: 0x00000000001522b2
Faulting process id: 0x0x6380
Faulting application start time: 0x0x1DA34154F6EE43B
Faulting application path: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe
Faulting module path: C:\WINDOWS\System32\combase.dll
Report Id: 4af61e29-3040-4862-b67c-0fb2c7a14aef
Faulting package full name: Microsoft.WindowsTerminal_1.18.3181.0_x64__8wekyb3d8bbwe
Faulting package-relative application ID: App

@rainersigwald any ideas? Or any idea how to investigate? Does this work just fine in the vintage console/?

I haven't heard of this before. Since you have VS installed, you might be able to get more information by setting the environment variable MSBUILDDEBUGONSTART=1 before running MSBuild, which should pop up a JIT debugger prompt. Then the crash might have a bit more actionable information?

@rainersigwald Hey can you investigate this more on your side? Or move this to the msbuild repo? I can't imagine that this is something that is really caused by Terminal code... but if this is something that explodes in msbuild cause we're running, I think you'd be best equipped to find out why

This issue was moved to dotnet/msbuild#9626

@zadjii-msft I copied this to dotnet/msbuild, feel free to close this one.


Consider options for reusing axes, color scales, etc. from another project

Some options to look at are bqplot, k3d, ipyvolume.

See also https://github.com/jupyter-widgets/ipywidgets/issues/1153

@vidartf has started something similar based on pythreejs and d3 scales, he'll be meeting many of the people involved here in New York soon and be able to discuss the topic in person.

Now using the blackbox extension point to place unray plots in a pythreejs scene. This branch is a required dependency until it becomes the new master branch of pythreejs:
https://github.com/jovyan/pythreejs/tree/auto-gen-wrappers
Reusing data widgets from:
https://github.com/vidartf/ipydatawidgets
Intend to use scales from:
https://github.com/vidartf/threeplot
Intend to use plot utility widgets from:
https://github.com/vidartf/threeplot

:+1:
Interesting development, hope that ipyvolume can also take advantage of this in the future. I've played a bit with @vidartf on getting pythreejs objects in ipyvolume, which seemed to work. For ipyvolume and unray to work together we have to have a similar strategy for mixing volume rendering and meshes and possible in combination with transparancy support.

Mixing transparent and opaque objects in a three.js scene is trivial for many situations, since THREE.js draws the objects marked as transparent after the ones marked as opaque. This is sufficient if there's only ONE transparent object in the scene, since the transparent object can use deptTest:true, depthWrite:false. This works fine for unray objects (an opaque surface and a transparent xray volume plot can be combined in a scene without any further complications). I also think THREE.js sorts the objects roughly by position, so multiple transparent object that do not overlap may also work fine, although I haven't tested that. I don't think correct rendering of overlapping transparent objects from different libraries is something we even want to attempt.

It will most likely not work for scatter plots in ipyvolume, since threejs has no way of knowing where the objects are. It requires sth like weighted order-independant transparancy, or depth peeling, which should work with overlapping or using different libraries.

@maartenbreddels Have you tried computing your own bounding box/sphere and adding it to your Mesh?
I do that, which is probably why it works.

Also if the scatter plot consists of opaque objects, it can be drawn before any transparent objects and order shouldn't matter anyway.
My very limited understanding of order-independent transparency and depth peeling is that it really only works with a limited number of transparent layers. I may be wrong, but I seriously doubt that is feasible across libraries as well.

That would do it for all the objects in the Scatter object, not every scatter symbol is it's own mesh, so transparant symbols in one Scatter object will not work. Indeed, opaque shouldn't be a problem.
Yeah, they both have there issues, depth peeling is multipass, and OIT will be an approximation. There is no perfect solution yet, though I think it would be useful though to have both techniques in pythreejs in the long run.


[Coverage] Aim for 90% coverage in the operator project

We want to have the operator have at least 90% coverage.

We decided to move this down to 85%. We hit that with latest main


Removed check_length from validate_input_file()

Some audio formats like gsm does not have valid frame numbers when opened. But libsox can properly handle these audios, so checking if length > 0 is not necessary and too strict.

LGTM.
follow-up - add load test for GSM.

Shall I create a different PR for this?

LGTM.
follow-up - add load test for GSM.

Shall I create a different PR for this?

If you have time and would like to, go for it.


Do not assume we can determine content length for generic Readable streams.

I started using a library which provided me with data as a stream.Readable object. This readable stream did not come from a file (i.e. it was not created using fs.createReadStream(..)). I noticed that the code was incorrectly assuming a certain content-length. I have made fixes to getLength, getLengthSync and submit to make sure that we do not incorrectly assume the content-length for stream data.

Do you mind to create separate test that illustrates the issue? That way we can be sure of backwards compatibility with existing applications while addressing your concern. Thank you.

This PR has been out of shape for some time,
and at this point it will be better to create fresh one with updated base.
And only necessary changes to the main file.
Thank you.


Minor grammatical changes

Minor grammatical changes. Also, in reviewing the core documentation, I noticed some grammatical errors - would you like me to go through and propose updates to those as well?

Thank you for the issue. I am not into direct merging, so I made the changes with commit.


Template colors added to story saved colors

Description

Template colors should be visible as "saved colors" in the editor under the "story" section (not all stories/global, specific to this one instance).

Additional information
I did a bit of debugging here before pointing this and here's my starting point:

The colors' hex codes are in the metaData file of each respective template in the template package (packages/templates/src/raw/[template-name]/). They are stored as an array with a label for description and a hex code ({label: 'winter blue', color: '#a4deff'}).
The saved colors isn't new, users can save their own colors already. Saved colors live in style_presets, accessible through the useStory context. When a story's loaded the saved colors get structured (see story-editor/src/app/story/effects/useLoadStory)
Right now the colors of a template (template.colors) are not getting passed to getStoryPropsToSave when the 'use template' button is clicked and createStoryFromTemplate request is triggered.
Pretty sure that the logic is all set up on the editor side to handle this, but that the saved colors of a template aren't quite making it into the story when the editor loads.

Acceptance criteria

When you use a template, once the editor loads you should see the same list of colors in the "saved colors" panel as you do in the template detail view of said template.

Verified in QA


[KYUUBI #3581][Authz] Support Row Filter and Data Masking on Permanent Views

Why are the changes needed?

to close #3581 .
support row filter and data masking on permanent views,

matching permanent views with PermanentViewMarker injected by RuleApplyPermanentViewMarker
reusing attributes's exprId in new Alias for permanent views for data masking

How was this patch tested?

[x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Codecov Report

Merging #3576 (3059c71) into master (a6f933f) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #3576      +/-   ##
============================================
- Coverage     51.75%   51.74%   -0.02%
  Complexity       13       13
============================================
  Files           482      482
  Lines         26980    26984       +4
  Branches       3763     3764       +1
============================================
- Hits          13964    13963       -1
- Misses        11660    11661       +1
- Partials       1356     1360       +4

Impacted Files
Coverage Δ

...uthz/ranger/RuleApplyRowFilterAndDataMasking.scala
89.74% <100.00%> (+0.85%)
:arrow_up:

...he/kyuubi/plugin/spark/authz/util/AuthZUtils.scala
53.65% <100.00%> (+1.15%)
:arrow_up:

...uubi/engine/spark/events/SparkOperationEvent.scala
88.88% <0.00%> (-5.56%)
:arrow_down:

...ache/kyuubi/operation/KyuubiOperationManager.scala
79.45% <0.00%> (-2.74%)
:arrow_down:

...che/kyuubi/server/KyuubiTHttpFrontendService.scala
64.23% <0.00%> (-0.73%)
:arrow_down:

...yuubi/server/metadata/jdbc/JDBCMetadataStore.scala
89.27% <0.00%> (-0.70%)
:arrow_down:

...rc/main/scala/org/apache/spark/ui/EnginePage.scala
78.33% <0.00%> (-0.30%)
:arrow_down:

...g/apache/kyuubi/operation/BatchJobSubmission.scala
74.64% <0.00%> (ø)

...in/scala/org/apache/kyuubi/config/KyuubiConf.scala
97.34% <0.00%> (+0.07%)
:arrow_up:

...ain/scala/org/apache/kyuubi/engine/EngineRef.scala
73.10% <0.00%> (+0.84%)
:arrow_up:

... and 1 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

only reusing attributes's exprId in new Alias for permanent views.
Otherwise, KYUUBI #2390: RuleEliminateMarker stays in analyze phase for data masking unit test will fail on querying table with column data masking with exception
java.lang.ClassCastException: org.apache.spark.sql.catalyst.expressions.Alias cannot be cast to org.apache.spark.sql.catalyst.expressions.Attribute
  at org.apache.spark.sql.catalyst.expressions.AttributeMap.get(AttributeMap.scala:37)
  at scala.collection.MapLike.apply(MapLike.scala:143)
  at scala.collection.MapLike.apply$(MapLike.scala:143)
  at org.apache.spark.sql.catalyst.expressions.AttributeMap.apply(AttributeMap.scala:37)
  at scala.collection.immutable.List.map(List.scala:297)
  at org.apache.spark.sql.hive.execution.HiveTableScanExec.<init>(HiveTableScanExec.scala:77)

can you take a look at the test failures

OK, all CI tests passed and it should be ready for merge. @yaooqinn

LGTM, I will merge it later. I hit Exceeded the GitHub API rate limit right now.

thanks, merged to master

ps. Thanks to @yaooqinn for the concrete and helpful suggestions of solving Ailas id conflict in data masking in this PR.


Crash on open file with the same name but different file handle (MacOS)

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
Create a file with a single line of text, ie test.txt
Right click on the file, select 'Open With', select 'Zed'

The file is now open, close the file (command-w), the file is now closed, but the file name stays put in the window (so don't close ZED)

Re-open the same file, no problem.
Close it again (command-w, but keep ZED running.
Now, REMOVE the file, and create a NEW FILE with the exact same name.
Right-click on the file and go 'Open With --> Zed'

System Integrity Protection: enabled

Crashed Thread:        0  main  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Application Specific Information:
abort() called

Thread 0 Crashed:: main Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	       0x18ad04724 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x18ad3bc28 pthread_kill + 288
2   libsystem_c.dylib             	       0x18ac49ae8 abort + 180
3   libc++abi.dylib               	       0x18acf4b84 abort_message + 132
4   libc++abi.dylib               	       0x18ace42f8 demangling_terminate_handler() + 132
5   libc++abi.dylib               	       0x18acf3f48 std::__terminate(void (*)()) + 16
6   libc++abi.dylib               	       0x18acf3ed8 std::terminate() + 36
7   libdispatch.dylib             	       0x18ab8c414 _dispatch_client_callout + 40
8   libdispatch.dylib             	       0x18ab9abf8 _dispatch_main_queue_drain + 928
9   libdispatch.dylib             	       0x18ab9a848 _dispatch_main_queue_callback_4CF + 44
10  CoreFoundation                	       0x18ae5bc88 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
11  CoreFoundation                	       0x18ae194a8 __CFRunLoopRun + 1992
12  CoreFoundation                	       0x18ae1858c CFRunLoopRunSpecific + 612
13  HIToolbox                     	       0x19464ddf4 RunCurrentEventLoopInMode + 292
14  HIToolbox                     	       0x19464dc30 ReceiveNextEventCommon + 648
15  HIToolbox                     	       0x19464d988 _BlockUntilNextEventMatchingListInModeWithFilter + 76
16  AppKit                        	       0x18e037f58 _DPSNextEvent + 636
17  AppKit                        	       0x18e0370f4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716
18  AppKit                        	       0x18e02b558 -[NSApplication run] + 464
19  zed                           	       0x106515f74 _$LT$gpui..platform..mac..platform..MacForegroundPlatform$u20$as$u20$gpui..platform..ForegroundPlatform$GT$::run::hd4f0ea0a706d2153 + 328
20  zed                           	       0x104820f84 gpui::app::App::run::h526d62a2e9052431 + 188

....

### Environment

Zed: v0.80.5 (stable)
OS: macOS 13.3.0
Memory: 32 GiB
Architecture: aarch64

### If applicable, add mockups / screenshots to help explain present your vision of the feature

_No response_

### If applicable, attach your `~/Library/Logs/Zed/Zed.log` file to this issue.
If you only need the most recent lines, you can run the `zed: open log` command palette action to see the last 1000.

[Zed.log](https://github.com/zed-industries/community/files/11172447/Zed.log)

[zed-0.80.5-2023_04_06 16_10_59.panic.log](https://github.com/zed-industries/community/files/11172450/zed-0.80.5-2023_04_06.16_10_59.panic.log)

Hey @eljakim, when you say
| Now, REMOVE the file, and create a NEW FILE with the exact same name.
Are you saying remove it from the zed project or delete the file from the OS?

I meant:

do not touch ZED
Remove the file from disk, then create a new file on disk with the exact same name. Do both things outside of ZED

@JosephTLyons as an FYI, in version 0.81.1 Zed no longer crashes when I do the steps above, but it also won't let me open up a file, after I quit Zed completely it works again.

@JosephTLyons in 0.85.3 this is no longer an issue, although when you close the editor using Apple-W, the title bar of the editor still names the file you originally had opened.


Raspberry PI Pico W not detected

Trying this out on Windows.
Followed instructions for flashing and configuration.
Does not seem to detect the device via the COM Port.
2023-06-16T20:39:15.310Z [LEDDEVICE_ADALIGHT] Opening UART: COM4
2023-06-16T20:39:15.310Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:216) _rs232Port.open(QIODevice::ReadWrite): COM4, Baud rate [200000]bps
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:221) portName:          COM4
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:222) systemLocation:    \\.\COM4
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:223) description:       USB Serial Device
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:224) manufacturer:      Microsoft
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:225) productIdentifier: 0xa
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:226) vendorIdentifier:  0x2e8a
2023-06-16T20:39:15.311Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:227) serialNumber:      E6616408432Fxxxx
2023-06-16T20:39:16.630Z [LEDDEVICE_ADALIGHT] Could not detect HyperSerialEsp8266/HyperSerialESP32 device
2023-06-16T20:39:16.630Z [LEDDEVICE_ADALIGHT] (LedDevice.cpp:333) Switch on
2023-06-16T20:39:16.630Z [LEDDEVICE_ADALIGHT] (LedDevice.cpp:409) Power On
2023-06-16T20:39:16.631Z [COMPONENTREG0] LED device: enabled
2023-06-16T20:39:17.633Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:300) Timeout after 1000ms: 0 frames already dropped
2023-06-16T20:39:18.634Z [LEDDEVICE_ADALIGHT] (ProviderRs232.cpp:300) Timeout after 1000ms: 1 frames already dropped

Are you sure you are using HyperHDR v20 beta with 'Esp8266/ESP32/Rp2040 handshake' enabled?

Let me try with the beta. I saw that the requirement was added 5 days ago in the readme corresponding to the last release, so I thought it was only for the latest release. Is there a v20 binary release or does it require compilation. I can't seem to find it on the HyperHDR releases.

The last commit only clarified this as the earlier version of HyperHDR didn't have "Esp8266/ESP32/Rp2040 handshake" (v20), only "Esp8266/ESP32 handshake" (v19). Currently, the latest beta installers can be found in the build artifacts here: https://github.com/awawa-dev/HyperHDR/actions/runs/5249279247


How to run 30b plus model with lighteval when accelerate launch failed? OOM

CUDA Memory OOM when I launch an evaluation for 30b model using lighteval.
Whats the correct config for it?

Hi!
Could you specify the precision and hardware you are using?

8A100 for 70b model.
Is there any examples for evaluating a max model for open_llm_leaderboard_tasks in a fast way?

Hi!
In which precision are you running the 70B model?
It's not going to need the same model parallelism/data parallelism ratio depending on it.

Hi, closing this issue for inactivity, but feel free to re-open if you need help.


Pose start and end point numbering changed in new Release 0.8.1?

Referring to the poses used in corl2017.py at carla/PythonClient/carla/benchmarks/corl_2017.py (line 76), it seems that with the new 0.8.1 version of server and client, the car starts at the same start point but does not stop at the original end point like in 0.7.1. For example, with the pose [36,40] on Town1, the car is supposed to drive in a short straight path but in 0.8.1, it keeps going past [40] and takes a turn. Has there been a change in the way these start and end points are represented internally with the new release? Thanks

I believe I found the cause of this issue in "Tag 0.8.1 carla/PythonClient/carla/benchmarks/benchmark.py" (line 129,135,138).
https://github.com/carla-simulator/carla/blob/9a9ce7bfa1cc22c77e7ba36713af1ff3bd768392/PythonClient/carla/benchmarks/benchmark.py#L129-L139
I believe the units for curr_x,curr_y was in centimeters but target.location.x,target.location.y was still in meters, so this caused line 138 to evaluate to False even when the goal was reached. Hope this helps!

Hey ! Yes, the benchmark was poorly adapted to 0.8 because
I was working in a new version. Luckily it is already finished ! The PR #341 has
been merged to master.
Check out the new documentation http://carla.readthedocs.io/en/latest/benchmark_start/


Tech writer review

Tech writing review completed.

There are a few open items to confirm/update:

Potential global change: References to GitHub GenesysAppFoundryrepo may need to change to the Blueprints repo.
Line 21: Agnes confirmed that they will be downloading the integration from AppFoundry, but this seems unclear to me.
Lines 97-99 may not render properly without HTML code. Please verify.


Duplicating an element

I do an extensive use of on("stanza", ...) Some of the listeners do actually alter the stanza object, which creates issues as later listeners will only have access to the alterred stanza :/
Is there a way to duplicate efficiently an object. I'm thinking I could use ltx to parse a serialized stanza, but it feels like a hack!

In other languages this is being accomplished with a so-called deep clone.
Would Element.prototype.clone() in ltx work for you, ie. you'd have to call it manually?
In my apps I don't reuse the incoming stanzas for constructing replies. Instead I pick certain attributes and character data for insertion in a newly-constructed element. That is less prone to accidentally including XML fragments a (potentially malicious) sender inserted.

Agreed, it would be better to not change.. but I feel like if it felt natural to me, it will feel natural to someone else :)
I didn't know about Element.prototype.clone(), but I guess that would indeed work!

original. saves the overhead.


Unable to find generated Parcelable class for Realm

Hi @johncarl81
After a recent update to v1.1.2, I have started getting org.parceler.ParcelerRuntimeException:
I use parceler along with Realm.
@Parcel(implementations = { StampRealmProxy.class },
    value = Parcel.Serialization.BEAN,
    analyze = { Stamp.class })
public class Stamp extends RealmObject {
    @PrimaryKey
    public String _id;
    public boolean enabled;
    public boolean purchasable;
    public String name, appUrl;
    /** Getters and setters */
}

Stacktrace:
org.parceler.ParcelerRuntimeException: Unable to find generated Parcelable
            class for io.realm.StampRealmProxy,
            verify that your class is configured properly
            and that the Parcelable class io.realm.StampRealmProxy$$Parcelable is generated by Parceler.

                       at org.parceler.Parcels$ParcelCodeRepository.get(Parcels.java:153)
                       at org.parceler.Parcels.wrap(Parcels.java:72)
                       at org.parceler.Parcels.wrap(Parcels.java:56)

Thanks,
Shilpan

Hi @skptl,
We're removing the class that mapped the implementations to the given class (I should have marked the implemenations parameter as @Depreciated and updated the docs)... could you use the following pattern instead:
Parcels.wrap(Stamp.class, realmStampInstance)

Now that I tihnk about it, we might be able to preserve this feature by generating a secondary Parcelable class.

Hi @johncarl81
Thanks for the quick response, I just tried Parcels.wrap(Stamp.class, realmStampInstance) and it worked and saw that you suggested the same thing.
This even breaks when using with AndroidAnnotations, so I think untill you have it fixed at all places you should preserve this feature.
Following is generated with AAs:
/**
   *
   * @param stamp
   *     the value for this extra
   * @return
   *     the IntentBuilder to chain calls
   */
   public StampActivity_.IntentBuilder_ stamp(Stamp stamp) {
        return super.extra(STAMP_EXTRA, Parcels.wrap(stamp));
   }

Thanks.

Ah, got it.  I'll get a fix out there this evening under 1.1.4.

@johncarl81 I will confirm once the fix is out. Thanks.

Awsome, would you be willing to test the SNAPSHOT pre-release?

Could you try out #194 @skptl?

@johncarl81 my apologies, but I am not sure how would I try that. It would be helpful if you can let me know how can I try that.

I'll assume you're using gradle.  Check it out, build it locally:
git clone git@github.com:johncarl81/parceler.git
cd parceler
git checkout -b reintroduce_impls origin/reintroduce_impls
mvn clean install

Then add you local maven repo to your gradle script:
repositories {
    mavenLocal()
    ...
}

And the snapshot dependency:
dependencies {
    compile 'org.parceler:parceler-api:1.1.4-SNAPSHOT'
    apt 'org.parceler:parceler:1.1.4-SNAPSHOT'
}

If you don't have maven installed I could probably deploy it for you, or you could use Jitpack

Releasing 1.1.4 currently to maven central.

Hi @johncarl81 ,
I was updating RealmObjects in my code to implement interfaces instead of extending objects.
I use Parceler with AndroidAnnotations, the problem that I have is sometimes Parceler fails to find RealProxy class. The weird part is it doesn't fail all the times with all objects.
Unable to find generated Parcelable class for io.realm.StampRealmProxy
I will be great if you could help me.
Thanks.

Is this a failure at runtime or compiletime @skptl ?

at compile time.. please fix this as am not able to use parcel with realm and kotlin
see also #306


Audit and make documentation for command RPUSH consistent

The documentation of the command [RPUSH](https://dicedb.io/commands/rpush/) present in the docs could have become stale. We need your help to ensure that the documentation is complete, correct, and consistent.  Completing this issue will give you much-needed exposure to how the command is implemented and the different parameters it accepts. Hence, this is a great way to build a good understanding of the project and its functionality. While still making a significant contribution. Here's what you need to do:

Go through the documentation of the command and run all the examples, making sure they all work as expected
If the same command is present in Redis, then the expected output of the DiceDB command is the same as the Redis output
If the command is not in Redis, then as per your judgment, raise an issue with this template or fix the documentation and raise a pull request.
The documentation should contain the following sections in the following order

short and concise introduction paragraph about the command covering what it does
Syntax
Parameters: List all the parameters the command accepts, and ignore the section if there are no parameters
Return values: List all possible return values and under what condition
Behaviour: Describe the behavior of the command, what it does, how it does it, some internal specifics if any
Errors: List all possible errors the command can throw and under what condition
Examples: List all possible examples of the command and the expected output. Assume CLI implementation

Note: The title of the sections should be the exact strings mentioned above, like "Examples", "Return values", etc.
Note: The description of the command in Frontmatter of the command.md file is the first paragraph (introduction) of the command.
Go through the DiceDB/dice repository and explore the command implementation

to understand all possible return values
to understand all possible error values and conditions
to understand different parameters the command accepts

Please use the documentation of the SET command as the reference point and structure the
documentation of this command in a very similar way, including the following points

if you see any "Conclusion" section, remove it
the headers (h1, h2, h3) should be appropriately used
the CLI prompt should be <IP_ADDRESS>:7379> and not anything else
Use markdown tables for parameters and return values (ref SET command documentation)
wrap any command or paramter in backticks (`) to highlight them
the section header should be capitalize as used in the SET command documentation

If you find any inconsistencies, please fix the documentation and raise the PR.
The core idea of this exercise is to ensure that the documentation is consistent, correct, and complete.
Make sure you comment on the other issues you created (if any) as a comment on this issue and also any PR (if any) that you created.
Thank you for picking this up and contributing to the DiceDB. It means a ton.

I'd like to pick this issue @arpitbbhayani  !

@Rithvik89 assigned, thanks for contributing.

Hello @Rithvik89,
There has been no activity on this issue for the past 5 days.
It would be awesome if you keep posting updates to this issue so that we know you are actively working on it.
We are really eager to close this issue at the earliest, hence if we continue to see the inactivity, we will have to reassign the issue to someone else. We are doing this to ensure that the project maintains its momentum and others are not blocked on this work.
Just drop a comment with the current status of the work or share any issues you are facing. We can always chip in to help you out.
Thanks again.

Hi @arpitbbhayani ,
Sorry for not being up to date with these issue i am not feeling well from last week.
As of now you can reassign this because this may halt the work.
Thank you

Hi @lucifercr07 I found this a bit strange while setting up dicedb for the above documentation.
So firstly i tried running the dicedb in docker using image both dicedb/dicedb:0.0.4, dicedb/dicedb:latest images.

So desired behaviour is that this need to return length of updated list, but this is not...
Then i tried running the dicedb locally (ref : master branch) It worked as expected.

Isn't our docker images behind our lastest dicedb code ?

https://github.com/DiceDB/dice/pull/1082


Solutions pseudocode

We will implement two greedy-based methods, one grouping method, and two iterative optimization methods.
Greedy: T-share, Noah
Grouping: RTV graph
Iteropt: simulated annealing, bilateral arrangement
Baseline Nearest-neighbor
Greedy
There are many greedy works. Basically, the idea is to use filter-and-refine: vehicles are filtered using a spatial index, then candidates are refined to find the greedy match. The refine phase is more interesting than the filter phase because to find the cost per vehicle, we need to do scheduling, and the scheduling is computationally difficult. There are two main ideas about refine: allow rearranging the existing stops in a schedule, or just insert the new pickup-dropoff and leave the other stops as they are. The first idea is what is used in Noah and the second idea is what is used in TShare.
Grouping
The RTV graph is the latest grouping-based strategy. Basically, request pairs are grouped together to form a partial schedule. If some ordering of the partial schedule is valid, then the pair is valid. Then, request-vehicle pairs are made in the same way. Then, trips are constructed based on these pairs. Finally, vehicles are optimally assigned to trips by modeling the assignment problem as an integer linear program.
Iter-opt
The two latest are bilateral arrangement and simulated annealing. Bilateral arrangement comes from the paper "Utility-Aware Ridesharing on Road Networks" by Cheng et al SIGMOD 2017. First, it filters candidate vehicles, like the greedy methods. Then it tries to greedily assign a request to a vehicle. If the assignment is valid, it is made; otherwise it tries to replace an existing request in the vehicle (swap). So it is an improvement over greedy. Simulated annealing is a well-known approach, but in Jung et al, it is applied to ridesharing ("Dynamic shared-taxi dispatch algorithm with hybrid-simulated annealing", CACIE 2016). First, an initial solution is constructed of assignments is constructed, and the "energy" is computed. Then, the solution is randomly "perturbed" (assignments are swapped) and the energy is measured again. If the energy is lower, the new state is kept; or if not, it is still kept based on some low probability (to escape local minima).
Pseudocodes
Nearest Neighbor
class NearestNeighbor : Solution {
  public:
    assign(queue reqs, queue replay)
    update()
  private:
    RoadNetwork& rnet;
    LocationsMap& locm;
    SchedulesMap schm;

}

NearestNeighbor::assign(queue reqs, queue replay) {
    while reqs not empty {
        req = dequeue(reqs)
        vehs = rnet.knn(req.origin, k=# of vehicles)
        cost = -1
        match_id = -1;
        for each v in vehs {
            sch = schm.at(v.id)
            cost = LowestCost(sch, req, sch_out)
            if (cost) {
                match_id = v.id
                break
            }
        }
        if (match_id == -1) add req to replay
        else add (req.id, v.id, sch_out) to ResultsSet
    }
    return ResultsSet
}

NearestNeighbor::update() {
    // nothing to update
}

Can it support simultaneous requests/assignments/maintenance?

From: Juntao Hu<EMAIL_ADDRESS>Sent: Thursday, April 5, 2018 11:18 AM
To: jamjpan/Cargo
Cc: James Pan; Author
Subject: Re: [jamjpan/Cargo] Solutions pseudocode (#1)
I was thinking how we can make the simulator more like a simulator. In the object tracking challenges, the benchmark just care about the output of each frame given the previous frames. Although our benchmark simulator is more comlicated than this, there might still be a way to focus on input and output.
Like we can have a run function without any parameter for the solution class, and user shall invoke a function in the beginning of run(), like int got = cargo.GetRequest(int n, std::queue& rq) to get n requests(for streaming requests is 1), and the simulator will store the number n and the get time t1. When the assignment task finishes, invoke cargo.AddAssignment(std::pair) or cargo.AddAssignments(std::vectorstd::pair), then the simulator will record time t2 and display the running time (t2-t1)/n.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/jamjpan/Cargo/issues/1#issuecomment-378808948, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFJWfczSBZWz7cGX_NaZ8Le8Y1Wbmfzvks5tlYzzgaJpZM4TFFY3.

Hold off on implementing the TShare grid... experimentally it's not much better than a simple grid, and it has much higher maintenance cost. I want to discuss with Prof Li first.

Sorry to reply late, I was working on my computer vision project. In my inital idea, requests and assignments are in the processor thread as we designed before, and the function caller is the solution, while maintenance is in the server thread, but the caller is the server.
Maybe the index in TShare is updated too frequent. The paper says there will be a new status when joining in the ridesharing service, or when a passenger gets on or off the taxi, or at a frequency (e.g., every 20 seconds) while connected to the service.

No problem, you can prioritize your own work, haha. I am happy to have any help you can spare. I am back from Changzhou. I thought I would have time to work a little bit but.. I didn't. I saw many relatives and was very busy. I will work on the pseudocodes today and work on generating a problem set.
OK, assignments in the processor thread, that is ok. But I think maintenance should not be in the server thread. The key is the maintenance will take away time for a solution to do processing. For example, in one second, Solution A can do maintenance in 500 ms, then only has 500 ms to do processing; but Solution B can do maintenance in 150 ms, then has 850 ms to do processing, so maybe can match more requests.
I will send Dr Li his thoughts about if we need the TShare grid index. I think not necessary, because the computational difficult part is the scheduling, not the candidate-finding. TShare uses a O(n^2) scheduling-- it fixes the positions of the existing stops, then tries to insert the pickup, then tries to insert the destination. The naive method of testing every scheduling permutation is in O(n!), so the TShare method is a big improvement.
The index is updated every time the taxi sends a new GPS coordinate. You can see the paper in Sec 4.1: "If taxis are tracked, when new GPS records are received from taxis, taxi lists need to be updated." But you are also correct, the frequency can be reduced to only the few events based on Sec 3.. So I am not sure... what happens if taxis are not tracked?? Is the index not as accurate?

From: Juntao Hu<EMAIL_ADDRESS>Sent: Sunday, April 8, 2018 10:41 AM
To: jamjpan/Cargo
Cc: James Pan; Author
Subject: Re: [jamjpan/Cargo] Solutions pseudocode (#1)
Sorry to reply late, I was working on my computer vision project. In my inital idea, requests and assignments are in the processor thread as we designed before, and the function caller is the solution, while maintenance is in the server thread, but the caller is the server.
Maybe the index in TShare is updated too frequent. The paper says there will be a new status when joining in the ridesharing service, or when a passenger gets on or off the taxi, or at a frequency (e.g., every 20 seconds) while connected to the service.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/jamjpan/Cargo/issues/1#issuecomment-379514791, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFJWfepwHAT7Vhso-TwVm_VvPOkNHrwDks5tmXi-gaJpZM4TFFY3.

I'm trying to build a ground truth simulator from scratch, which doesn't have any relationship with the algorithms and could provide some interfaces. As for the maintanence time, I think in real-world scenario, matching and status updating are seperated, even in two different departments, so I treat it as a time-cost in another thread.

How about this? Good idea?
The below are different ways to insert an o-d pair into an existing vehicle schedule. The methods are guaranteed to find only valid schedules (meet the time window and capacity constraints).

function schedule_insertion_add(Vehicle veh, Request req, Schedule T):
    # Insert the o-d pair using the Insertion Heuristic to make new schedule T
    # Horn 2002, Ma 2015, Jung 2016
    # Returns the cost of T

function schedule_random_add(Vehicle veh, Request req, Schedule T):
    # Insert the o-d pair using a random-search strategy to make new schedule T
    # Returns the cost of T

function schedule_exhaustive_add(Vehicle veh, Request req, Schedule T):
    # Insert the o-d pair using an exhaustive search strategy to make new schedule T
    # Finds the least-cost schedule
    # Returns the cost of T

function schedule_kinetictree_add(Vehicle veh, Request req, Schedule T):
    # Insert the o-d pair by traversing a kinetic tree to make new schedule T
    # Huang 2014
    # Returns the cost of T

function cost(Schedule S, Route w):
    # Finds the shortest-path route w through S
    # Returns the cost of w


yo react-server returns the following error : TypeError: Cannot read property 'then' of undefined     at Base.prompt (/usr/lib/node_modules/generator-react-server/node_modules/yeoman-generator/lib/base.js:232:44)

Runnig yo react-server returns the following error :

[?] What would you like to call your app? (RS) events.js:141
throw er; // Unhandled 'error' event
^

TypeError: Cannot read property 'then' of undefined
at Base.prompt (/usr/lib/node_modules/generator-react-server/node_modules/yeoman-generator/lib/base.js:232:44)
at module.exports.yeoman.Base.extend.prompting (/usr/lib/node_modules/generator-react-server/generators/app/index.js:35:15)
at Object. (/usr/lib/node_modules/generator-react-server/node_modules/yeoman-generator/lib/base.js:431:23)
at /usr/lib/node_modules/generator-react-server/node_modules/run-async/index.js:26:25
at /usr/lib/node_modules/generator-react-server/node_modules/run-async/index.js:25:19
at /usr/lib/node_modules/generator-react-server/node_modules/yeoman-generator/lib/base.js:432:9
at processImmediate [as _immediateCallback] (timers.js:383:17)

Ok, it seemed like my yo was old version and once updated it all ran fine. the following link helped
http://codehandbook.org/typeerror-cannot-read-property-then-of-undefined-yo-react-server/


pghoard: Azure upload uses tell method

At least when using azure-storage-blob==2.1.0, Azure upload (when done
in default parallel=2 mode), failed without proper tell method on file
object as the faked None was not equal to 0 when upload started. By
using file object which actually has tell method, upload worked fine.
The store_file_object seemed to be broken (at least) due to that since
August.

This breaks streaming uploads. Or doesn't for us internally because we're using the patch from https://github.com/Azure/azure-storage-python/pull/670/files but does for others.

I tested that WITHOUT the change the particular upload method did not work, and with the change, it did.
The broken line is actually elsewhere in the same line you refer to, namely around line 431:
    431                         absolute_position = self._stream_begin_index + self._position
    432                         self._wrapped_stream.seek(absolute_position, SEEK_SET)
    433                         # If we can't seek to the right location, our read will be corrupted so fail fast.
    434                         if self._wrapped_stream.tell() != absolute_position:
    435                             raise IOError("Stream failed to seek to ...

and without the tell method, I got None as self._wrapped_stream.tell() and absolute_position of 0.

I probably only tested with input that had neither seek or tell and you tested with input that had both. I reckon the Azure upload code ends up in different code path when the stream is seekable. I think the hack is required still but it should only be applied for non-seekable streams.

Updated it to provide tell iff no tell present; it seems to work still fine for seekable case at least.

Won't work I'm afraid:
>>> sys.stdin.tell()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
io.UnsupportedOperation: underlying stream is not seekable


Fix regression generating configuration

This is not my nicest job for sure. But now it works and we have a test to ensure that it doesn't break again.
To fix this properly we need to do a huge refactor on the core.
fix #4601

Could you provide some tests + more context on what this change is doing (it's not immediate from reading the code).

https://github.com/detekt/detekt/pull/4646/commits/ddd6adeb44808d58d93288e96d72ccca5aab6411#diff-ea3a27e29a40bcb62f6014e51bfdf793236b1ed156b98170570086a1cff78415 this is the unit test that I added to reproduce the issue. The test wasn't testing the real state. The real state is that the file doesn't exist and that all works. That case was failing before and know it works.
All the fix is in this commit: https://github.com/detekt/detekt/pull/4646/commits/ddd6adeb44808d58d93288e96d72ccca5aab6411 the other commits are just refactors to make this change easier. I don't know how to add more tests because the tests are already there.

About context. The issue was this line of code that I added in #4315:
https://github.com/detekt/detekt/blob/481b3b24288c77e62f8c5742d3d5ab4e4206d13f/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/runners/ConfigExporter.kt#L16
The problem is that arguments.createSpec validates that the configuration is ready to execute detekt. One of those checks is: If there is a configuration file path it should exist. But when you are generating the configuration the file doesn't need to exist. For that reason I can't use arguments.createSpec. That's the reason I'm using the Spec DSL directly. (Yeap, we have a DSL for that, Artur did so many things :P)

Thanks for the explanation. IMHO this can be merged 👍


feat: private refunds optimizations

Optimizing gate counts of private refunds.
Optimizations performed:

Using unconstrained encryption when submitting a change note to the user in setup_refunds --> user is sending the note to himself from his own pxe so constraining here is not necessary.

Before: 265418 gates
After opt. 1: 181864 gates,
After opt. 2: 80319 gates

#7968  👈
master

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

Join @benesjan and the rest of your teammates on  Graphite

Benchmark results
Metrics with a significant change:

avm_simulation_time_ms (Token:mint_public): 70.7 (+47%)
avm_simulation_time_ms (Token:assert_minter_and_mint): 40.6 (-45%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,766
1,571
719 (+2%)
761
766 (+1%)

proof_construction_time_sha256_30_ms
11,832
3,186
1,407
1,446 (+1%)
1,471 (+1%)

proof_construction_time_sha256_100_ms
45,368 (-1%)
12,108
5,452
5,456 (+1%)
5,367

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
59.0 (+2%)
88.0 (-1%)

proof_construction_time_poseidon_hash_30_ms
1,529
422
203
223 (-3%)
270 (-2%)

proof_construction_time_poseidon_hash_100_ms
5,649
1,516
675 (-1%)
729 (+2%)
744

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,324
7,844
14,852

l1_rollup_calldata_gas
49,720
92,468
177,380

l1_rollup_execution_gas
1,294,383
2,042,099
3,869,050

l2_block_processing_time_in_ms
267 (+3%)
447 (+1%)
798 (-2%)

l2_block_building_time_in_ms
9,342 (+1%)
18,278 (+1%)
36,203

l2_block_rollup_simulation_time_in_ms
9,342 (+1%)
18,277 (+1%)
36,203

l2_block_public_tx_process_time_in_ms
7,858
16,709 (+1%)
34,592

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
2,998 (+2%)
3,847

node_database_size_in_bytes
12,738,640
16,838,736

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
55.0 (+1%)
8,139

FeeJuice:set_portal
9.13 (-11%)
2,362

Token:constructor
86.9 (+4%)
31,107

FPC:constructor
52.9 (-2%)
22,380

FeeJuice:mint_public
37.9
6,150

Token:mint_public
:warning: 70.7 (+47%)
11,720

Token:assert_minter_and_mint
:warning: 40.6 (-45%)
8,028

AuthRegistry:set_authorized
45.7 (+1%)
4,537

FPC:prepare_fee
243 (+1%)
8,812

Token:transfer_public
23.1 (+8%)
47,374

FPC:pay_refund
65.9 (+5%)
12,114

Benchmarking:increment_balance
976 (+1%)
7,450

Token:_increase_public_balance
38.5 (-3%)
8,960

FPC:pay_refund_with_shielded_rebate
66.0 (-2%)
12,663

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.165 (+3%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.19 (+1%)
3.90 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.113
0.110 (+1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.5
17.7
30.8 (-3%)
59.4 (+1%)
113 (-1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.110
0.102 (-1%)
0.100 (-2%)
0.102 (+1%)
0.101 (-2%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.5 (+1%)
25.7
43.6 (-2%)
83.1 (+2%)
160 (-4%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.109 (+1%)
0.103 (-1%)
0.105 (-2%)
0.102 (+1%)
0.0996 (-5%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.4
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
132
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.105
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,779
668,997

Transaction size based on fee payment method
| Metric |  |
| - |  |