Country pages - Context and Structure - FDRS data incorrectly displayed

National Society Indicators are currently not displaying the correct values on the GO country pages.
Example: Belize https://go.ifrc.org/countries/31/ns-overview/context-and-structure

Branches: It currently displays KPI_noLocalUnits, but it should display KPI_noBranches (we added the number of branches as of this year [2023])
Youth (6-29 yrs): Should be 20? (KPI_PeopleVol_Tot_age_18_29 + KPI_Pstaff_Tot_age_18_29 = 18 +2 = 20 )
I think generally something goes wrong with the disaggregation’s here: There is no 13-17, nor 70-79 reported.

Source: All this data is from 2022, not 2023.

Hey @tovari,

For branches, we're currently using KPI_noLocalUnits since KPI_noBranches has not yet been updated in the FDRS APIs.

For the Youth category (ages 6-29), we are using following formula:

Youth (6-29 years) = KPI_PeopleVol_Tot_age_6_12 + KPI_PeopleVol_Tot_age_13_17 + KPI_PeopleVol_Tot_age_18_29 + KPI_PStaff_Tot_age_18_29

Should we make any change to the calculation?

Regarding volunteer disaggregation, we're utilizing the available data from FDRS, and for any missing data, we're relying on figures from previous years. If we show the data from a specific year or latest year, there are chances that the data might not be available. And the chart might be null.

For the year, we are currently showing the latest year from available data.
Should we make any changes to the current implementations?
cc @samshara @udaynwa @frozenhelium @thenav56

hey @susilnem,

For branches, we're currently using KPI_noLocalUnits since KPI_noBranches has not yet been updated in the FDRS APIs.

So, it has been just updated (KPI_noBranches) in the Data2 FDRS API (note that we only started collecting this information for 2023)

For the Youth category (ages 6-29), we are using following formula:
Youth (6-29 years) = KPI_PeopleVol_Tot_age_6_12 + KPI_PeopleVol_Tot_age_13_17 + KPI_PeopleVol_Tot_age_18_29 + KPI_PStaff_Tot_age_18_29
Should we make any change to the calculation?

The logic of this calculation is correct! But from some digging, it looks like you are mixing and matching disaggregation from different years. I would recommend you stick to 2022 only if that is the latest year available. For example for Belize, It looks like “KPI_PeopleVol_Tot_age_13_17” is from 2021, the other age groups are from 2022,

Regarding volunteer disaggregation, we're utilizing the available data from FDRS, and for any missing data, we're relying on figures from previous years. If we show the data from a specific year or latest year, there are chances that the data might not be available. And the chart might be null.
It seems that GO is taking for Belize, volunteers aging 70-79 from 2019 (2), volunteers aging 13-18 from 2021 (5), and the Total number of volunteers from 2022 (86), showing the data source is FDRS 2023.
Recommend you stick to values of only 1 year for all (FDRS) numbers displayed on the country page
For the year, we are currently showing the latest year from available data.
Yes this makes sense!
Recommend you change the source_year_value to the latest year, so 2022 if it is 2022 data, 2023 if it is 2023 data, et cetera.

@samshara, regarding the incomplete data from the latest available year: we can take data from the latest year, where the missing data is available. We need to indicate the year at the source info (e.g. Belize RC on FDRS, 2022, 2023, 2024) in such case.
We should not fill missing disaggregated data though (e.g. gender/age group data from different years - all these should be taken from the same year).

@samshara, regarding the incomplete data from the latest available year: we can take data from the latest year, where the missing data is available. We need to indicate the year at the source info (e.g. Belize RC on FDRS, 2022, 2023, 2024) in such case. We should not fill missing disaggregated data though (e.g. gender/age group data from different years - all these should be taken from the same year).

@tovari we have created two tickets to address this issue

https://github.com/IFRCGo/go-api/issues/2285
https://github.com/IFRCGo/go-web-app/issues/1433


Split lists Diff - BASE [3/3]

What does this PR do and why?
Do not be alarmed! Most of this diff is mock data and restructuring of the SplitsList and SplitsItem components (extracts a bunch of the SplitsItem code into their own components).
This PR just integrates the splits list diff on the Safe page. Next step will be adding to reconfig preview and upcoming FC card.
e.g. 1

e.g. 2

If you'd like to test:

Check out branch locally on mainnet

Either just go to /@juicebox/safe?tab=history, look through tx's

OR If you want to play around with your own data, replace splits and oldSplits props on SplitsLists instances in ReconfigureRichPreview with mock data (e.g. DUMMY_SPLITS_OLD)

Go to /v2/p/233/safe

Open nonce 24

Play around with the mock data and see if it works as you'd expect.

Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

@johnnyd-eth I think in general I don't love that the complexity of SplitItem - and all of its child components - has grown quite a bit with this PR. When a dev has to work on SplitItem in the future, they now have to consider how it will behave/render normally, and with a diff. This is a classic avenue for bugs to crop up.
I think it might be better to create a whole new set of Diff-only components. These components can still use existing SplitItem components (like LockedUntilValue etc.) so it's not a complete duplication. But it means that Diff-related logic is contained and isolated within those set of components.
WDYT about this? I was hesitant to suggest it but I do worry about the complexity we're adding to SplitItem - something that should be quite simple imo.

It's a very good point indeed.

I've created two new components DiffedSplitList and DiffedSplitItem which incorporate all my changes
I've removed all new diff stuff from the original SplitList and SplitItem components, making them as simple as possible.

@johnnyd-eth :

jb project split looks off
payouts aren't listed in descending order

@johnnyd-eth :

jb project split looks off
payouts aren't listed in descending order

Looks like these were the result of new commits from main. Fixed:


Link getImageData() correctly

Vas is das markdown boog?
some extra ... got in the mix to mess up the HTML goodness.
CC: @petele

Looks like this was fixed in #5867


Critial vulnerabilities

After running npm audit
lodash.template  <4.5.0
Severity: critical
Prototype Pollution in lodash - https://github.com/advisories/GHSA-jf85-cpcp-j695
fix available via `npm audit fix`
node_modules/sticky-sidebar-v2/node_modules/gulp-util/node_modules/lodash.template
  gulp-util  >=1.1.0
  Depends on vulnerable versions of lodash.template
  node_modules/sticky-sidebar-v2/node_modules/gulp-util

minimist  <1.2.6
Severity: critical
Prototype Pollution in minimist - https://github.com/advisories/GHSA-xvch-5gv4-984h
fix available via `npm audit fix`
node_modules/sticky-sidebar-v2/node_modules/minimist

npm audit report
`# npm audit report
ansi-regex  4.0.0 - 4.1.0
Severity: high
Inefficient Regular Expression Complexity in chalk/ansi-regex - https://github.com/advisories/GHSA-93q8-gq69-wqmw
fix available via npm audit fix
node_modules/sticky-sidebar-v2/node_modules/ansi-regex
glob-parent  <5.1.2
Severity: high
glob-parent before 5.1.2 vulnerable to Regular Expression Denial of Service in enclosure regex - https://github.com/advisories/GHSA-ww39-953v-wcq6
fix available via npm audit fix
node_modules/sticky-sidebar-v2/node_modules/glob-parent
chokidar  1.0.0-rc1 - 2.1.8
Depends on vulnerable versions of glob-parent
node_modules/sticky-sidebar-v2/node_modules/chokidar
glob-watcher  >=3.0.0
Depends on vulnerable versions of chokidar
node_modules/sticky-sidebar-v2/node_modules/glob-watcher
gulp  >=4.0.0
Depends on vulnerable versions of glob-watcher
Depends on vulnerable versions of vinyl-fs
node_modules/sticky-sidebar-v2/node_modules/gulp
glob-stream  5.3.0 - 6.1.0
Depends on vulnerable versions of glob-parent
node_modules/sticky-sidebar-v2/node_modules/glob-stream
vinyl-fs  >=2.4.2
Depends on vulnerable versions of glob-stream
node_modules/sticky-sidebar-v2/node_modules/vinyl-fs
lodash.template  <4.5.0
Severity: critical
Prototype Pollution in lodash - https://github.com/advisories/GHSA-jf85-cpcp-j695
fix available via npm audit fix
node_modules/sticky-sidebar-v2/node_modules/gulp-util/node_modules/lodash.template
gulp-util  >=1.1.0
Depends on vulnerable versions of lodash.template
node_modules/sticky-sidebar-v2/node_modules/gulp-util
minimatch  <3.0.5
Severity: high
minimatch ReDoS vulnerability - https://github.com/advisories/GHSA-f8q6-p94x-37v3
fix available via npm audit fix
node_modules/sticky-sidebar-v2/node_modules/minimatch
mocha  5.1.0 - 9.2.1
Depends on vulnerable versions of minimatch
Depends on vulnerable versions of nanoid
node_modules/sticky-sidebar-v2/node_modules/mocha
minimist  <1.2.6
Severity: critical
Prototype Pollution in minimist - https://github.com/advisories/GHSA-xvch-5gv4-984h
fix available via npm audit fix
node_modules/sticky-sidebar-v2/node_modules/minimist
nanoid  3.0.0 - 3.1.30
Severity: moderate
Exposure of Sensitive Information to an Unauthorized Actor in nanoid - https://github.com/advisories/GHSA-qrpm-p2h7-hrv2
fix available via npm audit fix
node_modules/sticky-sidebar-v2/node_modules/nanoid`


KeepInv + Sponge 1.10.2 - 5.0.0-BETA-1808

Players who die keep their inventory even when Gamerule KeepInv is set to false. This happens in all worlds and with no mods/plugins or with them as well.
Saw a guy on the forums with the same problem that wasnt resolved: https://forums.spongepowered.org/t/items-kept-on-death/14436

wrong github, moved to sponge common. my bad


sink(ticdc): use admin statement to query async ddl status

What problem does this PR solve?

Issue Number: close #11521
What is changed and how it works?

Use admin statement to query async ddl status since the original querying operation has performance issue.

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?

After this PR, the user need grant admin permission to TiCDC in downstream database, otherwise TiCDC will disable the optimization of #11476.

Release note
Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with `None`.

/retest

/retest

/retest

/retest

/retest


Configure dependency exclusions

