text:
New API: borrow TrashItems and nicer Error

This PR brings the following new features:

restore_all and purge_all take &TrashItem as parameters instead of taking ownership. It helps us avoid cloning TrashItems when we want to keep the ownership of them after restoring or purging.

Correspondingly, the Error::RestoreCollision now contains field restored: usize which means how many items are restored before collision. Anyone who wants to continue restoring can skip restored + 1 items on the passed iterator.

However, I don't understand why the doc tells me One should not assume any relationship between the order that the items were supplied and the list of remaining items but I passed the unit test for RestoreCollison.

Error is constructed by thiserror now. The reason for using thiserror is there are too many I/O Result in the codes. #[error(transparent)] Io(#[from] io::Error) makes the error handling more convenient and reasonable.

Sadly, this PR only works on Linux. I can't setup a virtual machine of other platforms temporarily. If this PR is verified to be sensible, I wish someone could complete the work of other platforms.

Thank you, the linux implementation looks like a reasonable improvement, I think as discussed prior in #54.
Adding thiserror probably isn't an issue as it's part of most dependency trees anyway, despite it being heavy for trees that don't have any proc-macros.
If @ArturKovacs thinks it makes sense as well maybe we can see this through.

One more feature I forgot to explain:

The broken symbolic link is regarded as existing entity. trash-rs will panic at assert!(file.exists()) because of broken symbolic link before this PR. Now restoring (actually moving) or purging (actually removing) broken symbolic link won't fail anymore. But restoring item may collide with broken symbolic link now.

I decide to contains the path where the I/O error occurred in Error::Io. Only then can we print error message like "{path}: {error}".

It's been a while I wrote code with this crate, and I haven't run into the problem discussed here, but if I understand correctly, then this PR isn't the best solution for the issue.
I don't think there's a need for the change introduced in this PR, I think you can just use the current API to solve this problem.
For example this code will re-try the restoration, but during the second try, it skips the trash item that couldn't be restored. (Note that I haven't tested this code and it will attempt to restore all your trashed files.)
let items = trash::list().unwrap();
if let Err(RestoreCollision {path, remaining_items}) = trash::os_limited::restore_all(items) {
    // keep all except the one that couldn't be restored.
    remaining_items.retain(|e| e.original_path() != path);
    trash::os_limited::restore_all(remaining_items)
}

It's been a while I wrote code with this crate, and I haven't run into the problem discussed here, but if I understand correctly, then this PR isn't the best solution for the issue.
I don't think there's a need for the change introduced in this PR, I think you can just use the current API to solve this problem.
For example this code will re-try the restoration, but during the second try, it skips the trash item that couldn't be restored. (Note that I haven't tested this code and it will attempt to restore all your trashed files.)
let items = trash::list().unwrap();
if let Err(RestoreCollision {path, remaining_items}) = trash::os_limited::restore_all(items) {
    // keep all except the one that couldn't be restored.
    remaining_items.retain(|e| e.original_path() != path);
    trash::os_limited::restore_all(remaining_items)
}

Borrow references of TrashItem and return count of the restored ones could do the same thing with lower overhead if the restoration order keeps up with the references:
    let items = trash::list().unwrap();
    if let Err(RestoreCollision { path, restored }) = trash::os_limited::restore_all(&items) {
        // keep all except the one that couldn't be restored.
        let items = items
            .iter()
            // you can skip restored + 1 in this show snippet, that's OK
            .skip(restored)
            .filter(|e| e.original_path() != path);
        trash::os_limited::restore_all();
    }

Now the problem is, there are no contracts about  it, in other words, there is a contract tells users shouldn't depend on the order:

One should not assume any relationship between the order that the items were supplied and the list of remaining items. That is to say, it may be that the item that collided was in the middle of the provided list but the remaining items’ list contains all the provided items.

I wonder why.

Thanks for chiming in @ArturKovacs and providing an example.
@TD-Sky Performance isn't ever an issue until it is measured, so I don't think borrowing for that reason carries a lot of value. what do you think about making this PR mergeable only by adding a non-running documentation example instead, based on @ArturKovacs example? It would show how to retry without breaking the API.

Thanks for chiming in @ArturKovacs and providing an example.
@TD-Sky Performance isn't ever an issue until it is measured, so I don't think borrowing for that reason carries a lot of value. what do you think about making this PR mergeable only by adding a non-running documentation example instead, based on @ArturKovacs example? It would show how to retry without breaking the API.

Are there any other ways to implement https://github.com/Byron/trash-rs/issues/54?

Seeing how resolving this has come along, I think it's worth it to consider cutting losses and rejecting the premise. Even though reference could be used, they aren't, and cloning the keep them isn't known to be a performance issue.
There might be error cases where the input items are lost, and one might consider to 'return' the owned items in the error similar to how it was already demonstrated. This seems to be in the interest of the original author and wouldn't break the API for most, and I see value in that.

Seeing how resolving this has come along, I think it's worth it to consider cutting losses and rejecting the premise. Even though reference could be used, they aren't, and cloning the keep them isn't known to be a performance issue.
There might be error cases where the input items are lost, and one might consider to 'return' the owned items in the error similar to how it was already demonstrated. This seems to be in the interest of the original author and wouldn't break the API for most, and I see value in that.

So you thought it better to pass in references and return owned items when error occurs? I have to apologize for my potential misunderstanding, because I'm not a native English speaker.

The original author indicated that references and changing the API there isn't needed to solve the problem.
The documentation could be improved instead to show how to work with such an owning API, which might include suggesting to clone the input so that retries are possible.
There is a new test here which could be rewritten to work with the owning API as well, I presume.
Now that we have direction, I hope this PR can get the work it needs to be merged.
Thank you.

I wanna close this PR and open a new one because the correct direction disagrees the topic of this PR.

Wait, can we make purge_all accept references? It has no the problem of restore_all.

From what I can tell, the whole premise of "References are needed" is not only put into question but rejected. It would be a breaking change and despite being more idiomatic to use references if no consumption happens internally, changing it now half-way wouldn't change much effectively except breaking the consistency of the crate API, which overall is consuming in nature.
It seems to be in the interest of the @ArturKovacs to leave it as is, and I suggest to look at specific problems with the API and add documentation and examples to show how these can be solved.

From what I can tell, the whole premise of "References are needed" is not only put into question but rejected. It would be a breaking change and despite being more idiomatic to use references if no consumption happens internally, changing it now half-way wouldn't change much effectively except breaking the consistency of the crate API, which overall is consuming in nature.
It seems to be in the interest of the @ArturKovacs to leave it as is, and I suggest to look at specific problems with the API and add documentation and examples to show how these can be solved.

But purge_all could have a compatibility update by changing API to IntoIterator<Item=T> where T: AsRef<TrashItem>.

But purge_all could have a compatibility update by changing API to IntoIterator<Item=T> where T: AsRef<TrashItem>

Great idea - if purge_all isn't cloning internally then, this should be very doable.

authors: ArturKovacs Byron TD-Sky

repo: Byron/trash-rs


text:
🛑 C21CoasttoCoast is down