Exclutions
Previously, Spine users had to exclude certain transitive dependencies from their runtime classpath manually. This was required due to runtime collisions in the Protobuf class definitions.
The configuration is non-intuitive and ad-hock-ish:
configurations {
    runtimeClasspath.exclude group 'com.google.protobuf', module: 'protobuf-lite'
    testRuntimeClasspath.exclude group 'com.google.protobuf', module: 'protobuf-lite'
}

This PR enables the Bootstrap plugin to perform this configuration automatically for all Java projects.
Generated Resources
Also in this PR we register the generated resource directory in the source sets so that user doesn't have to do that manually:
sourceSets {
    main {
        resources.srcDir "$projectDir/generated/main/resources"
    }
    test {
        resources.srcDir "$projectDir/generated/test/resources"
    }
}

@armiol, PTAL.

@armiol, PTAL again.

@armiol, PTAL.


Setting the mimetype in django 1.7 does not work

Hi,
When i try to export i get this error:
init() got an unexpected keyword argument 'mimetype'
in django-import-export/django-import-export/import_export/admin.py in export_action
line: 285     mimetype='application/octet-stream',

I think that the error is generated by the fact that i use django 1.7.2 and mimetype was changed to content_type.
Thanks.

which version?
I thought this was fixed with:
https://github.com/bmihelac/django-import-export/commit/0dfb4b9d8288bf47e56465f9269f96f56aea5c55

you are right, it is fixed.  I made a mistake when updating my requirements. Sorry.


butane: 0.13.0 -> 0.13.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/butane/versions.
meta.description for butane is: "Translates human-readable Butane configs into machine-readable Ignition configs"
meta.homepage for butane is: "https://github.com/coreos/butane"
meta.changelog for butane is: ""
Updates performed

Golang update

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/x597lp7xs74dl6hpc9fgzrjsxk181av2-butane-0.13.1/bin/butane passed the binary check.

1 of 1 passed binary check by having a zero exit code.

1 of 1 passed binary check by having the new version present in output.

found 0.13.1 with grep in /nix/store/x597lp7xs74dl6hpc9fgzrjsxk181av2-butane-0.13.1

found 0.13.1 in filename of file in /nix/store/x597lp7xs74dl6hpc9fgzrjsxk181av2-butane-0.13.1

directory tree listing: https://gist.github.com/dd8216c0c0d8e9aeff7ee8d1bd1ac032

du listing: https://gist.github.com/0de3fbc222b83fe8a39dc8b881fccc47

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
butane

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/x597lp7xs74dl6hpc9fgzrjsxk181av2-butane-0.13.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A butane https://github.com/r-ryantm/nixpkgs/archive/56e6f8277a7cb9ce2328ea40445196adc9ae6657.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/x597lp7xs74dl6hpc9fgzrjsxk181av2-butane-0.13.1
ls -la /nix/store/x597lp7xs74dl6hpc9fgzrjsxk181av2-butane-0.13.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

butane

Maintainer pings
cc @pop @ruuda @kalbasit for testing.

Ah, I missed the new release because v0.13.1 is only a tag in the repository, not a release on GitHub like the other releases. Thanks for updating it anyway, bot :-)


properly initialise the random number generator in the integration tests

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1387   +/-   ##
=======================================
  Coverage   89.98%   89.98%
=======================================
  Files         120      120
  Lines        8381     8381
=======================================
  Hits         7541     7541
  Misses        550      550
  Partials      290      290

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 1fc6c5a...bc21637. Read the comment docs.


Fixes: 223 and Fixes: 224

Description & Motivation
Fixes: 223
PR https://github.com/intel/rohd/pull/203 introduced ReplicationOp, but only 1-bit Logics are supported, it does support multi-bit Logics.
To Reproduce
Use ReplicationOp with a multi-bit value for the bit input.
Expected behavior
It's probably nice to support multi-bit, but requires a bit more logic to handle that.
Fixes: 224
Add some function on Logic, like Logic.replicate(int multiplier) or something like that.

Related Issue(s)

223
224
Testing

Added tests ([tests/replication_test.dart])

Test invalid multipliers (0, -1)
Test that multiply by 1 returns the same signal
Test other multipliers

Backwards-compatibility

Is this a breaking change that will not be backwards-compatible?  If yes, how so?

No.
Documentation

Does the change require any updates to documentation?  If so, where?  Are they included?

Added/Modified the required doc comments.

Looks like just some conflicts to resolve then we can merge it!


Integration Test - Release - 2022/03/03 10:02:39

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@prmerger-dev-1 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Clima master

list off changes:

Add function for cleanup in case of zero area fraction.
This function sets updrafts values of area fraction and w to zero and of theta and qt to grid mean values wherever the area fraction is smaller than the specified minimum area.
Add function for subdomain BCs. this function applies the upper and lower BCs for all subdomains (updrafts and environment) accordingly with the position of variables and the type of BC.
Add set_bcs functions to environment first and second moment variables.
Add function for non hydrostatic pressure term. This function calculates the non hydrostatic pressure and store it as an updraft variable.
fix a bag in compute ustar following a discussion with Colleen and Kyle

Re: "In zero_area_fraction_cleanup, the minimum area fraction"
I agree with these comments can you makes them as you accept ? or should I make them ?

Merging this pull request, I will fix the zero_area_fraction_cleanup in a separate pull request.


InMemoryRateLimiter

good job, but  when i use it in my project (the  version is Brixton.RELEASE) ,  can't find this class  org.springframework.cloud.netflix.zuul.util.ZuulRuntimeException

Hello, thanks for sharing.
The current version is compatible with Camden release and that class you mentioned was moved.
I'll try to find a way to keep backwards compatibility but I'm still not sure how to achieve that.

thanks u answer . an advise
in this method com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.repository.AbstractRateLimiter.  consume() . if I use the InMemoryRateLimiter.   I think  use the synchronized will let it be more slowly  .

@bensonHe good catch, it actually changed types over the time. I was using WeakHashMap at first.

maybe  not. because Math.max(-1, rate.getRemaining() - 1)  not atomic operation.  Ignore my advice

Maye you need create a  thread to clean the memory of ConcurrentHashMap.   because  rate

in class com.marcosbarbero.cloud.autoconfigure.zuul.ratelimit.config.repository.InMemoryRateLimiter#ConcurrentHashMap. the repository will out of memory. maybe you can use guava cache to insterd

@bensonHe using cache will result in data lost of the rate limit
How many different keys do you expect?

if i user

user
url

,. the new user will register ervery day, so the keys will grow ervery day

why every day? it is the same user and the same url...

new user will register,   the new  user have different keys. so  the keys will be added...
ex:
user A visit url a.com/test   . a key save
now user B register.
user B visit url a.com/test  . new key added
....
user C,D,E,F,G... and so on  register.   visit url a.com

What if I move from ConcurrentHashMap to WeakHashMap?

I think that between cache and WeakHashMap, cache will be better (also same logic as using redis - to an extent).
But, since in order to use a custom implementation of the repository, you only need to create a bean that extends the AbstractRateLimiter class and change it to cache or anything else.
InMemoryRateLimiter is a good implementation, with proper monitoring of the gateways the memory shouldn't be a problem.
My suggestion is to keep the current implementation which is good and allows easy customization.

In my project  ,  I use the guava cache...


Message-editor: links can be inserted/edited

Requirements

Message editor has a button to create/modify links

When a link is selected in editor and button is pressed, a dialog is open with the existing link address.

If the user clicks OK or presses Enter key, link href value is updated with the modified value (if is blank link is removed)
If the user clicks Cancel or presses Escape key, the link will remain unchanged
In both cases the dialog will close

If there is  a selection with no links and the button is pressed, a dialog is open with a blank Textfield waiting for user input for the link.

If the user clicks OK or presses Enter key, the highlighted selection becomes a link to the specified href value
If the user clicks Cancel or presses Escape key, the selection will remain unchanged
In both cases the dialog will close

If there is  nothing selected and the button is pressed, a dialog is open with a blank Textfield waiting for user input for the link.

If the user clicks OK or presses Enter key, a link is inserted with the specified href value with the text of the this href value
If the user clicks Cancel or presses Escape key, nothing will be changed
In both cases the dialog will close

Message editor has a button to remove links

If the user presses the button, all links in the current selection will be removed


Check if array/json field contains the request query value

I have a number_ids json field in one of my collections which stores an array of numbers. I want to check whether the number which was sent with the request query is available in one of the number_ids field of my records or not.
I tried so many combinations and read the docs but wasn't able to achieve my desired result.
number_ids ~ @request.query.number_id kinda works but it doesn't compare them strictly; Meaning that if the received number id is 5, and the array contains a number id of 512368, it will still pass.
I specifically need this for list searches, where I want to return the record where the number_ids array contains the number_id passed with the request query.

IN like expression over json fields are not supported at the moment.
There are plans to add :each modifier support for the next release that should cover this case too - https://github.com/orgs/pocketbase/projects/2/views/1?pane=issue&itemId=38816514.
An alternative to storing your values as json field array is to have a separate collection referenced with a relation field. This allows more control over who can access and edit the ids since they will have their own API rules. You'll be also able to define a SQLite index for the field that will hold the id and eventually helps with the performance in large datasets.

IN like expression over json fields are not supported at the moment.
There are plans to add :each modifier support for the next release that should cover this case too - https://github.com/orgs/pocketbase/projects/2/views/1?pane=issue&itemId=38816514.
An alternative to storing your values as json field array is to have a separate collection referenced with a relation field. This allows more control over who can access and edit the ids since they will have their own API rules. You'll be also able to define a SQLite index for the field that will hold the id and eventually helps with the performance in large datasets.

Thank you 🙏.
I originally wanted to post this on the Q&A but made a silly mistake of writing it here. Apologies 🙏


Provide plugin for Ehcache 2.x

Please answer these questions before submitting pull request

Why submit this pull request?

[ ] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues
#3574

Make ci and e2e passed please. And after #3528 merged, plugin test is moving to PR process rather than in separated repo.

You need to fix the header issue. We expected header including Apache 2.0. Please run the command locally and fix the files.

Read Jenkinsfile-Agent-Test file, you need to add a stage called Ehcache 2.x.

@dmsolr Ehcache plugin tests take 7m43s

@dmsolr Ehcache plugin tests take 7m43s

there are 19 cases. It took so long time.

there are 19 cases. It took so long time.

Make sense to me.

You are using Chinese comment. Please don't.

then please submit another PR to add the logo/icon for Ehcache.

@kezhenxu94 As a local span only, I think we don't need that.

then please submit another PR to add the logo/icon for Ehcache.

@kezhenxu94 As a local span only, I think we don't need that.

Ooops, I missed that, forgive me


ConnectionError of tperf.cpp

I modified tperf.cpp and after that client can send data to server successfully
However when it implied connection end after sending all data the client threw an error：“[EventHandler.cpp:89] EventBase:failed to register event for fd 8:Resources temporarily unavailable”. Then server also threw an error:“[tperf.cpp] Socket error=Internal error” which triggered onConnectionError
So I wonder the possible reasons leading to such error? Because data is sent successfully, can I just ignore the error?
Thanks!

This error typically means that you've run into the some limits, such as memories, processes (if you are fork()ing or open 'file-descriptor' limits (more likely if you have lots of sockets open).
You can check the thresholds locally via ulimit -a
Can you share more details about your setup?

I just run the following code:
`class TPerfClient : public quic::QuicSocket::ConnectionCallback,
public quic::QuicSocket::ReadCallback,
public quic::QuicSocket::WriteCallback,
public quic::QuicSocket::DeliveryCallback
{
public:
QuicClient(const std::string& host, u16 port): addr(host.c_str(), port), networkThread("CCPerfClientThread") {
this->evb = networkThread.getEventBase();
}
std::future connect() {
this->evb->runInEventBaseThreadAndWait([&] {
auto sock = std::make_uniquefolly::AsyncUDPSocket(evb);
quicClient =
std::make_sharedquic::QuicClientTransport(evb, std::move(sock));
quicClient->setHostname("echo.com");
quicClient->setCertificateVerifier(
quic::test::createTestCertificateVerifier()
);
quicClient->addNewPeerAddress(addr);
        LOG(INFO) << "CCPerfMvfst connecting to " << addr.describe();
        quicClient->start(this);
    });
    return transportReady.get_future();
}

/* codes */
}
void do_client() {
auto client = TperfClient(FLAGS_ip, FLAGS_port);
auto ready = client.connect();
ready.wait();
// do nothing, just wait
}
int main(int argc, char **argv) {
gflags::ParseCommandLineFlags(&argc, &argv, false);
folly::Init init(&argc, &argv);
fizz::CryptoUtils::init();
if (FLAGS_mode == "client") {
    do_client();
} else {
    do_server();
}
return 0;

}
`
Those codes just finished connection without transferring any data.
After running these codes, the print message is:
TPerfClient connecting to [::1]:6668
TPerfClient: onTransportReady
TPerfClient connection end
EventBase: failed to register event handler for fd 8: Resource temporarily unavailable

I just run the following code:
`class TPerfClient : public quic::QuicSocket::ConnectionCallback,
public quic::QuicSocket::ReadCallback,
public quic::QuicSocket::WriteCallback,
public quic::QuicSocket::DeliveryCallback
{
public:
QuicClient(const std::string& host, u16 port): addr(host.c_str(), port), networkThread("CCPerfClientThread") {
this->evb = networkThread.getEventBase();
}
std::future connect() {
this->evb->runInEventBaseThreadAndWait([&] {
auto sock = std::make_uniquefolly::AsyncUDPSocket(evb);
quicClient =
std::make_sharedquic::QuicClientTransport(evb, std::move(sock));
quicClient->setHostname("echo.com");
quicClient->setCertificateVerifier(
quic::test::createTestCertificateVerifier()
);
quicClient->addNewPeerAddress(addr);
    LOG(INFO) << "CCPerfMvfst connecting to " << addr.describe();
    quicClient->start(this);
});
return transportReady.get_future();

}
other unrelevant codes
}
void do_client() {
auto client = TperfClient(FLAGS_ip, FLAGS_port);
auto ready = client.connect();
ready.wait();
// do nothing, just wait
}
int main(int argc, char **argv) {
gflags::ParseCommandLineFlags(&argc, &argv, false);
folly::Init init(&argc, &argv);
fizz::CryptoUtils::init();
if (FLAGS_mode == "client") {
do_client();
} else {
do_server();
}
return 0;
}
`
Those codes just finished connection without transferring any data.
After running these codes, the print message is:
TPerfClient connecting to [::1]:6668
TPerfClient: onTransportReady
TPerfClient connection end
EventBase: failed to register event handler for fd 8: Resource temporarily unavailable

I just run the following code:
`class TPerfClient : public quic::QuicSocket::ConnectionCallback,
public quic::QuicSocket::ReadCallback,
public quic::QuicSocket::WriteCallback,
public quic::QuicSocket::DeliveryCallback
{
public:
QuicClient(const std::string& host, u16 port): addr(host.c_str(), port), networkThread("CCPerfClientThread") {
this->evb = networkThread.getEventBase();
}
std::future connect() {
this->evb->runInEventBaseThreadAndWait([&] {
auto sock = std::make_uniquefolly::AsyncUDPSocket(evb);
quicClient =
std::make_sharedquic::QuicClientTransport(evb, std::move(sock));
quicClient->setHostname("echo.com");
quicClient->setCertificateVerifier(
quic::test::createTestCertificateVerifier()
);
quicClient->addNewPeerAddress(addr);
LOG(INFO) << "CCPerfMvfst connecting to " << addr.describe();
quicClient->start(this);
});
return transportReady.get_future();
}
other unrelevant codes
}
void do_client() {
auto client = TperfClient(FLAGS_ip, FLAGS_port);
auto ready = client.connect();
ready.wait();
// do nothing, just wait
}
int main(int argc, char **argv) {
gflags::ParseCommandLineFlags(&argc, &argv, false);
folly::Init init(&argc, &argv);
fizz::CryptoUtils::init();
if (FLAGS_mode == "client") {
do_client();
} else {
do_server();
}
return 0;
}`
Those codes just finished connection without transferring any data.
After running these codes, the print message is:
TPerfClient connecting to [::1]:6668
TPerfClient: onTransportReady
TPerfClient connection end
EventBase: failed to register event handler for fd 8: Resource temporarily unavailable

I do not see anything obvious from the code you shared.
Are both the sever and client on the same host? If so, can you share what's in the do_server() as well?
Also, can you run client and server with increased VLOG verbosity (e.g. --v=4) and share the logs?

./tperf -mode=client -v=4
I0111 13:56:23.999944 13447 tperf.cpp:481] TPerfClient connecting to [::1]:6666
I0111 13:56:24.000385 13447 QuicPacketScheduler.cpp:473] Wrote crypto frame offset=0 bytesWritten=232 client CID=cdaa52ec9f9364d1 server CID=None peer address=[::1]:6666
I0111 13:56:24.003458 13447 tperf.cpp:413] TPerfClient: onTransportReady
I0111 13:56:24.003489 13447 QuicPacketScheduler.cpp:473] Wrote crypto frame offset=0 bytesWritten=36 client CID=cdaa52ec9f9364d1 server CID=400002006aaab5d3 peer address=[::1]:6666
I0111 13:56:24.003712 13447 QuicClientTransport.cpp:314] Client received ack for largestAcked=0 client CID=cdaa52ec9f9364d1 server CID=400002006aaab5d3 peer address=[::1]:6666
I0111 13:57:24.004668 13447 QuicTransportBase.cpp:2121] idleTimeoutExpired client CID=cdaa52ec9f9364d1 server CID=400002006aaab5d3 peer address=[::1]:6666
I0111 13:57:24.004737 13447 QuicTransportBase.cpp:2263] Clearing 0 peek callbacks
I0111 13:57:24.004752 13447 tperf.cpp:423] TPerfClient connection end
E0111 13:57:24.006814 13447 EventHandler.cpp:89] EventBase: failed to register event handler for fd 8: Resource temporarily unavailable
-v=10
I0111 13:55:14.256525 13413 QuicTransportBase.cpp:2121] idleTimeoutExpired client CID=d1e0a9f5bc2f1ffb server CID=40000148c6e0eca8 peer address=[::1]:6666
I0111 13:55:14.256593 13413 QuicTransportBase.cpp:329] Stopping read looper due to immediate close client CID=d1e0a9f5bc2f1ffb server CID=40000148c6e0eca8 peer address=[::1]:6666
I0111 13:55:14.256609 13413 FunctionLooper.cpp:84] stop: ReadLooper
I0111 13:55:14.256623 13413 FunctionLooper.cpp:84] stop: PeekLooper
I0111 13:55:14.256631 13413 FunctionLooper.cpp:84] stop: WriteLooper
I0111 13:55:14.256644 13413 QuicTransportBase.cpp:2263] Clearing 0 peek callbacks
I0111 13:55:14.256656 13413 QuicTransportBase.cpp:772] Stopping read looper client CID=d1e0a9f5bc2f1ffb server CID=40000148c6e0eca8 peer address=[::1]:6666
I0111 13:55:14.256670 13413 FunctionLooper.cpp:84] stop: ReadLooper
I0111 13:55:14.256682 13413 QuicTransportBase.cpp:1094] Stopping peek looper client CID=d1e0a9f5bc2f1ffb server CID=40000148c6e0eca8 peer address=[::1]:6666
I0111 13:55:14.256695 13413 FunctionLooper.cpp:84] stop: PeekLooper
I0111 13:55:14.256706 13413 QuicTransportBase.cpp:1131] Client stopping write looper because conn closed client CID=d1e0a9f5bc2f1ffb server CID=40000148c6e0eca8 peer address=[::1]:6666
I0111 13:55:14.256721 13413 FunctionLooper.cpp:84] stop: WriteLooper
I0111 13:55:14.256732 13413 tperf.cpp:423] TPerfClient connection end
I0111 13:55:14.256743 13413 EventBase.cpp:572] EventBase(): Received terminateLoopSoon() command.
I0111 13:55:14.256772 13413 EventBase.cpp:497] EventBase(): Done with loop.
I0111 13:55:14.258798 13413 EventBase.cpp:258] EventBase(): Destroyed.
E0111 13:55:14.258832 13413 EventHandler.cpp:89] EventBase: failed to register event handler for fd 8: Resource temporarily unavailable
I0111 13:55:14.258874 13413 QuicClientTransport.cpp:78] Destroyed connection to server=[::1]:6666
void do_server(){
TPerfServer server(
FLAGS_host,
FLAGS_port,
FLAGS_block_size,
FLAGS_writes_per_loop,
flagsToCongestionControlType(FLAGS_congestion),
FLAGS_gso,
FLAGS_max_cwnd_mss,
FLAGS_pacing,
FLAGS_num_streams,
FLAGS_bytes_per_stream);
server.start();
}