In b94edcc, C21CoasttoCoast (https://www.c21coasttocoast.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: C21CoasttoCoast is back up in 617c1d2 after 37 minutes.

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
Update / delete combination gives wrong result (diff method)

Take two text files to compare.
The first one being the original, the second one the file to compare with the first one.
suppose the first file has 20 lines of text
In the second file: remove line 10 and edit the new line 10 (which was before line 11).
The result is that you only see an update. The delete is not mentioned.
It is not clear to state which line (original 10th line or original 11th line) is changed and which one is deleted. But since there is one line less in the new file, there should be an indication of a delete.

Hiya, I cloned this from Google Code so it wouldn't be lost in the mists of time. I'm not the owner.
Also,

this has like a billion different language versions and you didn't mention which one.
No code,
no text files.

https://www.google.com.au/search?safe=active&q=how+to+good+bug+report
Please, I mean no offense but I can't do anything with that information. Also, unless it's the C# version, I probably can't help you because that's the only one I use.

authors: CADbloke ddhaeyere

repo: CADbloke/google-diff-match-patch

license_source: bigquery


text:
Application RPDO Callback example needed

First: Brilliant work! Really a gem in the Open Source world.
I want to use your code on STM32 to read out and plot encoder data. I think I understood the most steps how to make the solution. But I still struggle not with the "last mile", but with the "first mile" - how to integrate the stack into a wider application perspective. Links to the docs I found were related to the Linux implementation or to older versions. Whole embedded application examples are hard to find. One V4 example I found is [https://github.com/Jexbat/CANopenSTM32-HAL], where at least there is a button and four LEDs coupled to the OD. The author added:
In CO_storage.h
typedef struct {
    OD_extension_t OD_1010_extension; /**< Extension for OD object */
    OD_extension_t OD_1011_extension; /**< Extension for OD object */
    **OD_extension_t OD_6200_extension; /**< Extension for OD object */**

and
CO_ReturnError_t CO_storage_init(CO_storage_t *storage,
                                 CO_CANmodule_t *CANmodule,
                                 OD_entry_t *OD_1010_StoreParameters,
                                 OD_entry_t *OD_1011_RestoreDefaultParameters,
				 OD_entry_t *OD_6200_LED,

In CO_storage.c:
...
static ODR_t OD_write_6200(OD_stream_t *stream, const void *buf,
                           OD_size_t count, OD_size_t *countWritten)
{
    /* verify arguments */
    if (stream == NULL || stream->subIndex == 0 || buf == NULL
        || countWritten == NULL
    ) {
        return ODR_DEV_INCOMPAT;
    }
    ODR_t returnCode = ODR_OK;
    uint8_t data = *((uint8_t *)buf);
    switch(stream->subIndex){
    case 1:
        (data > 0)?HAL_GPIO_WritePin(D1_GPIO_Port, D1_Pin, GPIO_PIN_RESET):HAL_GPIO_WritePin(D1_GPIO_Port, D1_Pin, GPIO_PIN_SET);
        break;
    case 2:
        (data > 0)?HAL_GPIO_WritePin(D2_GPIO_Port, D2_Pin, GPIO_PIN_RESET):HAL_GPIO_WritePin(D2_GPIO_Port, D2_Pin, GPIO_PIN_SET);
        break;
    case 3:
        (data > 0)?HAL_GPIO_WritePin(D3_GPIO_Port, D3_Pin, GPIO_PIN_RESET):HAL_GPIO_WritePin(D3_GPIO_Port, D3_Pin, GPIO_PIN_SET);
        break;
    case 4:
        (data > 0)?HAL_GPIO_WritePin(D4_GPIO_Port, D4_Pin, GPIO_PIN_RESET):HAL_GPIO_WritePin(D4_GPIO_Port, D4_Pin, GPIO_PIN_SET);
        break;
    }

    if (returnCode == ODR_OK) *countWritten = sizeof(uint8_t);
    return returnCode;
}

...
CO_ReturnError_t CO_storage_init(CO_storage_t *storage,
                                 CO_CANmodule_t *CANmodule,
                                 OD_entry_t *OD_1010_StoreParameters,
                                 OD_entry_t *OD_1011_RestoreDefaultParameters,
				OD_entry_t *OD_6200_LED,

...
    if(OD_6200_LED != NULL){
        storage->OD_6200_extension.object = storage;
        storage->OD_6200_extension.read = OD_readOriginal;
        storage->OD_6200_extension.write = OD_write_6200;
        OD_extension_init(OD_6200_LED,
           storage->OD_6200_extension);
    }

Is this really the way to go ?  I feels wrong to "patch" so many files just to link application code to CAN objects. I have seen the CO_application.c file (no CO_application.h file by the way) -  is this a hint that you propose putting the linking code here ?
What I'd want is a full example with in/out interface from an application, based on Best Practice you have in mind. Probably for you this is a no-brainer, for us as consumers it is pain to find it out by reverse-engineering, especially as things changed a lot over the versions.
A simple "steps to use it in your application" would also help. Besided the obvious steps that you have to prepare OD.c and OD.h via .eds editor, something like:

add the callback code to execute when object changes, to CO_storage.c/h (or CO_application.c/h?)
add blabla to your main.c user code loop
don't change x,y,z files

Coming back to my overall question: Is there an example for an MCU application on V4.0  using callback available ?

There are some example for CANopenNode here: https://github.com/CANopenNode/CANopenPIC . I assume you already found those, they are also not fully working devicves.

Callback should work like this, at least in V1.3. I don't think that has change.

CO_SDO_abortCode_t temperature_callback(CO_ODF_arg_t *p_odf_arg) {};

CO_OD_configure(CO->SDO[0], OD_2108_temperature, temperature_callback, this, NULL, 0);

You can put this anywhere in your code. The same goes for direct OD access, just use the macros provided by OD generator. There are also methods available for accessing OD using entry numbers ("0x1111 12") instead of direct access.

I don't think you need to modify the storage stuff if you're happy with just generic store/restore all variables. You for sure don't need to set LEDs inside that code.

ok, you are confirming at least that the code I found is sub-optimal.
I tried to introduce your proposal and I get  on compile "unknown type name 'CO_ODF_arg_t'"  .  In the CANopenPIC code this type does even not exist - so no help. What I tried:
#include "main.h"
#include "CANopen.h"
#include "OD.h"

CAN_HandleTypeDef hcan;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_CAN_Init(void);

CO_SDO_abortCode_t temperature_callback(CO_ODF_arg_t *p_odf_arg)
{
    /* here we will put the code to be executed when a PDO arrived */
};

int main(void)
{
    CO_OD_configure(CO->SDO[0], OD_2108_temperature, temperature_callback, this, NULL, 0);
}

What's wrong ?

As said, this is for v1.3. In that, function comment on CO_OD_configure() explains how to use it and which types you need. This or something similar should exist in v4 also. I have not used v4, so I can't help you there.

Found CO_ODF_arg_t  at https://github.com/hwidvorakinfo/F4_CANopen/blob/5247dd9523cf5a6c1a7bdfab8c2446b7f9bc5ee8/canopennode/stack/CO_SDO.h
Maybe help.

Hi,
is there any possibility to have a callback from stack when a RPDO is processed?

I've just discovered the solution. It's just enough to use OD_extension_init before to call CO_CANopenInitPDO:
static OD_extension_t TempData_extension;
TempData_extension.object = me;
TempData_extension.write = OD_write_temperatureData;
TempData_extension.read = NULL;
OD_extension_init(OD_find(OD, 0x2001), &TempData_extension);

/* Initialize PDO */
err = CO_CANopenInitPDO(me->CO, me->CO->em, OD, activeNodeId, &errInfo);

Yes, it is something like that.
It is not practical to have direct access to PDO, because of PDO mapping. However, when PDO reads or writes OD variable, it uses its read/write function...

Yes, this is the solution. Does it suit your need? Thing is, application doesn't know, how PDOs will be configured. Also application doesn't need to worry about mapping. Just use callback on OD object and it should work.

Could you please elaborate on this?
I'm doing the same as @GiulioDallaVecchia in the solution but my function seems to fail to bind. I use CanOpenLinux example, so I follow the initialization process in the CO_main_basic.
I have in my CO_main_basic.c`
static OD_extension_t OD_2110_1_custom_extension;

Then, I call OD_extension_init before the CO_CANopenInitPDO.
D_2110_1_custom_extension.object = &myObject;
OD_2110_1_custom_extension.read = OD_readOriginal;
OD_2110_1_custom_extension.write = OD_writeOriginalWithCallback;
OD_extension_init(entry, &OD_2110_1_custom_extension);

where OD_writeOriginalWithCallback is declared in the CO_ODinterface.h and defined in .c
ODR_t OD_writeOriginalWithCallback(OD_stream_t *stream, const void *buf,
OD_size_t count, OD_size_t *countWritten)
{
    __log_printf(0, "OD write with callback");
    // Write to object as usual
    ODR_t ret = OD_writeOriginal(stream, buf, count, countWritten);
    // Callback function - todo
    return ret;
}

But when I get PDO message from the bus (from another node I configured), the function OD_writeOriginal is called, I can check it with similar log statement in it, which I added into it.
So, I can't figure out what I mess with extenson_init, could you please help? To add, I checked function pointer of OD_writeOriginalWithCallback before and after CO_CANopenInitPDO and they are different. How to properly bind my function to the OD write function through extension?

authors: CANopenNode GiulioDallaVecchia Rukakuka c031917 koson martinwag

repo: CANopenNode/CANopenNode


text:
ModuleNotFoundError: No module named 'models'

Facing ModuleNotFoundError: No module named 'models' while inference

@nss-programmer I'm very willing to help you resolve this issue. Could you please provide more details to help me better understand how the error occurred?

authors: an-yongqi nss-programmer

repo: CASIA-IVA-Lab/FLAP


text:
Could you please explain the purpose behind the following code?

Hi Authors:
Thank you for your amazing work.
However, could you please explain the purpose behind the above code? I did't find the related description in the paper.
Thank you

Never Mind. Thanks for your repo.


text:
🛑 Test Broken Site is down

In 6036855, Test Broken Site (https://radcord.xyz) was down:

HTTP code: 502
Response time: 1550 ms

Resolved: Test Broken Site is back up in 43ca99a.


text:
Suggestions to update HD-BM

Hi Tassilo,
I'm Joey who recently joined Philipp's group as a PhD student.
I started to use HD-BM to evaluate it on other public datasets, had some issues with HD-BM and came up with the following suggestions:

Add PyTorch reinstallation guide, similar as nnUNet, but with the specific version (?) of PyTorch.

Error: no valid convolution algorithms available in CuDNN
In my case I solved this by running: conda install pytorch==1.10.2 pytorch-cuda=12 -c pytorch -c nvidia

Python version upgrade is required (3.6 -> 3.9 (or newer)). I confronted some package issues (scikit-build, and SimpleITK).
scikit-build (0.17.6) SimpleITK (2.3.1) could not be installed with Python 3.6. They were necessary to resolve the following issue:

https://github.com/MIC-DKFZ/HD-BET/issues/25

Maybe add description about the predicted labels in ReadME file (Label 1: NEE, Label 2: CE)

Probably include evaluate_folder function as well, if the ground truth files are available. What I did was 1) convert plans.pkl -> plans.json file 2) use nnUNetV2 evaludate_folder function. Do you think.. dataset and plan json files are still necessary if user only has prediction and ground truth segmentation files?

I will be happy to make PR if that sounds better for you.

Hey Joey,
thanks for posting this issue.

Add PyTorch reinstallation guide, similar as nnUNet, but with the specific version (?) of PyTorch.

I remember that the installation worked out-of-the-box 2 years ago, but I will check in again if it runs through with newer python versions and the newer Scikit and SimpleITK versions.
Not quite sure why you got the pytorch error, as by now torch comes with pre-compiled CuDNN and shouldn't have to be installed with conda.

ReadME file (Label 1: NEE, Label 2: CE)

Sure, I will include it.

Evaluate Folder

I will add this function call to the current ones. As you probably notices the nnU-Net only provides case-wise DICE values, which is why I used my own inferencing script, to included metastasis-wise instances, but if you are interested in the default nnU-Net eval it's an easy include.

Thanks for your response, Tassilo.
I see.. if I remember correctly, pip install (current way) tried to install pytorch 1.10.2 cpu version (without Cuda), and I got the mentioned error.
Sure, if you already have a plan to include your own script, I prefer to wait. No problem.

Sure, if you already have a plan to include your own script, I prefer to wait. No problem.

I currently do not intend to include the instance eval script, I rather would include the nnU-Net evaluation of semantic segmentation for convenience. Creating instances from segmentations is something I much rather not have in this repository. It will be it's own repository at some time.

I added a few more entrypoints that allow you to predict and evaluate in one go. So in case you want to test that out it would be awesome.
Also I could not reproduce the torch issue for any python version.
I tested py3.6 up till py3.12. The only issue I encountered was SimpleITK versioning which I hope should be fixed with the dependencies I added to the setup.py

@TaWald
Thanks for the update, Tassilo. I checked the setup.py and it looks good to me.

authors: Joeycho TaWald

repo: CCI-Bonn/HD-BM


text:
Check/expand tests to ensure the code matches our expectations for what's allowed and what isn't

Currently, we assume that nodes on other projects cannot access a network unless they are in the same project (unless the network is public).
We should ensure the test suite verifies these assumptions in both a positive and negative way.

Hmm, maybe this has been fixed by https://github.com/CCI-MOC/hil/blob/master/tests/unit/api/main.py#L711
And as for ensuring the test suite to verify, I am not sure whether there is a way to approach that. If not, we should close this issue.

I think except for testing physical connectivity we're good. That's a big task on it's own, though it would be nice.

authors: henn xuhang57 zenhack

repo: CCI-MOC/hil


text:
Hide Multiple Clusters

When you hide a cluster "A", and the hide a second cluster "B", A reappears.

Resolved by 1dc8ffddc150524b8c596d6f7c970b531b1bafb0

repo: CDCgov/MicrobeTRACE


text:
North Dakota Quick Test Fails

quick-test.sh fails now for North Dakota following merging of ND data and the CLI improvements.

Fixed the ND data generation issue in quick-test.sh. Take a look when you get a chance please. Thanks

Fixed the ND data generation issue in quick-test.sh. Take a look when you get a chance please. Thanks

repo: CDCgov/prime-data-hub


text:
Investigate and fix which endpoints may need to remove the activeMembership.service check

Problem statement
Similar to #12352, we saw that the logic used on the Data Dashboard was used on other endpoints as well. We need to check those endpoints to see if they are working properly on the pages that they appear.
What you need to know

See Penny's fix to #12352
Endpoints to investigate:

useOrganizationSenders
useOrganizationPublicKeys
useSenderResource
useReceiverSubmitters (All Facilities and Providers Page)

Acceptance criteria

[ ] Document where all of these endpoints are used
[ ] Confirm if those pages/features are working properly (logging in as a receiver or sender, not admin)
[ ] Communicate back to Product Manager (Chris) and Tech Lead (Victor) the findings
[ ] Remove the activeMembership.service check where applicable.

useOrganizationSenders (Manage public key) -  activeMembership.service check can be removed
useOrganizationPublicKeys (Manage public key) -  activeMembership.service check can be removed
useSenderResource (Banner, Submission History) - Need to keep the activeMembership.service check when calling the endpoint.
useReceiverSubmitters (All Facilities and Providers Page) -  activeMembership.service check can be removed

authors: chris-kuryak penny-lischer

repo: CDCgov/prime-reportstream


text:
Database logic in the service layer

Having the database logic in the service layer how it currently is means that the code will not be reusable with anything other than entity framework. The DAL should have this functionality, and the service layer should get an instance of the DAO that is needed and then use the functionality attached to that DAO.
Problem(there may be other places as well):
https://github.com/CECS-491A/core/blob/refactor-architecture-backend/Backend/ServiceLayer/Services/UserService.cs
Example:
https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/models-data/validating-with-a-service-layer-cs#decoupling-the-service-layer

hmm you have a point there.

i've been thinking alot about the repository pattern, but the more read about it it seems like it is not need cause ef6 provides alot of that funtionality. But it can still be used to isolate the db context between operations and entities using it. I'll look more into it.

authors: Luke-Clements alfredovargasjr


text:
refactor: refact topology to support sharding db

ref: https://github.com/cectc/dbpack/issues/
Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #234 (412861b) into dev (12c94c4) will increase coverage by 0.05%.
The diff coverage is 63.33%.

@@            Coverage Diff             @@
##              dev     #234      +/-   ##
==========================================
+ Coverage   42.82%   42.88%   +0.05%
==========================================
  Files          82       82
  Lines        9840     9857      +17
==========================================
+ Hits         4214     4227      +13
- Misses       5187     5189       +2
- Partials      439      441       +2

Impacted Files
Coverage Δ

pkg/topo/topo.go
75.86% <57.69%> (-1.92%)
:arrow_down:

pkg/misc/strings.go
90.24% <100.00%> (+0.50%)
:arrow_up:

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

source: gharchive/pull-request

authors: codecov-commenter dk-lockdown

repo: CECTC/dbpack


text:
api 수정하는 방식을 제외한 단순히 stream 데이터 실행

단순한 steam 데이터를 실행하는 방식을 사용할 예정입니다.
관련 자료는 여기에 남겨주세요

https://github.com/N4thou/Alfred/blob/036c227b8b702c2036d32a23042f6ee5db04b46c/commands/play.js
discord api js를 사용하지 않는 단순한 유튜브 실행 예제 참고

repo: CGyB/opensource-discord-bot


text:
Cubenoisenan

The current implementation of cube_noise is quite slow, and a lot slower than it needs to be for datasets that have planes/channels fully flagged.
This small improvement now checks whether the plane is fully flagged and if so, sets the noise and skymedian to np.nan right away instead of doing a bunch of useless NaN calculations.
This will be particularly important for non-uniform frequency coverage if the users implementation is "simply add NaN channels to make the frequency coverage uniform"

I seem to be not so good with multiple branching yet.. now this branch also includes the commit for #139 ....

Also already merged into dev, so I'm closing the PR (sorry, you're probably getting a bunch of spam in a row from all of these)

authors: Cameron-Van-Eck ErikOsinga

repo: CIRADA-Tools/RM-Tools


text:
CSV report (RM Squid 2.*-style) rounds 4cor_208Pb232Th_Age_RM to 4 significant figures

This is a very minor one, relating to the reporting of 4cor_208Pb232Th_Age_RM (and by association, its 1sigma absolute uncertainty). Everything looks fine when inside Squid3; below is the relevant Expression Manager window, which shows the full double-precision values in the Peek. These are correct in detail (i.e. "perfectly" matched to SQUID 2.50).

However, when the data is output to a Report Table (in my case, via Custom Report Tables... Reference Materials... Report Table per Squid2.*), these data have undergone symmetrical arithmetic rounding to 4 significant figures:

This issue persists across all 8 permutations of (Perm2/Perm4 + 204corr/207corr + Ucentric/Thcentric). It did not surface during Perm1 testing because in Perm1, neither SQUID 2.50 nor Squid3 perform calculations that give rise to 208Pb/232Th ages. I have not yet done any Perm3-based testing, but based on what I have seen, I would expect the problem to persist there.
It seems to be isolated; I have not yet found any other expression that is affected.

I found the culprit - a specification to show 4 instead of 15 digits in the report at those columns - a typo/bug.  Repaired in next release.

authors: bowring sbodorkos

repo: CIRDLES/Squid


text:
Create wallet session for Akshith and Toronto Legal Hackers as part of “The Great Blockchain Bake Off of 2016”

Update: Current idea is demo of CoinBase as "hybrid" solution for Blockchain and Payments
Note: The Smart Contract hybrid use case connected to "Loan" demonstrates something different - not focused on payment transaction rather focused on other legal terms and capabilities like evidence of a legal contract and trigger of a legal process such as repossession.  Trigger may be non-playment in a bank account and API from bank or web-hook representing an event ingestible by an Oracle to trigger for example notice of default on loan or repossession request.
Create wallet session for Akshith and Toronto Legal Hackers as part of “The Great Blockchain Bake Off of 2016” (3:10pm Agenda Item for TRANSACT Tech Boston: http://www.electran.org/conferences-events/2016-transact-tech-boston/)

Demo Top New/Crypo & Old/Fiat Digital Wallets to Rate/Evaluate Them (the “Bake-Off”)
New: BitCoin and Ethereum Wallets (SuperSet of Wallets: https://bitcoin.org/en/choose-your-wallet)
https://github.com/ethereum/mist/releases
Managed: (BitCoin Wallets Managed by CoinBase or Other Exchanges)
Blockchain
https://blockchain.info/wallet/
Not-Managed: (BitCoin Wallets Not Third-Party Managed Include)
Bread: https://breadwallet.com/
Multi-Sig Wallets:
Old: Google, PayPal, Apple Pay, CU Wallet… other?
See: http://www.cuwallet.com/
Opportunity to Demo a Hybrid Wallet Concept (Akshith)
https://www.coinbase.com/?locale=en

Show Crypto balances for bitcoin and/or ethereum and Fiat currency balances (ie in bank account and/or digital wallet if stored value, etc)
Allow Conversion
Demo some aspect of Payments

could be integration with Visa, Mastercard, etc (token-based standard… links to follow)
- could be integration with ACH  bank to bank transfers (see link above)
- could be integration with API for Svcs like Paypal, Square, etc
- (Please take a look at Circle and shout if you want to use and/or need any assist from them as they will be at and helping with the event on Sept 13th)
- In a pinch, could be a GitHub app integration with 2 or more account eg: create file constituting an “invoice” in buyers GitHub repo and then (based on some event representing a payment confirmation) create file constituting a receipt in buyers repo.

Notes:

Look at open bazaar and exchange like coinbase
https://support.coinbase.com/customer/portal/articles/1148716-payment-methods-for-us-customers
This is the punchline functionality for the ETA/Payments audience:
Deposit/Pay to fiat currency accounts including:
bank transfers & bank wires
Paypal is great for demonstrating online merchants
Feel free to also outreach to exchanges like ZebPay or CoinSecure (Indian Based) if you want to do something that is better with them.

For outreach to others as part of getting demo together, please just CC the rest of the Bake Off team:
Joanna Lehrer:
Amy ter Haar,
Dazza Greenwood:

If you get chance, please look at payswarm by http://digitalbazaar.com/

Volatility is an issue if value stored in cyptocurrency and expended in fiat currency.  It would be ideas to demonstrate at least one use case that:
Provides Evidentiary and Smart Contracts Capability via Blockchain
Provides Depository (Stored Value) and Fiat Currency Receive/Pay Capability
Including BitCoin and/or Ether is very good additional value and necessary to some extent to pay for any transaction on blockchain but can be de-linked from demo of a core-use case to existing payments industry who are looking for whether/how they can use Blockchain as part of consumer purchase from merchant in ordinary commerce and/or consumer transaction with their own or another person’s bank.

Completed !

authors: akshithg dazzaji


text:
Placing a campfire on top of a lower slab causes a crash and breaks the save

Using DoubleSlabs version 3.5.0c1, placing a vanilla campfire or soul campfire on top of any lower slab causes a freeze and then a crash. I haven't tried every slab in the game but I've tested with a large variety of vanilla and modded slabs and it has crashed with every single one.
It also breaks the save game with the crashed campfire. Trying to load into that world later causes another freeze then crash.
DoubleSlabs version 3.4.10 does not have this issue, and rolling back to that version makes the save playable again.
Edit: Removing 3.5.0c1 also restores the save. However if you then close the game, reenable the mod, and load that world again you'll have the missing textures grid wherever your former mixed slabs were, and clicking any of these broken texture cubes crashes the game again.
Another edit: Uh, apparently "fixing" a world by rolling back to the older DoubleSlabs version results in all your mixed-slab upper campfires doing this, both old ones and newly placed ones: [Screenshot]
Log and Crash Report from initially placing the campfire
Log and Crash Report from trying to load the world that crashed
Minecraft 1.16.5
Tested with both Forge 36.1.0 (recommended) and 36.1.4 (latest)
Tested on a clean install with no other mods

Hi there, thanks for reporting this and I sincerely apologise for these issues. The RC versions are experimental versions designed to try and improve performance hence they are not 100% stable. Please try 3.5.0rc2 as I believe this fixes the campfire issue (but please backup your world). Regarding the rendering issue, does it occur when shaders are disabled? Also, regarding the missing textures, if you bring up the F3 screen and look to the right, I'm guessing you see that the block is null? Unfortunately there's no way of restoring this without using a set block command to replace the block. I will look into this for you though and apologies again

-Campfire crash is fixed with 3.5.0rc2!
-Rendering issue only seems to occur with shaders active: [shaders on] [shaders off]
-Yes, F3 on the missing textures block shows null [link], and while checking this just now I discovered that the bugged block is only visible with optifine installed. Without optifine the bugged block is still there, it still shows an outline when looked at, and still crashes the game when clicked, but it's invisible and lying in wait to mess you up when you least expect it, lol.
-My save is fine now, I restored from an old backup. 😅 Thank you for the concern, though.

Glad to hear that the campfire is fixed! If you ever encounter the purple and black texture with the slabs just check the F3 screen to see if the state is null. If so then unfortunately an issue has occurred with the block and so the only fix is to setblock. In regards to the rendering issue, with campfires, your screenshot shows the one with the null state, would you be able to check by placing another campfire. Thanks again for all this :)


text:
🛑 Print is down

In d50b552, Print (https://print.cmasnap.com/api/render/?url=https%3A%2F%2Fapp.cmasnap.com%2Freports%2F9c12c9f7-a837-4151-ad87-71321a01926a%3FprintApiToken%3D$PRINT_API_TOKEN%26format%3Dweb&output=html) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Print is back up in 346e798.

repo: CMAsnap/status


text:
Add GPU support for keras

Training on neural networks have high computation costs. At some point CPU's are not sufficient enough and one has to switch to GPU's. They are ~80 times more efficient. More information for an implementation in keras, here:

https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed-training.

This feature is currently only supported using Keras backend TensorFlow! For an configuration using Theano have a look here:

https://github.com/santiagolopezg/MODS_ConvNet/wiki/Configuring-the-CPU-GPU-unit-for-Deep-Learning-using-Keras-(Theano-backend)-on-Ubuntu-16.04

Additionally a documentation and example script should be added for submitting trainings with Keras to the GPU machine of the RWTH IceCube working group.

Solved.
Using the GPU machine solves this problem by setting up a virtualenv which points the tensorflow-gpu installation directly to the GPU. There is no need anymore to change code at all to use a GPU instead of a CPU for training. :tada:


text:
Russian loc updates

Fo changed and new locs in #447 and #488

Don't know how, but my merge delete english locs 😑
restore it in last commit

repo: CQUI-Org/cqui

license: mit


text:
Whoamiを実装しました

Getのデータは取得できていません

@Watanabe1101 BMIの方は動作できていないという認識で問題ないですか？このPull RequestにはBMIのコードが含まれてしまっているのでICMのみのコードを含んだPull Requestを立てていただけますか？

BMIは取れていないです
Pull Requestの件了解しました


text:
Build: added link to css, js. built header box and 2 sections for boxes

Added link to css, js for HTML.  Built header box and 2 sections for boxes.  A good start on the HTML.

Removed redundant lines of code


text:
model: simplify model code

Various simplifications to the model code. As the diffstat shows, this PR removes a lot of code, which should hopefully make it easier to implement the task management app on top.
Remove tag support

[1/12] model: remove tag support

We don't need tag support for v0.2.
Also, I'm not really convinced that we need to detect duplicate tags. We most probably can just use a Set and run with it. Sounds a bit like too much complexity for its own good.
So, let's remove support for tags for now. If we ever need it, we can always just add it back in.
Remove unique tasks constraint

[2/12] model: move TaskNotFoundException to a new file
[3/12] model: remove unique tasks constraint

The unique tasks constraint is not so important for now. In fact, in the original address book code, two Persons were only considered equal if all their fields matched exactly. While good as a Java equals() implementation, it does not bring much value for the user ("What? I have a duplicate person just because I capitalized one character in the person's address?")
Also, the implementation of UniqueTaskList was not so ideal, as can be seen on from the presence of a getUniqueTaskList() and getInternalList() all over the place. Not very good encapsulation.
Some code cleanups

[4/12] model: push down ReadOnlyTask.isSameStateAs() into Task.equals()
[5/12] TaskBook.getTasks(): make returned observable list unmodifiable
[6/12] TaskBook: remove getEmptyTaskBook()

Various code cleanups in preparation for making Task immutable and removing ReadOnlyTask.
Make Task immutable

[7/12] model: make Task immutable
[8/12] testutil: make TestTask effectively immutable
[9/12] model: remove ReadOnlyTask

Making objects immutable is a good thing because we can be sure that if we have a reference to an object, the data in the object will never change.
For the case of Task, we are going to have hundred, if not millions of these instances in a Task Book. Having to wonder at all times if the data stored by these task objects may be mutated is the surest path to insanity.
This does not mean that users won't be able to edit tasks. We just need to create a new Task object with the modified data, and then replace the old task object in the task book with the new one. Even though the objects are different, from the user's perspective it would seem as if the task was edited.
More code cleanups

[10/12] TaskBook: code cleanup
[11/12] ReadOnlyTaskBook/TaskBook: merge getTasks() and getTaskList()
[12/12] Model: make task list filtering interface open to extension

Some more model code cleanups.

Coverage decreased (-2.5%) to 82.365% when pulling 662f53169d028389f0b150221bbce3af258c2961 on pyokagan:simplify-model into 67509e29022255a7655f26ef9f89f802997147c7 on CS2103AUG2016-T11-C4:master.

Coverage decreased (-2.5%) to 82.365% when pulling 02c68c6e074e30a4d1c84f5171d15f3f892d69fb on pyokagan:simplify-model into 67509e29022255a7655f26ef9f89f802997147c7 on CS2103AUG2016-T11-C4:master.

Coverage decreased (-2.5%) to 82.388% when pulling 703f36768a9a38d98b3ae4ec239d6ef74d4865e8 on pyokagan:simplify-model into 67509e29022255a7655f26ef9f89f802997147c7 on CS2103AUG2016-T11-C4:master.

Coverage decreased (-2.5%) to 82.388% when pulling bae6a7ce3adb36d33cad84f92cf2bae955d009e6 on pyokagan:simplify-model into 0b8a6d5f67a79456fc28f5992672c1bfbb16a99c on CS2103AUG2016-T11-C4:master.

Coverage decreased (-1.7%) to 83.116% when pulling 328698921f84a02ae3d0c08a4b507bc558dc2f25 on pyokagan:simplify-model into 0b8a6d5f67a79456fc28f5992672c1bfbb16a99c on CS2103AUG2016-T11-C4:master.

Coverage decreased (-1.8%) to 83.099% when pulling 3357407457d45bcf072afd643ca2fbd1711a4490 on pyokagan:simplify-model into 0b8a6d5f67a79456fc28f5992672c1bfbb16a99c on CS2103AUG2016-T11-C4:master.

Coverage decreased (-1.6%) to 83.266% when pulling 0da44263d108203d139a642cb8a87d165163b7ea on pyokagan:simplify-model into 0b8a6d5f67a79456fc28f5992672c1bfbb16a99c on CS2103AUG2016-T11-C4:master.

Bypassing review because this PR is blocking a lot of issues and our time is limited.
Also, I trust myself :^)

authors: coveralls pyokagan


text:
update doc

developer guide update

This fixes #66

Coverage remained the same at 77.727% when pulling 7e502ea87232d226ad73d83a610688619cfcea6d on update_doc into 5e518723534c6dcf6973c63ca39fc4a674f036a4 on master_V0.4.

authors: benwongwf coveralls jjingrong


text:
[Feature 1.3] Train, Plot, Station, Track classes

calculates the schedules based on train movement

Train modelling system already finished


text:
add badge, ci and fix lint problems

add passing badge
add workflows file
fix lint problems to make it pass ci

We're currently processing your upload.  This comment will be updated when the results are available.


text:
R6: Continuous Deployment and Event Trigger Setup

As a DevOps engineer,
I need to set up an EventListener with a Trigger, TriggerBinding, and TriggerTemplate,
So that a PipelineRun is created automatically whenever a push is made to the master branch.
Details and Assumptions

The EventListener setup will handle GitHub webhooks to start the pipeline.
Store these configurations in the .tekton/ directory.

Acceptance Criteria
Given a push to the master branch
When the GitHub webhook is triggered
Then the Tekton pipeline should start executing automatically

How did you tested this?

I haven't yet, I think we would test the tekton pipeline as a whole once we add the pipeline.yaml, tasks.yaml, workspace.yaml files.

How did you tested this?

I haven't yet, I think we would test the tekton pipeline as a whole once we add the pipeline.yaml, tasks.yaml, workspace.yaml files.


text:
Merge master to develop

Description

Let's fix the dissonance between master and develop!

This doesn't seem to work as I imagined.

repo: CSCfi/metadata-submitter


text:
Code smells refactoring

Revisión de las clases del código para identificar code smells y proponer técnicas de refactoring

Esperando aprobación de @heimarvegaeci

Muy buen trabajo. Solo recomendación dejar el Readme.md original y crear un archivo adicional donde se vayan registrando las actividades que hagamos en el curso. Por lo demás un excelente trabajo muy bien documentado-.

authors: andreaduranvivas heimarvegaeci


text:
Haversine calculation could be more precise

Description
I noticed that our haversine function in regionalisation.py gives very different values from what I expect. https://github.com/CSHS-CWRA/RavenPy/blob/cda72b97e8b49f77e807bdf80b1fb6b8c5c08bb1/ravenpy/utilities/regionalization.py#L198
In other projects, I've used https://github.com/mapado/haversine to estimate this value. As a smoke test, I tried the example from the readme using our version:
# Our version
raven_haversine(*lyon, *paris)
>> 391.97046653187857 # Km's

# Haversine library
haversine(lyon, paris)
>> 392.2172595594006 # Km's

I think it would be good to replace this function with the one offered by the Haversine library.

Closed with #124

repo: CSHS-CWRA/RavenPy


text:
Simplification doesn’t handle decomposition correctly

OptimalSimplifyingReductions carries out ReductionDecomposition + NormalizeReduction steps which introduces new local variables for the intermediate results that are higher dimensional than the original answer variable. This prevents simplification from exploiting all reuse.
An example
Take the following 4D max filter:
affine max_filter_4d [N, W] -> {: 0<W<N}
  inputs
    X : {[i,j] : 0<=i,j<=N+W}
  outputs
    Y : {[i,j] : 0<=i,j<=N+W}
  let
    Y[i,j] = reduce(max, (i,j,k,l->i,j), {: i<=k<=i+W and j<=l<=j+W} : X[k,l]);
  .

There is 2D reuse so we should be able to obtain a (4-2=2)D simplified version. OptimalSimplifyingReductions finds a 3D version using ReductionDecomposition:
// +-- Apply ReductionDecomposition to Y with [N, W] -> { [i0, i1, i2] -> [(i2), (i0)] } o [N, W] -> { [i, j, k, l] -> [(j), (k), (i)] }
// +--+-- Apply SimplifyingReduction to Y_NR with: [ 1 0 0 0 ]
affine max_filter_4d [N, W] -> {  : 0 < W < N }
  inputs
    X : {[i, j]: 0 <= i <= N + W and 0 <= j <= N + W }
  outputs
    Y : {[i, j]: 0 <= i <= N + W and 0 <= j <= N + W }
  locals
    Y_NR : {[i0, i1, i2]: 0 <= i0 <= N + W and i1 <= N + W and i2 >= 0 and -W + i1 <= i2 <= i1 }
    Y_NR_pos : {[i0, i1, i2]: i2 = i1 and 0 <= i0 <= N + W and 0 <= i1 <= N + W }
  when {  : 0 < W < N } let
    Y[i,j] = reduce(max, (i0,i1,i2->i2,i0), Y_NR);

    Y_NR[i0,i1,i2] = case  {
      {: i2 = i1 and 0 <= i0 <= N + W and 0 <= i1 <= N + W } : Y_NR_pos;
      {: 0 <= i0 <= N + W and i1 <= N + W and i2 >= 0 and -W + i1 <= i2 < i1 } : Y_NR[i0,i1,i2+1];
    };

    Y_NR_pos[i0,i1,i2] = reduce(max, (i,j,k,l->j,k,i), {: k = i and 0 <= i <= N + W and j >= 0 and j <= l <= W + j and l <= N + W } : X[k,l]);
.

However, now we have new local variables which are 3D. There is still reuse present in the residual reduction in Y_NR_pos — it’s body is 3D and the expression X[k,l] has 1D reuse. But since the variable on the LHS of the equation is 3D, the current implementation stops and says that this reduction is optimally simplified.

The variable Y_NR_pos really is 2D because of the constraint i2 = i1, and we can legally rewrite the system as:
affine max_filter_4d [N, W] -> {  : 0 < W < N }
  inputs
    X : {[i, j]: 0 <= i <= N + W and 0 <= j <= N + W }
  outputs
    Y : {[i, j]: 0 <= i <= N + W and 0 <= j <= N + W }
  locals
    Y_NR : {[i0, i1, i2]: 0 <= i0 <= N + W and i1 <= N + W and i2 >= 0 and -W + i1 <= i2 <= i1 }
    Y_NR_pos : {[i0, i1]: 0 <= i0 <= N + W and 0 <= i1 <= N + W }
  when {  : 0 < W < N } let
    Y[i,j] = reduce(max, (i0,i1,i2->i2,i0), Y_NR);

    Y_NR[i0,i1,i2] = case  {
      {: i2 = i1 and 0 <= i0 <= N + W and 0 <= i1 <= N + W } : Y_NR_pos[i0,i1];
      {: 0 <= i0 <= N + W and i1 <= N + W and i2 >= 0 and -W + i1 <= i2 < i1 } : Y_NR[i0,i1,i2+1];
    };

    Y_NR_pos[i0,i1] = reduce(max, (i,j,l->j,i), {: 0 <= i <= N + W and j >= 0 and j <= l <= W + j and l <= N + W } : X[i,l]);
.

Similarly, since Y_NR is the same value along 1D’s worth of points (i.e., the second branch of the case expression), we can legally rewrite the system as:
affine max_filter_4d [N, W] -> {  : 0 < W < N }
  inputs
    X : {[i, j]: 0 <= i <= N + W and 0 <= j <= N + W }
  outputs
    Y : {[i, j]: 0 <= i <= N + W and 0 <= j <= N + W }
  locals
    Y_NR_pos : {[i0, i1]: 0 <= i0 <= N + W and 0 <= i1 <= N + W }
  when {  : 0 < W < N } let
    Y[i,j] = reduce(max, (i0,i1,i2->i2,i0), Y_NR_pos[i0,i1]);

    Y_NR_pos[i0,i1] = reduce(max, (i,j,l->j,i), {: 0 <= i <= N + W and j >= 0 and j <= l <= W + j and l <= N + W } : X[i,l]);
.

But I’m not sure if we can always do this, since the case expression in Y_NR came from the previous application of theorem 5 from GR06.

repo: CSU-CS-Melange/alpha-language


text:
xh325-update url for homework4

xh325-update url for homework4.

Hi! Please resolve conflicts

Will submit a new pull request without conflict.

authors: amfleming leohunt


text:
Connection error when attempting to empty the Drafts folder

Your environment
Ctemplar F-Droid app version 1.4.9. OS - Android 11. Device - Pixel 4a.
Steps to reproduce

Open the Ctemplar app.
Navigate to "Drafts" folder.
Tap on menu button.
Tap on "Empty folder" option.
Confirm that user would like to empty folder.

Expected behavior
All draft messages in the "Drafts" folder are actually emptied to the "Trash."
Actual behavior
An error message results which reads "connection error." User is not experiencing any issues with home internet or LTE connection on mobile device. User has already attempted clearing cache, clearing data, uninstalling the app and reinstalling. The  error is encountered in the "Drafts" folder every time emptying it is attempted.

Hi @ghost . The fix is already completed and will be available in the next version of the app. Thanks for reporting the issue!

repo: CTemplar/android


text:
Conversion from 4 to 5 fails to "unwrap" credits properly, inserting json into a string value

For example, https://vulnogram.github.io/seaview/?CVE-2021-28687 : the string value of the credits in v4 is This issue was discovered by Olaf Hering., but the string value of the credits in v5 is "{'credit_data': {'description': {'description_data': [{'lang': 'eng', 'value': 'This issue was discovered by Olaf Hering.'}]}}}"}.
The v5 schema seems to have a lot fewer levels of nesting than v4 (which is good!); many of the other conversions (e.g., description) seem to have properly "unwrapped" the extra layers.  This doesn't seem to have been done properly for credits

Please see https://github.com/CVEProject/cve-schema/issues/158#issuecomment-1080232673
Same situation as the workaround field.

authors: chandanbn gwd

repo: CVEProject/cve-schema


text:
The basic demo fails to compile

Hi,
I did a clean npm i in the basic demo, then a npm start, which uses ng serve and it is throwing some errors, complaining about the format of the config file angular-cli.json. I tried with a similar configuration as the other demo, but it still fails. I am using node 6.3.0, and the other dependencies should come from the package.json. Can you build it with a clean npm i?
Thanks!

Thanks @igncp  for the PR, I just to test the new version which works perfectly.

authors: Caballerog igncp


text:
可以自定义图标吗？

可以自定义图标吗？还有视频 卡顿 缓存 的时候可以自己添加缓存图标吗？

目前缓存的buffer是没实现的
自定义图标不知道你是要自定义什么东西
你可以完整的自定义Controller的UI控制层
可以复制DefaultIJKControllerWidget的源码到你的项目中做深度定制

authors: CaiJingLong cleoTang


text:
requirement.txt

Can you give the version of the package,  for example, matplotlib = 2.3.4,scikit-image = 1.2.3.  Like other open source code.
so I can run the code in Docker

Hello! Thanks for your attention to our work! Our codebase works well on various environment settings, an example of mine is listed as follows:
absl-py                  2.1.0
addict                   2.4.0
aiofiles                 23.2.1
aiohappyeyeballs         2.4.0
aiohttp                  3.10.6
aiosignal                1.3.1
annotated-types          0.7.0
antlr4-python3-runtime   4.9.3
anyio                    4.6.2.post1
attrs                    24.2.0
beautifulsoup4           4.12.3
certifi                  2024.6.2
charset-normalizer       3.3.2
click                    8.1.7
contourpy                1.2.1
cycler                   0.12.1
dataclasses              0.6
docker-pycreds           0.4.0
einops                   0.8.0
fastapi                  0.115.4
ffmpy                    0.4.0
filelock                 3.14.0
flash-attn               2.6.1
focal-frequency-loss     0.3.0
fonttools                4.53.0
frozenlist               1.4.1
fsspec                   2024.6.0
future                   1.0.0
fvcore                   0.1.5.post20221221
gdown                    5.2.0
gitdb                    4.0.11
GitPython                3.1.43
gradio                   5.5.0
gradio_client            1.4.2
grpcio                   1.64.1
h11                      0.14.0
h5py                     3.11.0
httpcore                 1.0.6
httpx                    0.27.2
huggingface-hub          0.26.2
idna                     3.7
imageio                  2.34.1
importlib_metadata       8.0.0
iopath                   0.1.10
Jinja2                   3.1.4
joblib                   1.4.2
kiwisolver               1.4.5
kornia                   0.7.3
kornia_rs                0.1.4
lazy_loader              0.4
lightning-utilities      0.11.7
linformer                0.2.3
llvmlite                 0.43.0
lmdb                     1.5.1
lpips                    0.1.4
Markdown                 3.6
markdown-it-py           3.0.0
MarkupSafe               2.1.5
matplotlib               3.9.0
mdurl                    0.1.2
mpmath                   1.3.0
multidict                6.1.0
natsort                  8.4.0
natten                   0.17.1+torch230cu121
networkx                 3.3
numba                    0.60.0
numpy                    1.26.4
nvidia-cublas-cu12       12.1.3.1
nvidia-cuda-cupti-cu12   12.1.105
nvidia-cuda-nvrtc-cu12   12.1.105
nvidia-cuda-runtime-cu12 12.1.105
nvidia-cudnn-cu12        8.9.2.26
nvidia-cufft-cu12        11.0.2.54
nvidia-curand-cu12       10.3.2.106
nvidia-cusolver-cu12     11.4.5.107
nvidia-cusparse-cu12     12.1.0.106
nvidia-nccl-cu12         2.20.5
nvidia-nvjitlink-cu12    12.5.40
nvidia-nvtx-cu12         12.1.105
omegaconf                2.3.0
opencv-python            4.10.0.82
orjson                   3.10.11
packaging                24.1
pandas                   2.2.3
pillow                   10.3.0
pip                      24.0
platformdirs             4.2.2
portalocker              2.8.2
protobuf                 4.25.3
psutil                   6.1.0
ptflops                  0.7.3
pycocotools              2.0.8
pydantic                 2.9.2
pydantic_core            2.23.4
pydub                    0.25.1
Pygments                 2.18.0
PyMatting                1.1.12
pyparsing                3.1.2
PySocks                  1.7.1
python-dateutil          2.9.0.post0
python-multipart         0.0.12
pytorch-lightning        2.4.0
pytorch-msssim           1.0.0
pytz                     2024.2
PyWavelets               1.7.0
PyYAML                   6.0.1
requests                 2.32.3
rich                     13.9.4
ruff                     0.7.3
safehttpx                0.1.1
safetensors              0.4.3
scikit-image             0.18.1
scikit-learn             1.5.0
scipy                    1.13.1
semantic-version         2.10.0
sentry-sdk               2.17.0
setproctitle             1.3.3
setuptools               69.5.1
shellingham              1.5.4
six                      1.16.0
smmap                    5.0.1
sniffio                  1.3.1
soupsieve                2.5
starlette                0.41.2
swattention              1.0
sympy                    1.12.1
tabulate                 0.9.0
tensorboard              2.17.0
tensorboard-data-server  0.7.2
termcolor                2.4.0
thop                     0.1.1.post2209072238
threadpoolctl            3.5.0
tifffile                 2024.5.22
timm                     1.0.3
tomli                    2.0.1
tomlkit                  0.12.0
torch                    2.3.1
torchvision              0.18.1
tqdm                     4.66.4
triton                   2.3.1
typer                    0.13.0
typing_extensions        4.12.2
tzdata                   2024.2
urllib3                  2.2.1
uvicorn                  0.32.0
wandb                    0.18.5
websockets               12.0
Werkzeug                 3.0.3
wheel                    0.43.0
yacs                     0.1.8
yapf                     0.40.2
yarl                     1.12.1
zipp                     3.19.2

Where is the structural diagram of the RA module? I couldn't find it in the paper.

Hello! The RA module, i.e., Regional Attention module, can be seen in Fig 1(c) of the paper, where it is schematically compared with Self Attention and Window Attention.

I saw it, it's just a simple diagram. What I'm talking about is the framework diagram, which means others can reproduce the code based on your framework diagram. This diagram was not provided in your paper.

I cannot know how the code of the RA module is completed based solely on Fig 1 (c)

I saw it, it's just a simple diagram. What I'm talking about is the framework diagram, which means others can reproduce the code based on your framework diagram. This diagram was not provided in your paper.

We were inspired by Neighborhood Attention Transformer when implementing Regional Attention, you can see  Neighborhood Attention Transformer & NATTEN for more details.

authors: CalcuLuUus lime-j zyt0929

repo: CalcuLuUus/RASM


text:
Too Many Requests

Hi.
Thank you for the tool.
I am experiencing the following error, which occurs during the download process. Some of the files are downloaded.
statusCode: 429,
statusMessage: 'Too Many Requests'
Error while downloading files. Exiting...
I believe it can be fixed by having a duration of time between each request or by having only a limited number of request going at a time.
Would you be able to make this adjustment?

Hi @dlindegaard ,
I'll look into it, it might be related to them moving to Vercel and limiting rates for non paying users.

Thank you @CalinaCristian . I am a paying user if Vercel (Pro), so that is not the case. I did do a small edit of your codebase in which I made a 200ms delay between each file download request, which enabled me to complete the download of the entire project. It was, however, just a quick fix. My suggestion would be to keep track of the number of ongoing requests and ensure that it keeps below a max. I am not exactly certain what the max value actually is though.

authors: CalinaCristian dlindegaard


text:
m64p: persisting config data

mupen64plus was recently added to the bucket but there seems to be a problem as the "mupen64plus-gui.ini" file does not affect the program, i.e. running the program and looking under "Settings > Plugin and Path Selection" shows that "Config Dir Path" is set to $CONFIG_PATH$ despite "mupen64plus-gui.ini" defining it as $APP_PATH$/config.
In this state, "input-profiles.ini", "input-settings.ini", and "mupen64plus.cfg" are saved to "%appdata%\Mupen64Plus" instead of the "config" dir in the program's directory (a directory which "m64p.json" persists).
I have seen that after installing m64p via Scoop, a note message appears saying "Configuration files cannot be persisted, but will be retained during the update", however it should be possible to do:
The "configDirPath" value is stored in the registry (HKEY_CURRENT_USER\Software\mupen64plus\gui) and it to reads $CONFIG_PATH$. Changing this value to $APP_PATH$/config causes the mentioned ini/cfg files to be stored in the persisted "config" dir. Therefore, if the manifest also set this registry value via post_install ("zoom.json" has an example) the configuration files would persist.
Setting the registry value may actually just be a workaround if it turns out that the problem is instead m64p not honouring the "mupen64plus-gui.ini" values.
manifest author: @satorope
m64p dev: @loganmc10

As you say, m64p stores the value of configDirPath in the registry, not in mupen64plus-gui.ini
mupen64plus-gui uses Qt, and it is using QSettings to store this data (https://github.com/m64p/mupen64plus-gui/blob/9cdadb37ab67d1b3bad615312fc792433f324c8c/mainwindow.cpp#L331)
QSettings uses the registry by default on Windows, and ~/.config/mupen64plus on Linux.
Past versions sorted the settings in mupen64plus-gui.ini, which was located in the same folder as mupen64plus-gui. However, the installation directory (where mupen64plus-gui.exe resides) is not always writeable, so it was changed to use the registry in order to make sure the location was always writeable

To my knowledge, Scoop doesn't attempt to backup/save program settings which store to the registry, making persisting such settings not possible. An indirect solution could be to allow m64p to either store its Qt settings to the registry, or as before to "mupen64plus-gui.ini" in the case where the file is present in the program's directory (I assume it's the same format as the Linux file and so may not be too much work to reimplement). This way the program's settings, as well as its Qt settings, would be portable if desired, and too, fix this issue. Alternatively, we could write the "configDirPath" value to the registry as mentioned previously. Which approach depends on @loganmc10's answer I suppose.

I fixed the issue: https://github.com/loganmc10/m64p/commit/4ca0517ceef643dbd8860428d7e436b5b5e16d27
It will attempt to write mupen64plus-gui.ini, and if it is not writeable, it will fall back to using the registry. That change will make it in to the next version of m64p, but I don't have a date for that yet

Great! I assume the Windows version will also attempt to read the ini on program launch if the file is present?

If it's in the same directory as the EXE, yes

Perfect. Thanks @loganmc10!
Assuming the fix works, this issue can be closed once a m64p version greater than "2021.12.29" is released.

@redactedscribe close

authors: beyondmeat loganmc10 redactedscribe

repo: Calinou/scoop-games


text:
[feature] add shortcuts to the iterator methods

Follow-up of the PR on https://github.com/CanalTP/skip_error/pull/11 where we provide shortcuts for the macro. This PR is doing the same work for the iterator's methods.
Note: I choose to do it with a copy/paste solution, but I could do it with a macro to factorize code. If you think it'd be better with a macro, I'd be happy to do it, so don't hesitate to ping me on this.

As soon as I have time, I'm gonna refactor it with macro to factorize code (and maybe have some doc-tests too!).

I've reworked the PR to factorize the code into a macro.


text:
Changed View.propTypes to ViewPropTypes

In order to prevent Unhandled JS Exception: undefined is not an object (evaluating 'b.View.propTypes.style') on react-native 0.49.*

@SudoPlz merged

authors: CandyOgre SudoPlz

repo: CandyOgre/react-native-swipeout


text:
glucogene, bickering

This pull request was generated by the 'mq' tool

/trunk merge

repo: Canva/mergequeue-trunk


text:
excipulaceae, boobishness

This pull request was generated by the 'mq' tool

/trunk merge


text:
ConfigWindow: After a save you are able to open a second config window

This happens because saving restarts the tray icons, meaning the configWindow variable is null again.

Idea: Add a CacheManager where we can cache things globally

Better idea: Dont restart Sniper instances, only restart the popup menu.
How did i not come up with that sooner...

Fixed :^)
Now you can only have one config window open at the same time, as having more then one can lead to out of sync issues.
Lovely.

repo: CaptureCoop/SnipSniper


text:
无网络进入全屏加载失败后退出全屏，activity底部tabhost被移除屏幕一半，显示不全了

请问从哪里入手解决问题，视频加载成功后，退出全屏是不会有这个bug的

em·····你看看 GSYBaseVideoPlayer 会不会影响到，还有 onConfigurationChanged 相关的
还有和隐藏 statusbar 、actionbar 有没有关系

我看了是actionBar造成，我的页面是需要显示actionBar的，但是现在我发现全屏时候视频不是在actionbar下面，而是视频的顶部被actionbar覆盖了，请问怎么解决，谢谢

调用 startWindowFullscreen 时配置的

statusBar设置为false会显示状态栏，但是状态栏把视频给覆盖了，请问如何让视频从状态栏下方开始显示而不被覆盖呢，player.startWindowFullscreen(getActivity(), false, false)

应该怎么在demo复现呢

应该怎么在demo复现呢

sorry忘了回，在demo中的ListNormalAdapter中把statusBar设置成false就会出现这种情况（statusBar把视频给遮盖）        standardGSYVideoPlayer.startWindowFullscreen(context, true, false);

你需要重写 startWindowFullscreen 方法，然后你看下 hideSupportActionBar 静态方法

authors: CarGuo ZJLeBron

repo: CarGuo/GSYVideoPlayer


text:
Get Min and Max from ConfigEntries

public static IntValue SHIELD_VALUE = server.addInt("Shield Value", 20, "How many Health Points the Shield should be by default").setMin(0).setMax(65520);
I can do SHIELD_VALUE.getDefault(), but .getMin() or .getMax() is not possible.

@Xaikii i know you have a point but i have a question.
if you are working with constants in setMin/setMax why do you need to read them if you have the constants already known already.
(And updating mutliple of them could be achieved by using static final field)

authors: Speiger Xaikii

repo: Carbon-Config-Project/CarbonConfig


text:
Add Mission Journeys

Related to Issue #92

TODO: once we have implemented both BE and FE parts of this feature, the team will need to do some manual testing before merging with master.


text:
Putting the bot in check resets the board

Similar to #7 but worse. Putting the bot in check resets the board and from then on the bot cannot make any moves.
Will be fixed anyway by #5 if that is implemented.

No longer seems to be an issue.

repo: CarbonChess/CarbonChess

license: ISC


text:
reduce entropy in wordlist

I found a german wordlist for BIP39 with slightly lower entropy. Since I didn't really vet my list apart from filtering by length and reducing the initial set "fairly" accross all characters, I suggest updating mine.

The word falsch (means "false") was in their source set which was then inserted into their released list as FALSE...
The only application I know that will pick up the german word "falsch" and return "FALSE" when you copy/paste the text into an editor MS Excel.
this makes me much happier than it should...

sounds good to me. youre the expert in this area

authors: nothingalike tweakch

repo: CardanoSharp/cardanosharp-wallet


text:
Unnecessary (and wrong) bitmasking for read/write addressing

The I2C official specification describes that in a 7-bit addressing mode, the 8th bit is used for specifying a read (1) operation or a write (0) operation.
Silly me thought that I had to manually do this by masking the address appropriately (addr & 0xFE) vs (addr | 0x01). This is in fact totally wrong. Behind the scenes, the I2C library will shift the address up 1 bit and then mark the 8th bit appropriately for read/write operations.
Example:
// What I was doing
(0x42 | 0x01) // This becomes 0x43
(0x43 << 1) | 1 // This is what the library does, and it results in 0x87

// What would be correct
0x42 // Leave the address alone
(0x42 << 1) | 1 // The address is dealt with by the library and becomes 0x85

Please remove all the read_addr() and write_addr() macros in all the libraries within fetcher. Let the library handle addresses!

Fixed as a side product of #27.

repo: CarletonURocketry/fetcher


text:
Add LightningChart and SciChart

Since you have commercial libraries you should add
SciCharts and LightningCharts
They are really similar, and look really high-quality
NOTE: I am in no way affiliated with any of the two companies, I just hope the offer some sort of community license.

Thanks for the suggestion. Changes were added.


text:
An exported experiment should always be inactive

Describe the bug
Currently, if an enrolling experiment is exported, the exported JSON file contains "state":"enrolling". So if the file is imported, the experiment status is set to "enrolling" making it not possible to edit or schedule the experiment. Therefore, I believe an exported experiment's status should always be "inactive".
To Reproduce
Steps to reproduce the behavior:

Create an experiment in UpGrade
Set the experiment status to "enrolling"
Export the experiment file in JSON
Delete the experiment and try importing the exported file
You will see the imported experiment is set to "enrolling"

Expected behavior
An exported experiment's status should always be "inactive".
Video
https://user-images.githubusercontent.com/90279765/205711101-85a999a2-91e0-47e7-a395-3ef7c95ea80b.mov

I would allow the export (you might want to document the experiment design or duplicate and modify it for some purpose), but I'd ignore "state" when importing and always set the imported experiment to "inactive".

authors: SritterCL zackcl

repo: CarnegieLearningWeb/UpGrade


text:
Add warning icon and modify instructions

Added warning icon because of https://github.com/CartoDB/cartodb.js/issues/1716
The font has not been generated because it's not used anywhere, but warning icon has been added to sketch file and the generated SVG has been added.
Added one line to instruction that was missing.
Added npm script to run gulp.

Closing because it is not necessary.

authors: ivanmalagon xavijam

repo: CartoDB/CartoAssets


text:
If renaming a column fails, the error is not shown

Open a dataset.
Rename any column to created_at.

As that's not a valid name, the request fails: "That column name is reserved, please choose a different one". Nevertheless, no error is shown to the user.
cc @ivanmalagon @ramiroaznar

Stale issue. Closing 👋

authors: alrocar juanignaciosl

repo: CartoDB/cartodb


text:
[Dashboard] - Onboarding - Simplify CARTOframes tutorial

Context
https://github.com/CartoDB/product/issues/476
Main tasks

[x] Allow the wizard Header to only have one step
[x] Allow the wizard not to display the Footer
[x] Change the main content

[x] The title, tags and decorative items
[x] Texts
[x] Piece of code
[x] Interactive map
[x] Custom footer within the content

Looking nice in production! 🚀


text:
Layer models not using same models but Table/UserTable

Developing another feature I found this:
CartoDB::Visualization::Member.new(id:visualization.id).fetch.related_tables
[#<Table:0x0000000657b2e0 @user_table=#<UserTable @values={:name=>"table2", :privacy=>0, :updated_at=>2015-08-03 11:46:40 +0200, :tags=>nil, :geometry_columns=>nil, :rows_counted=>0, :rows_estimated=>0, :indexes=>nil, :database_name=>nil, :description=>nil, :table_id=>2835208, :id=>"5b7823da-af9a-489b-9c93-08a112fd3e28", :user_id=>"5fda9e4b-479d-4ba7-8941-8af5c489b879", :map_id=>"688ff4ac-d825-4981-ae8a-b2316a027d51", :data_import_id=>nil}>>]

Carto::Visualization.where(id:visualization.id).first.related_tables
[#<Carto::UserTable name: "table2", privacy: 0, updated_at: "2015-08-03 11:46:40", tags: nil, geometry_columns: nil, rows_counted: 0, rows_estimated: 0, indexes: nil, database_name: nil, description: nil, table_id: 2835208, id: "5b7823da-af9a-489b-9c93-08a112fd3e28", user_id: "5fda9e4b-479d-4ba7-8941-8af5c489b879", map_id: "688ff4ac-d825-4981-ae8a-b2316a027d51", data_import_id: nil>]

But the issue is that Layer models don't use the same return models:
::Layer
  def tables_from_table_name_option
    ::Table.get_all_by_names([options.symbolize_keys[:table_name]], user)
  end

Carto::Layer
  def tables_from_table_name_option
    return[] if options.empty?
    ::Table.get_all_user_tables_by_names([options.symbolize_keys[:table_name]], user)
    end

We must make both Layer models use the same signature, either Tables or UserTables.

After checking a bit this code, there's no quick fix. I think it's worth instead to go on with the backend refactor so we can simply remove old models.


text:
JS error setting a custom legend

STR

Create a map of points (with just one is ok).
Click over the layer and then go to the legends section.
Select a custom one.
JS error appear in the console (Cannot read property 'length' of undefined).

Fixed in 512b621

👍

authors: nobuti xavijam


text:
11678 user notifications read api

Closes #11678

New model: ReceivedNotification. It's a N:M between users and notifications, adding the date the notification was received and the date it was read (if any).
After creating an organization notification, the notification is sent to all affected users (ReceivedNotification entries are created)
Rename user_notifications (used mainly onboarding "do not show again" button) to static_notifications to try to make the naming mess a little more passable.

I've left it here (no API, and no erb) pending integration with frontend. I think the best plan is to generate the html for notifications directly in app/views/admin/shared/_private_header.erb
Acceptance

[ ] Create a new user. Check that map onboarding appears
[ ] Select the do not show again option in the onboarding, and check that it doesn't appear again
[ ] API tests? There is not really a good way to do them except from Rails console or when we start implementing the API users.

Acceptance should also involve previous "static" notifications not getting broken by this.

I added the tests for the static_notifications change. Hard to write tests for the rest of the PR though, as it is quite hidden from view. I'll write some mix of API + Rails/DB commands to check, but the real test would be integration with frontend.

👍 , migration ready at #11780.

authors: javitonino juanignaciosl


text:
Change way to listen when map or widgets have changed in deep-insights

Related ticket: https://github.com/CartoDB/cartodb/issues/11894
After a talk with @alonsogarciapablo, we have reviewed that there is no need to check if the map or the widgets collection have changed. With only listen to state changes is enough, and it avoids the current initialization problems we have.
STT (Review the ticket too)

Create a map of points.
Add a category widget, for example.
Move the map.
Reload and check that the map is placed where it has to be.
Change the basemap to GMaps.
Move the map.
Reload and check everything is ok.
Reload again and check, no joke.
Filter the widget by a category.
Move the map.
Reload and check that the widget is filtered and map is centered where it has to be*.

*Be careful with this bug in Google Maps basemaps.

cc @alonsogarciapablo


text:
Fix mapping of bool to string #1966

This will make ogr2ogr2 honor quoted_fields_guessing which was wrongly
mapped to QUOTED_FIELDS_AS_STRING when passed.
@juanignaciosl one-liner review please

Frontend tests were OK :+1: (details)

:+1:

authors: Cartofante juanignaciosl rafatower


text:
Don't use google token for manual login and signup

This closes #4865 . @matallo CR this, please.

Frontend tests were OK :+1: (details)

like a charm

ping!!

authors: Cartofante juanignaciosl matallo saleiva


text:
Adding more licenses for table metadata

Adds more licenses as accorded in https://github.com/CartoDB/cartodb/issues/5316

cc @ethervoid, could you check? after this I'm testing in staging :-)

Looks good to by but: clear trailing spaces and if you can change to the Ruby 1.9 hash (as hound says) :+1:

I'll do it. Didn't change the hash thing because I was respecting how you did it, but I'll do ;) thanks!

Testing in staging

Front seems OK, no errors, and the save requests are ok:

:clap:

Merging then :)

authors: ethervoid iriberri


text:
5669 different number dataset

This PR add some new stuff to explore api:

Add layers count to be used as dataset number to be coherent with the public map page
Now the update based on likes and map views are going to take today as date due we are executing it every 3 hours
Added more info to know the total amount of updates
Added a new rake task to update all the explore api visualization with the new field

Please @juanignaciosl check this out :)

LGTM. I've done some really minor style comments, but everything seems ok!

authors: ethervoid juanignaciosl


text:
OP-1697 Adding check of crash from configuration in CI step.

This will test install of casper-node deb and run until failure due to no keys.  This occurs after config.toml and chainspec.toml parsing.  If the failure is not key-related, we will display the configuration error that needs to be fixed.
This eliminates much of the manual work that is required at most releases to match resources/production to fields in resources/local.

The test_**_deb scripts are to check if the required certs are available. Would it be valid to just create the certs if none exists in the target location?

This is to test that .deb installs without error and run to validate config files. We WANT it to fail due to certs, or the server would start and the script would hang and not return.

bors merge

repo: CasperLabs/casper-node


text:
Town Hall Slides -  Wednesday, 20th April, 2022

Townhall slides -  Wednesday, 20th April, 2022

Previous Town Hall - https://github.com//Catalyst-Circle/Catalyst-Circle-Coordination/issues/95
CC Admin meeting -

[ ] Prepare Town Hall slides for Wednesday

Previous in series: #95

Next in series: #107


text:
"Alt" Key Operation

When the user presses ALT, all interactions of the UI control should be accessible via keyboard.

Upon closer inspection, this seems really hard. Alt is a system key and hence not really exposed to XAML/.NET apps. We could try to go deeper down into the stack - or figure out what I've been missing so far.

repo: CatalystCode/radial-menu


text:
Readd Compendium footer to distinguish which compendia are owned

This should include wfrp4e, world or <module-name> depending on where the compendium came from. This data exists in the compendium-footer but is not displayed in 0.8.1 for some reason.

Completed


text:
fix: the style of 'block cursor' when scrolling

Currently, scrolling when the cursor is on a block element gives unexpected results.
I've added a scroll listener that restores the cursor's style if the scrolling takes the cursor out of the range of the block element.
Limitations
Currently it is not possible to listen to scroll events on internal scrollable elements.

@Jannchie Wow, that's great!
But it seems that it is not compatible with SSR. I'm building my docs with vite-ssg. Everything may be ok in dev mode, but it failed to build because of this error:
ReferenceError: MouseEvent is not defined

And the code should work as expected for SSR apps. Can you fix this problem?

Thanks for the reminder.
The problem of not being able to build with SSG has now been solved. Everything seems to be working fine.

authors: CatsJuice Jannchie

repo: CatsJuice/ipad-cursor


text:
🛑 欧陆风云四百科（eu4cn） is down

In a316d50, 欧陆风云四百科（eu4cn） (https://www.eu4cn.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 欧陆风云四百科（eu4cn） is back up in da29cbf after 9 minutes.

repo: Cccc-owo/upptime


text:
🛑 qinglong is down

In 59fbc5c, qinglong (ql.hiripple.com) was down:

HTTP code: 530
Response time: 125 ms

Resolved: qinglong is back up in d90fe06 after 10 minutes.

repo: CelestialRipple/ripplelog


text:
🛑 Nextcloud is down

In 7c5affb, Nextcloud (https://nextcloud.hiripple.com) was down:

HTTP code: 530
Response time: 103 ms

Resolved: Nextcloud is back up in 59b3128 after 2 hours, 33 minutes.


text:
🛑 Nextcloud is down

In 1c733d7, Nextcloud (https://nextcloud.hiripple.com) was down:

HTTP code: 502
Response time: 154 ms

Resolved: Nextcloud is back up in 763d3a2 after 21 minutes.


text:
[#OSF-6420]now delete folder will dismiss the delete alert correctly

Purpose
Dismiss the delete alert modal after hit delete for github folder and file deletion.

Changes

Side effects

Ticket

https://openscience.atlassian.net/browse/OSF-6420

🎉 🐧 🎉


text:
[CR] Added in Dryad Provider

So this is pretty much felliot's dryad_develop feature branch pulled into my repo.

Hey @kweirman, sorry for the delay, I'm just starting to really look at this now.  I can confirm that it works for me as-is, but I'll need to review the code and we'll probably need to make some adjustments.
Cheers,
Fitz

BTW, APIv1 support is a must-have before merging.  We're trying to get away from v0.  As I review the code, I'll look for place where v1 support is missing.

Hey @kwierman, it's looking good so far.  I need to stop for now, but I'll get back to it Monday.  In the meantime, can you address the issues I raised above?  It could also use some unit tests in tests/providers/dryad/.  Thank you!
Cheers,
Fitz

@felliott, These last three commits should address everything except the unit tests. That'll be finished up soon.

Unit tests Added! In addition, I had a small change that was needed for reliability. Dryad kept on 503'ing on me, which ended up being a great test of waterbutler's connectivity

Also, I added in the can_duplicate_names method. I assume this is a v1 change. Once again, after you check this out, I can squash down these 6 commits to one.

Is there documentation on how to use the aiohttpretty marker in pytests?

Is there documentation on how to use the aiohttpretty marker in pytests?

Not really.  Basically, it captures calls to aiohttp.request and redirects them to its own fake_request method[1].  You’ll need to either update  pyDryad to use aiohttp, or update the provider to make the requests via waterbutler.core.provider.make_request, and use pyDryad for response/request formatting.  Most of our providers don’t depend on external libraries.  The exception is s3, which uses boto to do some of its url-building.
Cheers,
Fitz
[1] https://github.com/CenterForOpenScience/aiohttpretty/blob/master/aiohttpretty.py#L87

Hey @kwierman,
I'm going to hold off further reviewing for now.  Can you ping me when you get the folder semantics and testing issues fixed?  It's coming along nicely!
Cheers,
Fitz

Hey @felliott ,
I think I have all the changes you mentioned fixed. The major change is that all http requests are performed via aiohttp now. Everything I've done should be just in the one commit. Interestingly, there was an odd problem with tests passing on my personal computer, but failing on Travis.

Hey @kwierman,
Thanks!  I have to do CR for the OneDrive provider first, but I will hopefully get to this soon.
Cheers,
Fitz

One minor detail: you have defined a bunch of additional properties in BaseDryadMetadata.   Those that can be pulled out from the raw data should be stored in extra (which you've done), but don't need to be properties.  Please delete those.

All of the paths have a leading doi:10.5061 path part.  What is the likelihood that Dryad is going to adopt another doi namespace?  If it's not likely, I would like to get rid of it, as it's repetitive.  If there is a need for it, would it make sense to have that as the root folder?   Also, if we do keep it, could you strip off the doi: portion of the prefix?  That serves a double purpose: it makes it possible to directly append the id to the resolver url (http://dx.doi.org/), and it avoids the need to percent-encode the colon in our action links.

Since the dryad provider is currently read-only, can you remove the move, delete, and upload links from the JSON-API response.  See metadata.BaseMetadata._json_api_links for this.

Slight issue in validate_v1_path:   with v1 we're trying to be stricter about path semantics.  If a user makes a request to a folder path, but leaves off the trailing slash, we return a 404.  If they request a file and append a trailing slash, we return a 404.  The reason for this is that some providers don't use unique ids for their paths and also allow a file and a folder to have the same name.  That means that a request for '/foo/' could return something different than a request for '/foo'.   I know this isn't an issue for Dryad, but we want to maintain a consistent interface across all our providers.
Summary:
This should return serialized folder metadata:
GET  http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850/?meta=
This  (same url but without a trailing slash) should return a 404 Not Found:
GET http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850?meta=
This should return serialized file metadata:
GET  http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850/1?meta=
This  (same url but with a trailing slash) should return a 404 Not Found:
GET http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850/1/?meta=

Hey @kwierman,
It seems like there's some more path confusion.  With WB, the intention is that all the path parts of the url correspond 1-1 to an entity on the provider.  So given this url from my current dev setup:
http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850/1?meta=
I expect that all of the following are distinct resources:
http://localhost:7777/v1/resources/ek46t/providers/dryad/?meta=
http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/?meta=
http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850/?meta=
http://localhost:7777/v1/resources/ek46t/providers/dryad/doi:10.5061/dryad.1850/1?meta=
But right now, the first three return the same thing.  If we take out the doi portion of the path, we're left with:
http://localhost:7777/v1/resources/ek46t/providers/dryad/?meta=
http://localhost:7777/v1/resources/ek46t/providers/dryad/dryad.1850/?meta=
http://localhost:7777/v1/resources/ek46t/providers/dryad/dryad.1850/1?meta=
This makes a little more sense, if a node can have multiple dryad packages linked.  Then I would expect the first url to return a list of DryadPackageMetadata entities, the second to return a list of DryadFileMetadata entities, and the last to return a single DryadFileMetadata entity.  However, on the OSF side, the addon seems set up to only allow one Dryad package per node.  Is that correct?  Is that the goal, or are there plans to allow more than one package?  If only one package is allowed, then the package id should also be removed from the WaterButler path, giving us:
http://localhost:7777/v1/resources/ek46t/providers/dryad/?meta=
http://localhost:7777/v1/resources/ek46t/providers/dryad/1?meta=
where the first returns list of DryadFileMetadata entities in the dryad.1850 package, and the second return the individual DryadFileMetadata entity.  The package id would come from the auth call to the OSF, and is saved in the folder attribute of the provider.  For an example, see the __init__ of the google drive provider.  gdrive lets you specify a particular folder as the root of your storage.  This config parameter is stored in the OSF and passed to WB when it requests the auth token.  The provider then takes care to set it as the root folder for all paths and requests.
I'm sorry, I know this a lot of new information that's not really documented in WB.  If it's any consolation, I'm using this and the other code reviews as a guide for adding proper dev docs to WB.  Thanks for your patience and let me know if you have any questions.
Cheers,
Fitz

Pausing CR on this for now.  Please let me know when you've addressed the above issues.

In regards to the doi prefix issue; yes, and the reason why is that there is currently no internal tracking of packages between Dryad's staging, review, and archive databases. As there will be a future update that will include pushing to these databases, I don't want to exclude the possibility of using uuid or iuid in place of doi, a database designation in place 10.5061 or addressing server in place of /dryad.
The tl;dr version of this is that I'm being very careful about how I choose my designations since the second version of this provider will require updates to Dryad itself that won't be made until January/February.

In regards to copy and move issues, I'm still not sure why we had to remove the copy functionality. This obviates OSF's ability to "drag and drop" files between providers. I used the drag and drop feature in my addon demo for Dryad, so dropping this might turn into an issue.

In regards to copy and move issues, I'm still not sure why we had to remove the copy functionality. This obviates OSF's ability to "drag and drop" files between providers. I used the drag and drop feature in my addon demo for Dryad, so dropping this might turn into an issue.

I just went back and looked at this and it finally clicked for me.  I was thinking of move/copy in terms of moving/copying TO dryad and completely forgot the case of copying FROM dryad to another provider.  I’m sorry for being so dense.  You are absolutely right, copying from Dryad to another provider should work, while copying to Dryad should throw a 501.  Moving should throw a 501 in either case.  Please add back the copy code when you have a chance and I’ll review it.
Cheers,
Fitz

On Dec 22, 2015, at 12:56 PM, Kevin Wierman notifications@github.com wrote:
In regards to the doi prefix issue; yes, and the reason why is that there is currently no internal tracking of packages between Dryad's staging, review, and archive databases. As there will be a future update that will include pushing to these databases, I don't want to exclude the possibility of using uuid or iuid in place of doi, a database designation in place 10.5061 or addressing server in place of /dryad.
The tl;dr version of this is that I'm being very careful about how I choose my designations since the second version of this provider will require updates to Dryad itself that won't be made until January/February.

Do you mean that Dryad the service is changing how they’re addressing the data?  If so, that is a conundrum.  Is there a document up somewhere that outlines their plans?  Thank you!

Hey @felliott ,
All right, now with the refactor to osf.io complete, I can get back to wb. So, there isn't a document regarding their plans, but you can expect them to follow the SWORD API pretty closely.
Originally, I used the full designation as a way of providing some amount of forwards compatibility insurance since the full designation is used in Dryad. I see that this can be handled more arbitrarily now.
So, for this release, I'll use the simple addresses of /<doi_suffix>/ for packages and /<doi_suffix>/<file_index> for files. Sound good?
P.S. The other path issues should be fixed now.

Hey @felliott ,
I'm having some build problems. I cloned develop into my fork and had travis build. The output is here. Am I the only one with this problem?

On Jan 12, 2016, at 3:10 PM, Kevin Wierman notifications@github.com wrote:
Hey @felliott https://github.com/felliott ,
I'm having some build problems. I cloned develop into my fork and had travis build. The output is here https://travis-ci.org/kwierman/waterbutler/builds/101930470. Am I the only one with this problem?

Hey @kwierman,
Nope, this is bug in freezegun that was triggered by the most recent release of the cryptography package.  There’s a PR in to fix this, but it hasn’t been accepted yet.  Once it has, I’ll bump the freezegun dependency and travis should start working again.  In the meantime, you can fix your local environment by uninstalling cryptography==1.2 and installing cryptography==1.1.2.
I’ll ping you on this PR once the fix goes in.
Cheers,
Fitz

@felliott Much thanks!

@kwierman I've updated develop to depend on a forked version of freezegun, until a new version is released.  The Travis builds should be passing again.
Cheers,
Fitz

@felliott Cool. Looks like everything is building fine atm.

@felliott Hey, I just wanted to check in to see if you are still looking at this PR. I haven't heard from you guys in a while, and I'd like to get whatever resolved before I continue.
Thanks,
Kevin

Hey @kwierman,
Sorry for not communicating in so long.  We are still looking at this PR, but we’ve been sidetracked with some other tasks.   I’ll see if I can set aside some time for this soon, possibly next week.  In the meantime, you might check out the feature/python-3.5 branch.  I’ll be trying to get this merged into develop this week, because it gives up a big speed up.  To convert the dryad branch to 3.5 all that should be necessary is some simple syntax substitutions.  This:
@asyncio.coroutine
def foo():

becomes:
async def foo
and yield from becomes await.  That should be all that's required.  If you don't have time for it, I can update the PR when I review it.
I'll give you a heads up when 3.5 is merged and when I start reviewing the PR.  I've also made a note to contact you if I can't get to it by next Wednesday.  Take care, and thank you again for your effort!
Cheers,
@felliott

Hey @felliott,
I put the python3.5 changes into it's own branch and associated PR. The last commit here was cleaning up the paths.

I'll cleanup the commits sometime this weekend.

Hey @felliott ,
In this latest commit, I fixed up the paths so that
/

Should get back Dryad information
/XXXX/

Should get back information on Dryad package: doi:10.5061/dryad.XXXX and is intolerant of a lack of trailing backslash.
/XXXX/YY

Should get back on file YY of Dryad package doi:10.5061/dryad.XXXX/YY and is intolerant of including a trailing backslash.
Hopefully that should clear up the path issues!

Oh also, the python3.5 compatible version should be ready to go here. I wasn't sure whether to issue a PR with develop as the target or develop/feature/python-3.5.

I'm closing this out in favor of the python3.5 version here.

authors: felliott kwierman

repo: CenterForOpenScience/waterbutler


text:
Consider adding gearboxJoint elements to the hand

Gearbox joints are already present in Gazebo, but cannot be created directly from URDF.
Check whether it is possible to automatically include them in the SDF.
Also keep an eye on this thread for possible solutions.
@arocchi @carlosjoserg

Added in https://github.com/arocchi/pisa-iit-soft-hand/commit/2421d1d5f8a4ef1e85f074206a95015915d10ae5, need a proper hand loader which select joints based on name rather than on number, since the gearboxes add new joints to the model

After some testing, it appears like the joint handling is actually correct. @carlosjoserg @hamalMarino could you take a look so that we can brainstorm together about the weird effects showing up in simulation?

Should we use https://github.com/arocchi/pisa-iit-soft-hand/commit/2421d1d5f8a4ef1e85f074206a95015915d10ae5 ?

Yes @carlosjoserg . Upon further testing, the problems appear also WITHOUT gearbox and mimic, when the joint damping is too high. It appears like, on instantiation, joints have very high velocities.

One element which I am investigating at the moment is the joint axis. Let's take for example the thumb outer joint. In the SDF, the joint axis for both are:
<xyz>0.910366 0.155013 -0.383671</xyz>

While in the URDF, it is
<joint axis="0 -1 0">

When inserting the gearbox joint in the URDF, it gets inserted via a <gazebo> tag, meaning that it will get copied over to the SDF without modifications.
So I tried to change the joint axis in the URDF manually for the gearbox joint, to the same value I found in the SDF for the mimic and the regular joint.
Even with the change, i still didn't got it working. This experimentation has not been succesfull. I have to check into the code how the gearbox gets evaluated. In fact, it might be possible that the axis direction should be "local" as in the URDF, and refers to the <gearbox_reference_boxy> tag.
An equivalent alternative to changing the axis of the gearbox joint to the one found in the SDF is specifying that
<use_parent_model_frame>0</use_parent_model_frame>

where the default is 1. At that point, the axis should remain "local", i.e.
<xyz>0 -1 0</xyz>

I tried also this, and apparently it didn't change results.

Another interesting result is that the gearbox "works" when the gearbox ratio is positive instead of negative, meaning that the phalanx will close automatically (whereas it should stay open) when the synergy is not active. The opposite is not true, that is, a correct gearbox ratio of -1.0 will result in the phalanx getting stuck for every synergy value.

One idea that I also investigated lies in the possibility that applying joint effort does not propagate correctly on gearboxes on 4.1. I made a test https://gist.github.com/arocchi/3f6f770a1f3c33ee178c on  https://bitbucket.org/arocchi/gazebo/branch/gazebo_4.1 that uses joint efforts, and everything appears to work properly.

The positiveness of the ratio is certainly an issue... is there a diffGearBox in ODE?

ps: note that the positive ratio was "wrong" by design, meaning, it was a test to check the rotation axis was correct...

RE the  <use_parent_model_frame>0</use_parent_model_frame> approach: just found out the value get overwritten, or even better, does not get read, so in the final sdf you will end up with two lines for each gearbox axis reading something like this:
<use_parent_model_frame>0</use_parent_model_frame>
<use_parent_model_frame>1</use_parent_model_frame>

If confirmed, that is a bug that needs to be reported to the gazebo guys

Continuing with tests. Trying to apply the gearbox just on one joint.
I get instabilities which should be more accurately investigated.
The models under test are in this gist https://gist.github.com/arocchi/52a322c5b39fd99608ed

authors: arocchi carlosjoserg hamalMarino

repo: CentroEPiaggio/pisa-iit-soft-hand