BTW, I dislodge the function createNewStream() in tperf.cpp, and in the same machine command ./tperf as well as ./tperf -mode=client were connected successfully, after 1 minute it throw the error messages posted above with other codes unchanged

It looks like all your conns are hitting idle timeout and closing automatically. From the logs it doesn’t look like any data is sent. It might be possible that you have a lot of processes that are hanging around from previous tests. What would be more useful here is to fork the repo and check in your code into a branch of the fork. That way we can see the entire code in a formatted way. It’s hard to read a paste of the code, thanks

Thanks, I think it is the folly that causes the problems. Because when I replace the newest folly repo with  old version folly repo, the codes run successfully and there's no errors

Sorry for not following up on this.
Do you still see this issue?

Sorry for not following up on this.
Do you still see this issue?

Closing this issue for now, please feel free to re-open if this issue is still occurring.


Can't build cache

python -c "import dmenu_extended

dmenu_extended.dmenu().cache_build()"
Setting up dmenu-extended prefs files...
Plugins directory exists - skipped
Cache directory exists - skipped
prefs directory exists - skipped
Existing preferences file found, will not overwrite.
Traceback (most recent call last):
File "", line 2, in
File "/usr/lib/python3.5/site-packages/dmenu_extended.py", line 668, in cache_build
applications = self.scan_applications()
File "/usr/lib/python3.5/site-packages/dmenu_extended.py", line 555, in scan_applications
for line in f.readlines():
File "/usr/lib/python3.5/codecs.py", line 706, in readlines
return self.reader.readlines(sizehint)
File "/usr/lib/python3.5/codecs.py", line 615, in readlines
data = self.read()
File "/usr/lib/python3.5/codecs.py", line 501, in read
newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd9 in position 22: invalid continuation byte

Hi, sorry for the delayed response.
This issue is occurring frequently with dmenu-extended users so I will be looking into this.
Hopefully sometime during the next week I'll get time to sort this out once and for all.
I'll keep you updated.
Thanks for trying dmenu-extended.

Thank you.

Hi AcarBurak, guiguid just merged a change that will probably fix your problem.
Could you try out the latest version and let me know if the issue has gone?

Works, thank you.


feat(vis-type: bar): introduce workers + fix some bugs

Closes #563
Developer Checklist (Definition of Done)
Issue

[x] All acceptance criteria from the issue are met
[x] Tested in latest Chrome/Firefox

UI/UX/Vis

[x] Requires UI/UX/Vis review

[x] Reviewer(s) are notified @datavisyn/core @thinkh
[ ] Review has occurred (link to notes)
[ ] Feedback is included in this PR
[ ] Reviewer(s) approve of concept and design

Code

[x] Branch is up-to-date with the branch to be merged with, i.e., develop
[x] Code is cleaned up and formatted
[ ] Unit tests are written (frontend/backend if applicable)
[ ] Integration tests are written (if applicable)

PR

[x] Descriptive title for this pull request is provided (will be used for release notes later)
[x] Reviewer and assignees are defined
[x] Add type label (e.g., bug, feature) to this pull request
[x] Add release label (e.g., release: minor) to this PR following semver
[x] The PR is connected to the corresponding issue (via Closes #...)
[x] Summary of changes is written

Summary of changes

Addresses bugs mentioned in #563 and its comments

Screenshots

N/A

Additional notes for the reviewer(s)

N/A

Handled cases where too many bars are displayed:

NOTE: This message is not displayed initially, but only when all the computation is done and the number of bars are calculated. Therefore it takes some time to show.

Handled case where there is no data to display:

The bar is not highlighted when I click on a bar to select the items. The items itself however, are selected.

Fixed in https://github.com/datavisyn/visyn_core/pull/575/commits/60cbc938873b3ec43d4657dcd9eb7bcbf5ccef68

Looks good to me! 🚀

Also beautiful


Update scalafmt-core to 2.7.0

Updates org.scalameta:scalafmt-core from 2.6.4 to 2.7.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, semver-minor

Codecov Report

Merging #11 into main will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #11   +/-   ##
=======================================
  Coverage   73.33%   73.33%
=======================================
  Files           2        2
  Lines          15       15
=======================================
  Hits           11       11
  Misses          4        4

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 b12bcff...728f9e9. Read the comment docs.

Outdated


Add workflow to update indices list in docs

To update the list from the official ASI one needs to run
SpectralIndices._get_indices(true)
SpectralIndices._create_indexfun()

and this updates the local json and creates the native julia functions. This is not present in the docs, should be added
Additionally, how to update the list with a local index (not from ASI)?
Also maybe change the names of the functions if they have to be user facing

following #78 this is now
julia
SpectralIndices.get_indices(true)
SpectralIndices.create_indexfun()


errorMessageResource l18n

Hi,
I try to combine the static errorMessageResource with l18n. So when I change the app language, the error messages should change also. Is this possible? I use ng2-translate as module.
Something like that
 this.errorMessageResources = {         companyName: {           minlength: 'Register.Errors.CompanyName'         },
Thx

I recommend you to use ngx-translate. I know it work with this one because we use it on internal application.


What is the meaning of the receiptsRoot in TransactionScript?

What is the meaning of the receiptsRoot in TransactionScript: https://github.com/FuelLabs/fuel-specs/blob/master/specs/protocol/tx_format.md#transactionscript

This should probably be moved to discord dev chat or github discussions, as it's not a bug or feature request.
https://github.com/FuelLabs/fuel-specs/discussions

This should probably be moved to discord dev chat or github discussions, as it's not a bug report or a feature request.
https://github.com/FuelLabs/fuel-specs/discussions

OK


update favicons

resolve https://github.com/kubesphere/dev-guide/issues/136

/assign @rayzhou2017
https://realfavicongenerator.net/favicon_checker?protocol=https&site=deploy-preview-137--kubesphere-dev-guide.netlify.app%2Fextension-dev-guide%2Fzh%2F#.YxfHuHbP23A

Thanks @Arhell! I found the icon at somewhere (for example, the doc website as the screenshot shown) is white. Is there any reason for it?

As you can see from the screenshot, the green one is expected.

Thanks @Arhell! I found the icon at somewhere (for example, the doc website as the screenshot shown) is white. Is there any reason for it?  As you can see from the screenshot, the green one is expected.

Are you using safari?

Thanks @Arhell! I found the icon at somewhere (for example, the doc website as the screenshot shown) is white. Is there any reason for it?  As you can see from the screenshot, the green one is expected.

Are you using safari? https://github.com/kubesphere/dev-guide/pull/137/files#diff-acf7d36ba6c864474a9bf900f0efc50b868c1c586c66c601a337cf37f6396186R8

yes. Just checked FF and Chrome. Both are green. Any reason why it is white in Safari?

Thanks @Arhell! I found the icon at somewhere (for example, the doc website as the screenshot shown) is white. Is there any reason for it?  As you can see from the screenshot, the green one is expected.

Are you using safari? https://github.com/kubesphere/dev-guide/pull/137/files#diff-acf7d36ba6c864474a9bf900f0efc50b868c1c586c66c601a337cf37f6396186R8

yes. Just checked FF and Chrome. Both are green. Any reason why it is white in Safari?

Corrected, I will also correct it on the main site


db import translates SourceTable many-to-many relationships, but not those of other tables

I tried to generate a dataset in SQLite format and import it into CLDF using pycldf.db.Database.to_cldf. Mostly, I could wrap my head around the requirements on that database structure, with its useful translations to CLDF ontology terms. However, I found a little-use spot where that translation is not happening, and that was confusing, and I don't know enough about csvw to start suggesting a fix.
My metadata file is given at the bottom of this post. The interesting feature is the "separator": ";", in FormTable.parameterReference. This is nicely parsed as a many-to-many connection through an association table. However, where all other tables and columns are expected to be named according to CLDF terms, the first column of this table is expected to be forms.csv_concepts.csv.ID, not FormTable_ParameterTable.cldf_id, which is not only inconsistent with how pycldf.db.Database works otherwise, but also problematic because the . in the URL is passed to the table name generator without question. I currently work around this issue by explicitly setting
db.tables[2].many_to_many["Concept_IDs"].name = "FormTable_ParameterTable"

but I think the clean way would be if pycldf.db treated these properties the same way it treats every other potential CLDF Term.
{
    "@context": [
        "http://www.w3.org/ns/csvw",
        {
            "@language": "en"
        }
    ],
    "dc:conformsTo": "http://cldf.clld.org/v1.0/terms.rdf#Wordlist",
    "dialect": {
        "commentPrefix": null
    },
    "tables": [
        {
            "dc:conformsTo": "http://cldf.clld.org/v1.0/terms.rdf#FormTable",
            "dc:extent": 32465,
            "tableSchema": {
                "columns": [
                    {
                        "datatype": {
                            "base": "string",
                            "format": "[a-zA-Z0-9_\\-]+"
                        },
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#id",
                        "required": true,
                        "name": "ID"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#languageReference",
                        "required": false,
                        "name": "Language_ID"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#parameterReference",
                        "required": false,
                        "separator": ";",
                        "name": "Concept_IDs"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Phonemic_Transcription"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#form",
                        "required": false,
                        "name": "Phonetic_Transcription"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Orthographic_Transcription"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Variants_of_Form_given_by_Source"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#value",
                        "required": true,
                        "name": "Original_Value_of_Cell"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#comment",
                        "required": false,
                        "name": "Comment"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#source",
                        "required": false,
                        "separator": ";",
                        "name": "Source"
                    }
                ],
                "foreignKeys": [
                    {
                        "columnReference": [
                            "Language_ID"
                        ],
                        "reference": {
                            "resource": "languages.csv",
                            "columnReference": [
                                "ID"
                            ]
                        }
                    },
                    {
                        "columnReference": [
                            "Concept_IDs"
                        ],
                        "reference": {
                            "resource": "concepts.csv",
                            "columnReference": [
                                "ID"
                            ]
                        }
                    }
                ],
                "primaryKey": [
                    "ID"
                ]
            },
            "url": "forms.csv"
        },
        {
            "dc:conformsTo": "http://cldf.clld.org/v1.0/terms.rdf#ParameterTable",
            "tableSchema": {
                "columns": [
                    {
                        "datatype": {
                            "base": "string",
                            "format": "[a-zA-Z0-9_\\-]+"
                        },
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#id",
                        "required": true,
                        "name": "ID"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#name",
                        "required": true,
                        "name": "English"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Set"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "English_Strict"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Spanish"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "French"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Portuguese"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#comment",
                        "required": false,
                        "name": "Comment"
                    }
                ],
                "primaryKey": [
                    "ID"
                ]
            },
            "url": "concepts.csv"
        },
        {
            "dc:conformsTo": "http://cldf.clld.org/v1.0/terms.rdf#LanguageTable",
            "dc:extent": 38,
            "tableSchema": {
                "columns": [
                    {
                        "datatype": {
                            "base": "string",
                            "format": "[a-zA-Z0-9_\\-]+"
                        },
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#id",
                        "required": true,
                        "name": "ID"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#name",
                        "required": false,
                        "name": "Name"
                    },
                    {
                        "datatype": {
                            "base": "string",
                            "format": "[a-z0-9]{4}[1-9][0-9]{3}"
                        },
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#glottocode",
                        "required": false,
                        "valueUrl": "http://glottolog.org/resource/languoid/id/{glottocode}",
                        "name": "Glottocode"
                    },
                    {
                        "datatype": {
                            "base": "string",
                            "format": "[a-z]{3}"
                        },
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#iso639P3code",
                        "required": false,
                        "name": "ISO639P3code"
                    },
                    {
                        "datatype": "string",
                        "required": false,
                        "name": "Curator"
                    },
                    {
                        "datatype": "string",
                        "propertyUrl": "http://cldf.clld.org/v1.0/terms.rdf#comment",
                        "required": false,
                        "name": "Comment"
                    }
                ],
                "primaryKey": [
                    "ID"
                ]
            },
            "url": "languages.csv"
        }
    ]
}

I agree with this naming scheme being slightly inconsistent. At least whenever a component is referenced using an explicit CLDF *Reference property, this should result in the component name being used in the table name rather than the table's url.
I haven't found the . in table names to be much of a problem, though. Just escape the table name with "*.*", e.g. here: https://github.com/pofatu/pofatu-data#querying-the-sqlite-data

I have a fix for this bug, but I'm not sure whether this would constitute a breaking change.
@chrzyki @SimonGreenhill @LinguList @Anaphory : So the fix will result in a (potentially) different schema for SQLite dbs created from CLDF dataset.  If the previous schema can be considered buggy, it would just be a bugfix, people would need to re-generate their databases, but hopefully they would not have written queries against the buggy parts of the schema. What do you think? (I wouldn't want to implement a backwards compat fallback, because that part of the code is already complex enough ...)

Break it now. I think the odds of someone using the old schema here are pretty low.

@SimonGreenhill you mean breaking without bumping the major version, right?

yeah, I don't think we need a new major version here.

Agreeing with @SimonGreenhill.

@Anaphory just released 1.13.0 with a fix for this. Let me know whether this works for you!

I just got around to testing it.
I have an SQLite database containing the following table.
CREATE TABLE IF NOT EXISTS "FormTable_ParameterTable" (
	"FormTable_cldf_id" INTEGER NOT NULL,
	"ParameterTable_cldf_id" INTEGER NOT NULL,
	context VARCHAR,
	"Internal_Comment" VARCHAR,
	PRIMARY KEY ("FormTable_cldf_id", "ParameterTable_cldf_id"),
	FOREIGN KEY("FormTable_cldf_id") REFERENCES "FormTable" (cldf_id),
	FOREIGN KEY("ParameterTable_cldf_id") REFERENCES "ParameterTable" (cldf_id)
);

Running cldf dumpdb cldf-metadata.json lexical_data.sqlite (The metadata json file is essentially the one from my first post) does not fill the Concept_ID column in forms.csv.
I have done some step-by-step debugging. I originally thought that the issue might be in
https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L206
All code around seems to be purely inside csvw, which I thought did not know anything about the translation. But actually, the translation is passed to the csvw.db.Database constructor, and that translation object misses the FormTable_ParameterTable:
> /home/gereon/Develop/csvw/src/csvw/db.py(299)__init__()
-> self.translate = translate or Database.name_translator
(Pdb) translate
functools.partial(<function translate at 0x7f5fff6104c0>, {'forms.csv': TableTranslation(name='FormTable', columns={'ID': 'cldf_id', 'Language_ID': 'cldf_languageReference', 'Concept_IDs': 'cldf_parameterReference', 'Phonetic_Transcription': 'cldf_form', 'Original_Value_of_Cell': 'cldf_value', 'Comment': 'cldf_comment', 'Source': 'cldf_source', 'English': 'cldf_name', 'Name': 'cldf_name', 'Glottocode': 'cldf_glottocode', 'ISO639P3code': 'cldf_iso639P3code'}), 'concepts.csv': TableTranslation(name='ParameterTable', columns={'ID': 'cldf_id', 'Language_ID': 'cldf_languageReference', 'Concept_IDs': 'cldf_parameterReference', 'Phonetic_Transcription': 'cldf_form', 'Original_Value_of_Cell': 'cldf_value', 'Comment': 'cldf_comment', 'Source': 'cldf_source', 'English': 'cldf_name', 'Name': 'cldf_name', 'Glottocode': 'cldf_glottocode', 'ISO639P3code': 'cldf_iso639P3code'}), 'languages.csv': TableTranslation(name='LanguageTable', columns={'ID': 'cldf_id', 'Language_ID': 'cldf_languageReference', 'Concept_IDs': 'cldf_parameterReference', 'Phonetic_Transcription': 'cldf_form', 'Original_Value_of_Cell': 'cldf_value', 'Comment': 'cldf_comment', 'Source': 'cldf_source', 'English': 'cldf_name', 'Name': 'cldf_name', 'Glottocode': 'cldf_glottocode', 'ISO639P3code': 'cldf_iso639P3code'}), 'forms.csv_SourceTable': TableTranslation(name='FormTable_SourceTable', columns={'forms.csv_ID': 'FormTable_cldf_id'})})

So the issue is actually that the chunk assembling the translation function
https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L125-L143
operates only on tables mentioned in the metadata, and the later chunk that adds some many-to-many-relation tables
https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L168-L187
only checks sources, not other list-shaped foreign keys that would correspond to many-to-many relations and thus to association tables.

I have now added that to the translation (by the way, https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L83 should be a factory and not a default value), I'm still not sure where the culprit is. Should
https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L206
mess with the table it gets passed and apply the translation to its name? Or should csvw.db.Database.read() already be aware of that translation and its table.many_to_many already be transformed?

@Anaphory I think the behaviour is as expected. The "fake", list-valued foreign key FormTable.Concept_IDs is replaced with the "real" foreign key into ParameterTable from the association table. What would you expect ConceptIDs to be populated with - the concatenated string of all concept IDs? But interpreting this column then would require knowing the metadata to interpret it (to infer the separator), whereas interpreting the association table can be done purely by inspecting the SQL schema.
The translate function does operate on names of objects in the association table. See the tests, https://github.com/cldf/pycldf/blob/dcd5acd68a3ace91e9d8cb121b2eaf7132c1f78c/tests/test_db.py#L110-L146

I am working in the other direction: I have an SQLite database and I'm constructing the CLDF from it. So I am indeed expecting that the foreign keys in ParameterTable are replaced by "fake", list-valued foreign key FormTable.Concept_IDs. The issue is that this many-to-many relationship is not taken into translations in https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L125-L143 / https://github.com/cldf/pycldf/blob/master/src/pycldf/db.py#L168-L187 – and my construction of it was slightly wrong, so the select_many_to_many method in csvw (https://github.com/cldf/csvw/blob/0eccd438b6770ad628223f77a582b55067b06002/src/csvw/db.py#L328) – which indeed applies the translations – ended up with the wrong translations. I think I know how to write a test for it and how to write an unelegant fix for it.

The expense is potentially sabotaging round-tripping. If you export the DB back to CLDF, you'd have to make sure, Concept_IDs and the set of foreign keys from the association table match. And what do you do if they don't?

I thought round-tripping CLDF-SQLite-CLDF would also be impossible in this, but apparently I misunderstood you and the code and miscommunicated my issues. I created a minimal example and saw that I get the same CLDF back from the SQLite created from CLDF, so as so often the problem is on my end.
I must be messing up the creation of my database somewhere because the code obviously works as intended, and if I conform to its expectations, I should get a clean CLDF out.

So, the idea of the SQLite conversion is primarily to

provide a performant version of CLDF data for scalable analysis
provide version of the CLDF data that can be algorithmically de-normalized (people often ask for a CLDF dataset as one CSV file. With the SQLite db, this is just one SQL statement away).

With functioning round-tripping, the SQLite db can also be manipulated to some extent (with caveats, because not all constraints described in the metadata are actually enforced by SQLite) - at least adding rows should work.
Starting out with an existing database schema, and trying to craft CLDF metadata which will allow populating the database, was not one of the usage scenarios - and I can think of various places where such an attempt will fail.


Add utility functions?

Adding utility functions might help by other libs, like e3:
o3.noop = function (){};
o3.getTrue = function (){return true;};
o3.getFalse = function (){return false;};
o3.memento = function (value){return function (){return value;};};
o3.notImplemented = function (){throw new Error("notImplemented");};

deep is a possible candidate as well.

What about u3 or UtilityZone? It could contain such function without disturbing the class framework.

u3 is free currently.

Utility functions I use in e3:
function abstractMethod () {
    throw new Error("Not implemented.");
};

var cache = function (fn) {
    var called = false,
        store;

    if (!(fn instanceof Function)) {
        called = true;
        store = fn;
        delete(fn);
    }

    return function () {
        if (!called) {
            called = true;
            store = fn.apply(this, arguments);
            delete(fn);
        }
        return store;
    };
};

function eachCombination(alternativesByDimension, callback, combination) {
    if (!combination)
        combination = [];
    if (combination.length < alternativesByDimension.length) {
        var alternatives = alternativesByDimension[combination.length];
        for (var index in alternatives) {
            combination[combination.length] = alternatives[index];
            eachCombination(alternativesByDimension, callback, combination);
            --combination.length;
        }
    }
    else
        callback.apply(null, combination);
};

The abstractMethod should be part of the o3 lib. The others should be in the u3 in different categories. E.g. eachCombination should be in ./math/statistics, while cache should be in ./. At least I don't have a category idea for cache. The ./math/statistics is too long, ./math is enough.

I have to create an u3 repo.


Flutter Navigation 2.0. Go directly into another router

There is a problem navigating between screens.
For example. I have 2 different routers (cart_router and address_router).
In the address_router I have a path addAddress that includes two pages (DeliveryAddressPage and AddAddressPage).
In the cart_router I have a path cartInfo that includes few pages (CartDetails, DeliveryInfo...).
So there is a case where I need to go from the DeliveryInfo page to AddAddressPage and back.
What is the best way to do this so as not to include the entire address_router into cart_router?
Thanks!

@RomanKuzio
Your question is better suited for support channels like StackOverflow. Please see https://flutter.dev/community for resources and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Void built-in docstrings

When listing the objects in a class __dict__, we always get the __init__ method, which have a pre-populated docstring: Initialize self. See help(type(self)) for accurate signature.. Same for most (or all) of the other special methods (__str__, __repr__, etc.)
We should detect when the docstring is the built-in one, and wipe it, because surely the user does not want to render it.
A simple way to check that is something like
if docstring == inspect.getdoc(int.__str__):
    # discard it
# or
if docstring == inspect.getdoc(int.__init__):
    # discard it

This was implemented here: https://github.com/pawamoy/mkdocstrings/commit/f1872a4c8d41a0b9603b7f344de3186110a4e1bd#diff-2795c5aa918a9b137bdd26a39259c13bR366
Not sure if int is the right choice. We might need a mock object which defines all the possible special methods, just to be sure they are defined.

Eventually went with checking the docstring of the same method in every parent class.


How to make two mesh VTK data conbine to one VTK data?

Dears,
Thanks for your great working for spateo.
I have a question about how to make two mesh VTK data combine to one VTK data, so I could only  read one VTK data which conclude two model.
Looking forward to your reply!

Hi, thanks for raising the issue. I'm wondering if you're referring to actual VTK objects or PyVista. In Spateo, we primarily use PyVista for data manipulation, so I assume you're asking about something like pv.PolyData. PyVista offers helper functions/class, such as merge() (to combine two PolyData objects into one) or MultiBlock() (to combine multiple PolyData objects into an iterable collection). Let me know if this helps!

That's solved! Thank you very much !


change message

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi, @jamesbonglee!
Did you configure your own GitHub repository as the source stage for your Continuous Delivery pipeline?
Module 4 describes this step under the Configure the source stage section.
If you did, then this repository doesn't need any updates. You can simply push the changes to the repo you created on Module 1.
Feel free to reach out if you have any other questions.
Thanks,
Ana


profile caching, second pull request changing -> master instead of imthemap

this replaces the pull request #548 to go into master now (couldn't figure out how to change the original one)

This has been working great for me, I like the idea, and I've already added support for it to my two connector branches, so I am solidly +1.

Also, I need this feature to do Singly's account settings properly, so double +1.

spel fix, merging :)


teslamate don't support http_proxy

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
I'm running TeslaMate on my NAS, which requires a proxy to connect to the internet. I've set the http_proxy and https_proxy environment variables, but it's still trying to connect directly. Any advice on how to fix this?
Expected Behavior
By setting the http_proxy and https_proxy, TeslaMate can connect to the internet through my proxy server.
Steps To Reproduce
version: "3.9"
services:
  teslamate:
    container_name: teslamate
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=xxx
      - DATABASE_USER=xxx
      - DATABASE_PASS=xxx
      - DATABASE_NAME=xxx
      - DATABASE_HOST=xxx
      - MQTT_HOST=mosquitto
      - http_proxy=http://proxy
      - https_proxy=http://proxy
      - httpProxy=http://proxy
      - httpsProxy=http://proxy
      - HTTP_PROXY=http://proxy
      - HTTPS_PROXY=http://proxy
    ports:
      - 4000:4000

TeslaMate is deployed with Docker Compose and should connect via the proxy, but it’s not working. However, connecting to the internet using curl works.
Relevant log output
2024-08-20 08:36:37.250 [error] GET https://nominatim.openstreetmap.org/reverse -> error: "timeout" (5003.014 ms)
2024-08-20 08:36:37.250 [warning] Address not found: "timeout"
2024-08-20 08:36:43.756 [error] GET https://nominatim.openstreetmap.org/reverse -> error: "timeout" (5004.302 ms)
2024-08-20 08:36:43.756 [warning] Address not found: "timeout"
2024-08-20 08:36:43.756 [info] OK
2024-08-20 08:36:43.757 [info] Repairing drive #2475 ...
2024-08-20 08:36:50.261 [error] GET https://nominatim.openstreetmap.org/reverse -> error: "timeout" (5002.177 ms)
2024-08-20 08:36:50.261 [warning] Address not found: "timeout"
2024-08-20 08:36:56.765 [error] GET https://nominatim.openstreetmap.org/reverse -> error: "timeout" (5001.710 ms)
2024-08-20 08:36:56.765 [warning] Address not found: "timeout"
2024-08-20 08:36:56.765 [info] OK
2024-08-20 08:36:56.766 [info] Repairing drive #2474 ...
2024-08-20 08:37:03.270 [error] GET https://nominatim.openstreetmap.org/reverse -> error: "timeout" (5002.689 ms)
2024-08-20 08:37:03.270 [warning] Address not found: "timeout"
2024-08-20 08:37:09.775 [error] GET https://nominatim.openstreetmap.org/reverse -> error: "timeout" (5002.668 ms)
2024-08-20 08:37:09.775 [warning] Address not found: "timeout"

Screenshots
No response
Additional data
No response
Type of installation
Docker
Version
v1.30.1

I think this is correct, we don't support the http_proxy or https_proxy env vars at present.
We use the finch library. We would need to pass the conn_opts to the pool configuration: https://hexdocs.pm/finch/Finch.html#start_link/1-pool-configuration-options
This in turn needs to have a proxy value containing an appropriate tuple: https://hexdocs.pm/mint/1.5.2/Mint.HTTP.html#connect/4
An example is in this bug report (but note this doesn't support https proxies): https://github.com/sneako/finch/issues/157
Our pool configuration is here: https://github.com/teslamate-org/teslamate/blob/master/lib/teslamate/http.ex#L2-L7

I think our pool configuration would need to be changed to occur at run-time, not build-time.

Allow users to customize the API URL, enabling them to use a proxy server (e.g., http://your_proxy_address:api.github.com). This way, different servers can employ distinct proxies.

Thanks for reporting. From the logs you provided it looks like only OpenSteetMap is failing, thus I assume you are in an area where this is blocked by some sort of proxy, geoblocking etc.
In addition, I do see the additional effort to support http_proxy via env variables will not lead to an improved product. You can easily use TeslaMate behind a reverse proxy, which is designed to be configurable and archive what you try to build as of now.

Thanks for reporting. From the logs you provided it looks like only OpenSteetMap is failing, thus I assume you are in an area where this is blocked by some sort of proxy, geoblocking etc.
In addition, I do see the additional effort to support http_proxy via env variables will not lead to an improved product. You can easily use TeslaMate behind a reverse proxy, which is designed to be configurable and archive what you try to build as of now.

I'm sorry, I don't quite understand how to use a reverse proxy for egress. I thought it was only for ingress. Could you clarify?

I'm sorry, I don't quite understand how to use a reverse proxy for egress. I thought it was only for ingress. Could you clarify?

You are right, I mean you can use a proxy server for egress without the need for TeslaMate to support it directly


Unsable to merge 2 very simple source maps

I have 2 source maps generated from magic-string:
{
  version: 3,
  file: null,
  sources: [ 'test' ],
  sourcesContent: [ 'hello' ],
  names: [],
  mappings: 'AAAA'
}

{
  version: 3,
  file: null,
  sources: [ 'test' ],
  sourcesContent: [ 'hellosome tail string' ],
  names: [],
  mappings: 'AAAA'
}

The transform steps are hello -> hellosome tail string -> hellosome tail stringsome tail string, each step appends some tail string to original input
When I try to merge them, I get the result:
{
  version: 3,
  sources: [ 'test' ],
  names: [],
  mappings: 'AAAA',
  sourcesContent: [ 'hellosome tail string' ]
}

This is actually the second source map, and with this map I'm unable to recover the original string hello
I'm wondering whether it is the expected behaiovr?

I tried to revert the array of line 50 from [oldMapConsumer, newMapConsumer] to [newMapConsumer, oldMapConsumer] and this issue is fixed, the test coverage remains at 100% and all tests pass
If there is no other consideration with the order of this array, I'd like to add some test cases and create a PR for this


Add a badge to let the user try a live demo

Click here -- https://github.com/paulproteus/filedrop/blob/3b09e0b171e8f8b3d0d462733111713f9c07eb9e/README.md -- to see a preview of the image in context.
For your consideration, @zombiezen !

Nice, thanks!


how to test custom images

thanks replay.

i also want to know

You may need to modify the data load and use the ckeckpoint we provide.

可以参考test speed那个py脚本


Any way to scope the search object to current_user

Is there any equivalent of the meta_search query below in ransack?
@search = current_user.projects.search(params[:search])

I am trying this:
@q = current_user.projects.search(params[:q])

But I get an undefined search method, I assume because it's an array:
undefined method `search' for #<Array:0x007f94c6c53d18>

@q = current_user.projects.scoped.search(params[:q])


Shift Clicking does not work with Backpack Items

shift clicking on furnaces and any other like that only opens the menu and dose not let you place blocks down on them. I am playing in 1.20.1

This has been an issue in all versions for a while but I can't narrow it down. Using the hotkey with an equipped backpack works fine but I don't know why the Item refuses to work. I'll make sure this is fixed in the full release but this isn't critical just annoying.
TLDR: You'll have to equip the backpack first then place it using the hotkey.

At somepoint I do override the chain of code that runs when you right click with anything so you don't have to use sneak to place the backpack with the hotkey but I can't see how that could be the problem.

oh I was meaning with or without the backpack on it still won't work, like trying to place a block on a crafting table it will just open the table and not place the block. unless you said that and my brain just isn't understanding.

I meant if you are holding the Item in your hand and shift right click, the furnace or crafting table still opens. To my knowledge if you have it equipped hold CTRL and right click, it should place it regardless of what you're looking at.
I've known the Item has the issue of not shift right clicking but can't narrow down the issue yet.

ok just making sure I understand, thank you for clarifying my confusion.

Fixed in v2-0.8 for 1.20.2. Currently working on the port for 1.20.1


Quadratic destruction complexity introduced in #1436

What is the issue you have?

Recently merged PR #1436 introduced quadratic complexity in destruction of json object due to use of std::vector::reserve in a loop.

Please describe the steps to reproduce the issue. Can you provide a small but working code example?

Benchmark code:
#include "benchmark/benchmark.h"
#include "nlohmann/json.hpp"

static void benchmark_json_creation_destruction(benchmark::State &state) {
    size_t N = state.range(0);

    std::string s;
    for (size_t i = 0; i < N; ++i) {
        s += "[1,";
    }
    s += "2";
    for (size_t i = 0; i < N; ++i) {
        s += "]";
    }

    for (auto _ : state) {
        nlohmann::json j;
        j = nlohmann::json::parse(s);
    }
    state.SetComplexityN(N);
}
BENCHMARK(benchmark_json_creation_destruction)
    ->Range(1, 10000)->Complexity(benchmark::oAuto);

int main(int argc, char** argv) {
    benchmark::Initialize(&argc, argv);
    benchmark::RunSpecifiedBenchmarks();
    return 0;
}

What is the expected behavior?

Linear complexity.

And what is the actual behavior instead?

Quadratic complexity with 3.7.2:
------------------------------------------------------------------------------------
Benchmark                                          Time             CPU   Iterations
------------------------------------------------------------------------------------
benchmark_json_creation_destruction/1            450 ns          450 ns      1521254
benchmark_json_creation_destruction/8           2283 ns         2282 ns       319664
benchmark_json_creation_destruction/64         19322 ns        19322 ns        33992
benchmark_json_creation_destruction/512       290041 ns       290035 ns         2409
benchmark_json_creation_destruction/4096     9455262 ns      9455230 ns           68
benchmark_json_creation_destruction/10000   53660018 ns     53657883 ns           12
benchmark_json_creation_destruction_BigO        0.54 N^2        0.54 N^2
benchmark_json_creation_destruction_RMS            2 %             2 %

Same version, with reserve calls removed:
------------------------------------------------------------------------------------
Benchmark                                          Time             CPU   Iterations
------------------------------------------------------------------------------------
benchmark_json_creation_destruction/1            444 ns          444 ns      1376396
benchmark_json_creation_destruction/8           2111 ns         2111 ns       325257
benchmark_json_creation_destruction/64         16713 ns        16713 ns        41177
benchmark_json_creation_destruction/512       118116 ns       118113 ns         5793
benchmark_json_creation_destruction/4096      916147 ns       916078 ns          729
benchmark_json_creation_destruction/10000    2236044 ns      2235964 ns          302
benchmark_json_creation_destruction_BigO      223.63 N        223.62 N
benchmark_json_creation_destruction_RMS            0 %             0 %

While previous version, 3.7.1, exhibits linear complexity:
------------------------------------------------------------------------------------
Benchmark                                          Time             CPU   Iterations
------------------------------------------------------------------------------------
benchmark_json_creation_destruction/1            387 ns          387 ns      1805004
benchmark_json_creation_destruction/8           1578 ns         1578 ns       435509
benchmark_json_creation_destruction/64         10501 ns        10501 ns        65116
benchmark_json_creation_destruction/512       100457 ns       100454 ns         6841
benchmark_json_creation_destruction/4096      764401 ns       764402 ns          871
benchmark_json_creation_destruction/10000    1867051 ns      1867057 ns          371
benchmark_json_creation_destruction_BigO      186.71 N        186.71 N
benchmark_json_creation_destruction_RMS            0 %             0 %

Which compiler and operating system are you using? Is it a supported compiler?

Ubuntu 19.10 with GCC 9.2:
$ gcc --version
gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008

Did you use a released version of the library or the version from the develop branch?

Release 3.7.2

If you experience a compilation error: can you compile and run the unit tests?

Great benchmarking job! I didn't know that Google benchmark library can measure and report computational complexity too. That comes in handy.
I agree that we should remove vector::reserve given that it doesn't cause any notable difference on real-life JSON (see https://github.com/nlohmann/json/pull/1436#issuecomment-552386759) while performing significantly worse on the worst-case scenarios.

Can you explain why these reserve calls are harmful? It seems that they are just preparing the stack variable to contain the things it's about to be push_back'd with. How is that slowing things down? I know you have benchmarks, but I'm trying to understand why this is true.

@jaredgrubb Wild guess, maybe calculating the object/array size is not a constant time operation?

No, vector and map have constant-time size functions.
I think the Benchmark tool is not detecting complexity correctly.
In all the iteration cases, the runtime goes down by a constant 14% ... if your patch was improving complexity, then we would expect the improvement to scale with the number of elements.
At a high-level, these reserve calls are preparing for something that is about to happen, and "common wisdom" says these should help -- but we all know how "common wisdom" isn't always true.
The fact that they're actually slowing things down is very interesting! But we should try to explain why this is occurring before we accept this change. I would hate to see, for example, that we're working around a GCC-9.2/stdlibc++ bug, and when this test runs on other targets it actually gets worse (like "common wisdom" suggests it should).

@jaredgrubb If you reserve in a loop with a slowly increasing size, you'll get an allocation pattern like this:
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

If you don't reserve, then you'll get an allocation pattern like this, assuming a growth factor of 4:
4 16 64

Each time you call reserve(), you have an allocation, several default constructors (which may be trivial), several copies, several destructors (which may be trivial), and a deallocation.  The only time you should reserve inside a loop is when you know the final size up front, or you know that it's a few items of large size, so you'll get a better allocation pattern than the built-in growth factor.

Here is a comment from STL, who is the maintainer of the Visual C++ Standard Library.
https://www.reddit.com/r/cpp/comments/1qhloy/fun_and_danger_with_stdvectorreserve/

To be fair, this is a non-obvious gotcha. reserve() is the only member function allowed to bypass geometric growth, and is therefore the most subtle way to trigger quadratic complexity out of the ordinarily excellently-behaved vector.
I myself made this mistake in my personal library about 10 years ago when I was getting started with the STL.

Further elaboration of the above: https://www.reddit.com/r/cpp/comments/1qhloy/fun_and_danger_with_stdvectorreserve/cdd7dcx/

Ah! That makes a lot of sense thanks for sharing that. I learned something.
(Also, I looked back to the numbers to see what I missed. I made a mistake in my "14%..." claim, as I was taking the last two benchmark sets, which are clearly both marked as linear. Looking at the first two, the improvement is clearly scaling as claimed ... so I take all that back)


Correct SVG but map won't show ?

Hello,
I made a map of the UK divided by postal zones. However the SVG 2 Mapael tool will whether provide an uncorrect js file, because paths will be missing, or a correct js file in the case where I reduce the quality of the paths but then the map won't show in the mapael component.
Here is the SVG I use: https://bytebucket.org/mappeur/map/raw/f84f526f2786bbdc3dead5736248e0fcfa1ac172/uk.svg
Thank you for the help. I made another map of the UK and did not have any problem, nice tool

Hello @Coursmayeur ,
I'm glad you appreciate Mapael, sorry for my late answer ! Nice to see that you solved your issue !


feat(reana-dev): change run-example to use gherkin-parser module (#817)

Run-example now uses the test files in the specification file to check the correctness of the results (by running the test command).

PS: this PR needs to be rebased


API mini-cleanup + 405 errors

The main part of this PR closes #2757 - adding 405 errors to the API
The other parts are cleanup & I stole some of the code from an old PR by @halfdan

moves error formatting from api/index into errors lib
moves error handling from api/index into its own middleware
adds extra middleware for method not allowed which captures all unsupported routes
254e0f0

The weird double-travis comes from having accidentally pushed the branch here first. I deleted it but travis had already picked it up.

At least they're both passing!!


doc: added note about monitor ips update during failover

Docs update: IP addresses in csi-config-map needs to be changed after failover to secondary site. Without this change, applications can't use mirrored rbd images.
Is there anything that requires special attention
Only documentation update.
Related issues
Fixes: #4493
Future concerns
No future concerns
Checklist:

[x] Commit Message Formatting: Commit titles and messages follow
guidelines in the developer
guide.
[x] Reviewed the developer guide on Submitting a Pull
Request
[ ] Pending release
notes
updated with breaking and/or notable changes for the next major release.
[x] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:

/retest ci/centos/<job-name>: retest the <job-name> after unrelated
failure (please report the failure too!)

hey @kmadac
The document talks about having a new cluster-mapping.json to provide cephcsi with the required information to map IDs from one cluster to another.
The config.json section does not need to be modified in either cluster.
The configmap's  config.json in each k8s cluster can have different config.json entries (mon ips, cluster IDs etc).
Just adding cluster-mapping.json info to each of these k8s cluster's cephcsi configmap is sufficient. The existing cephcsi configmap's config.json does not need to be modified.


consider setting spark.sql.warehouse.dir by default

See: https://github.com/rstudio/sparklyr/issues/229#issuecomment-251584060
Some users have reported that in order to get dplyr and sparklyr to work in windows, they need to set spark.sql.warehouse.dir as follows to unblock a Hive exception:
library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "spark://address:7077", config = list(spark.sql.warehouse.dir = "d:/Spark2/tmp/hadoop/bin"))
iris_tbl <- copy_to(sc, iris)

It is worth considering setting this automatically to "SPARK_HOME/tmp/hadoop/bin" but this would require more investigation to understand if setting spark.sql.warehouse.dir is the right approach.

We should also double-check whether this issue is related to https://github.com/rstudio/sparklyr/issues/239 -- it looks like there's an issue wherein some Spark APIs don't respect these configuration values.
I think we should do something similar to what we do for spark_install, e.g.
spark_sql_warehouse_dir <- function() {
   getOption("spark.sql.warehouse.dir", default = rappdirs::app_dir("spark-warehouse", "rstudio")$cache())
}

Thoughts?

We should also investigate if this is simply a PATH issue (does placing that bin directory on the PATH help at all?)

Not sure that's enough since users reported that spark.sql.warehouse.dir needs to point to the winutils.exe which we install in rappdirs::app_dir("spark", "rstudio")$cache() + file.path(sparkHome, "tmp", "hive"). This also looks like a windows-specific issue. But perhaps pointing the config spark.sql.warehouse.dir to this directory is all we need. I think it's fine to make this change but we should read more about why we think this is required and not cause, potentially, other side effects, that's the part I'm less convinced about.

We do set spark.sql.warehouse.dir as part of spark_install(), must have been performed as a different fix, the code that performs this is in install_spark.R.


style: fix code style

挖，好厉害

虽然重复劳动了（悲

我们Nikaidou-Shinku真是太强了
By_Ha
@.***

------------------ Original ------------------
From:                                                                                "Nikaidou-Shinku/Luogu-usercard"                                                                                @.>;
Date: Thu, Jan 13, 2022 09:15 PM
@.>;
<EMAIL_ADDRESS>Subject: Re: [Nikaidou-Shinku/Luogu-usercard] style: fix code style (PR #5)
虽然重复劳动了（悲
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you authored the thread.Message ID: @.***>


Custom Nginx Configuration

I'm trying to switch from regular NGINX to NPM but can't get the following configuration to work in NPM. I've tried adding various custom configurations but I'm probably not doing it right.
server{
    listen 443 ssl http2;
    ssl_certificate /etc/nginx/ssl/mydomaincert.crt;
    ssl_certificate_key /etc/nginx/ssl/myprivatekey.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    server_name pve.lan;

    proxy_redirect off;

    location / {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_buffering off;
      client_max_body_size 0;
      proxy_connect_timeout  3600s;
      proxy_read_timeout  3600s;
      proxy_send_timeout  3600s;
      send_timeout  3600s;

      proxy_pass https://<IP_ADDRESS>:8006;
    }
}

Figured it out.

How did you do it?

@dsw-solutions would plz you share your solution?


Merge dd-agent's tags into the emitted metrics

I'll start by describing what I want to accomplish first, then suggested fix.
We have two Jenkins clusters, one for QA and one for Prod, and want to separate alerts out based on this environment. The /etc/dd-agent/datadog.conf has this, and is managed through our automation.
The Jenkins plugin, however, does not try to integrate those configured tags. Events emitted by the Jenkins plugin have a fixed set of tags. The old Jenkins integration that parsed build.xml went through the local collector and didn't have this limitation.
Is it feasible to pull the tags from the local agent (if available) and merge those in? Either by checking for the file on disk, parsing and extracting tags: or an action against the agent API?
We're happy to contribute patches to resolve this issue with some guidance.
Thanks!

Hey @jshirley, thanks for the ticket :)
You're right that tags are currently static on the Jenkins plugin, but I'm looking at adding custom tagging per job, which should enable some flexibility. In terms of being able to separate out alerts by QA and Prod, in your case, this seems like it's best fit for the hostname tag. Currently the Jenkins plugin determines the hostname tag by looking, in order, at the Jenkins configuration (plugin specific), the Jenkins hostname environment variable, the Unix hostname via /bin/hostname -f, and finally the Localhost hostname.
If you make sure that the hostname in the agents datadog.conf, and the hostname used by the Jenkins plugin are the same, you'll be able to keep Jenkins metrics with the other metrics coming from the agent on the same host.
It's also worth nothing that we're deprecating the old Jenkins check that went through the agent, in favor of this Jenkins plugin.

I'm going to close this ticket for now, but please feel free to comment back with more info

The hostname isn't sufficient in our cases for the environment, the environment isolation means that we rely on a separate tag that is in the tags: section in the agent configuration. We don't really keep any persistent meaning on a per-hostname basis, and instead have a fixed host_env tag that makes this much easier.

@jshirley what @JohnLZeller meant is that, if your agent hostname and jenkins configuration have the same "hostname", the tags set in your datadog.conf will be automatically applied to your jenkins metrics as we'll merge that in the backend.
You should just make sure sure that your jenkins server have the same hostname as the agent hostname for those to combine.

Ah! That's brilliant -- I realized now that we were seeing incorrect tagging but that was because we accidentally had both the legacy check that parses build.xml and the new plugin running.
Thanks so much!


Update Examples, Add Support for Temporary Queue and UUID Invoke Function, and Update Documentation

This pull request includes several updates and additions to the codebase.
The commit "Examples Update + Code Refactor" includes code refactoring and updates to the examples for OpenAI, Bedrock, Anthropic, and VertexAI.
The commit "Added support for temporary queue + UUID queue name" adds support for creating a temporary queue and using a UUID as the queue name.
The commit "Add assembly component and auto-generated documents" adds an assembly component and auto-generates documents.
The commit "Added MoA Example + UUID Invoke Function" adds a MoA example that broadcasts to multiple agents and includes a UUID invoke function.
The commit "Update documentation for new users + Refactored component_input & source_expression" updates the documentation for new users and refactors the component_input to input_selection and the source_expression function to evaluate_expression.
The commit "Fixed solace disconnection issues on shutting down" fixes solace disconnection issues when shutting down.
The pull request includes various file changes and updates to the documentation.

Title & description were generated by Copilot


Returning clubs and athletes as dictionaries to facilitate searching

Coverage decreased (-3.8%) to 95.833% when pulling 8b0612af178b8b07e2ef7615f4410fa3b78cdecf on dev into b563ccde4e80e1850f7106aea9ce35f72f254db4 on master.

Coverage decreased (-3.8%) to 95.833% when pulling efb019509724809a6ef84ebf24e1eacc0ae7b580 on dev into b563ccde4e80e1850f7106aea9ce35f72f254db4 on master.


Settlement consistency with requires and fetchFromInterface

We currently guarantee that all Instructions for an Instrument in a Batch settles using holdings having the same TemplateTypeRep (but not a specific one).
Instead of our current check, we might want to guarantee that all Instructions for an Instrument in a Batch settles  with holdings implementing the same set of interfaces (but not a specific set). In its most general form, this might not be possible but at least we could check that the holdings is say a Fungible.I (or Transferable.I) by making use of requires and:
**fetchFromInterface**
Fetch an interface and convert it to a **specific** template type. If conversion is successful, this function returns the converted contract and its converted contract id. Otherwise, this function returns None.

Can also be used to fetch and convert an interface contract id into a contract and contract id of one of its **requiring** interfaces.

However, as we currently don't have requires, we would have to find a workaround (and probably define own HasFromInterface and HasToInterface instances) in order to get it to work. Maybe worth considering once/if we get requires back.

Now that requires is back, I briefly looked into the ^. Such a check works just fine (see test script below), so let's consider to change it for 2.7.
module Daml.Finance.Holding.Test.NonFungible where

import Daml.Script
import DA.Optional (isSome)

data V = V {}
interface A where viewtype V
interface B requires A where viewtype V
interface C requires A, B where viewtype V

template Holding
  with
    actor : Party
  where
    signatory actor
    interface instance A for Holding where view = V {}
    interface instance B for Holding where view = V {}

template Checker
  with
    actor : Party
  where
    signatory actor
    choice Run : (Bool, Bool, Bool)
      with
        cid : ContractId A
      controller actor
      do
        b1 <- isSome <$> fetchFromInterface @A cid
        b2 <- isSome <$> fetchFromInterface @B cid
        b3 <- isSome <$> fetchFromInterface @C cid
        pure (b1, b2, b3)

run : Script ()
run = script do
  alice <- allocateParty "alice"
  holdingCid <- submit alice do createCmd Holding with actor = alice
  checkerCid <- submit alice do createCmd Checker with actor = alice
  r <- submit alice do exerciseCmd checkerCid Run with cid = toInterfaceContractId @A holdingCid
  debug r -- outputs (True,True,False)

  pure ()

The check also works when
interface A where viewtype V
interface B requires A where viewtype V
interface C requires A where viewtype V    -- i.e., does not require B

That made me think that we could actually consider relaxing our holding interface hierarchy such that Fungible is not requiring Transferable..

As now this will be fixed, shall we open a separate issue to consider removing the interface hierarchy?

As now this will be fixed, shall we open a separate issue to consider removing the interface hierarchy?

we have it as a point to discuss in the ux sheet already


BSD for readline

Type: Missing
Summary:
BSD for readline
Details:
https://www.npmjs.com/package/readline/v/1.1.0
Resolution:
https://www.npmjs.com/package/readline/v/1.1.0
Affected definitions:

readline 1.3.0

Thanks, @carlbrochu.  I cant find anywhere that it says which BSD license this is under, so I left an issue - https://github.com/maleck13/readline/issues/26.  Do you see that specified anywhere?  Thanks!

Nothing more, that's the extent of it.

From: ariel11<EMAIL_ADDRESS>Sent: Wednesday, August 28, 2019 9:52 AM
To: clearlydefined/curated-data<EMAIL_ADDRESS>Cc: Carl Brochu<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [clearlydefined/curated-data] BSD for readline (#2396)
@carlbrochuhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcarlbrochu&data=02|01|carl.brochu%40microsoft.com|0fcc4a56057a421cbdd308d72bd8293a|72f988bf86f141af91ab2d7cd011db47|1|0|637026079711333791&sdata=iXdRdaLuURRSTx0K%2FsOridtkpL4%2FO81TwUD3fJSLqCM%3D&reserved=0 - yes, I see where it says BSD. But I cant find where it says BSD-2-clause or BSD-3-clause or any of the many other "BSD" license variants. Do you see the full license text anywhere for this component?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fclearlydefined%2Fcurated-data%2Fpull%2F2396%3Femail_source%3Dnotifications%26email_token%3DAB7DHRG2WZQE7LFHK3TCMS3QG2UODA5CNFSM4IOX5PD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5LYRYI%23issuecomment-525830369&data=02|01|carl.brochu%40microsoft.com|0fcc4a56057a421cbdd308d72bd8293a|72f988bf86f141af91ab2d7cd011db47|1|0|637026079711338784&sdata=LLljJDvHB%2FxvDPot4UfUHtU3SEIW9QivNhhZ%2FqC8TLA%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB7DHREZTJEJPCVFBFK2JYLQG2UODANCNFSM4IOX5PDQ&data=02|01|carl.brochu%40microsoft.com|0fcc4a56057a421cbdd308d72bd8293a|72f988bf86f141af91ab2d7cd011db47|1|0|637026079711343772&sdata=lxjWJZJBkHEEvTyJoCI70l1Fxq3bwFqcim8AT4UOQ6s%3D&reserved=0.

12 days no response on the Issue left at the repo.  We are going to conclude "BSD" means BSD-3-clause, which is the most typical version.